نسخه Android 10 شامل الزامات زیر برای ضبط با VOICE_COMMUNICATION است.
- پیادهسازیها باید هنگام ضبط با
VOICE_COMMUNICATION، در مسیر ضبط، یک حذفکننده پژواک صوتی (AEC) ارائه دهند. - اگر AEC ارائه میکنید، باید ازطریق میانای برنامهسازی کاربردی کیت توسعه نرمافزار قابلشناسایی و کنترل باشد
AcousticEchoCanceler.
پلاتفرم Android جلوههای صوتی را در دستگاههای پشتیبانیشده در بسته
audiofx ارائه میدهد که توسعهدهندگان میتوانند به آن دسترسی داشته باشند.
برای مثال، Nexus 10 از جلوههای پیشپردازش زیر پشتیبانی میکند:
جفت کردن با نمونههای AudioSource
جلوههای پیشپردازش با حالت مورد استفادهای که در آن پیشپردازش درخواست شده است جفت میشوند. در توسعه برنامه Android، مورد استفاده بهعنوان نمونه AudioSource نامیده میشود؛ و توسعهدهندگان برنامه درخواست میکنند که بهجای دستگاه سختافزاری صوتی واقعی، از انتزاع AudioSource استفاده کنند. «مدیر خطمشی صوتی Android» نمونه AudioSource را به پیکربندی مسیر ضبط معینی (شامل دستگاه، بهره، و پیشپردازش) براساس قوانین مختص محصول نگاشت میکند. منابع زیر برای توسعهدهندگان آشکار میشوند:
android.media.MediaRecorder.AudioSource.CAMCORDERandroid.media.MediaRecorder.AudioSource.VOICE_COMMUNICATIONandroid.media.MediaRecorder.AudioSource.VOICE_CALLandroid.media.MediaRecorder.AudioSource.VOICE_DOWNLINKandroid.media.MediaRecorder.AudioSource.VOICE_UPLINKandroid.media.MediaRecorder.AudioSource.VOICE_RECOGNITIONandroid.media.MediaRecorder.AudioSource.MICandroid.media.MediaRecorder.AudioSource.DEFAULT
جلوههای پیشپردازش پیشفرض اعمالشده برای هر نمونه AudioSource در فایل /vendor/etc/audio_effects.xml مشخص شده است. برای
مشخص کردن جلوههای پیشفرض خودتان برای هر نمونه AudioSource،
فایل /vendor/etc/audio_effects.xml ایجاد کنید و جلوههای
پیشپردازش را برای روشن کردن مشخص کنید. برای مثال، پیادهسازی Nexus 10 را در device/samsung/manta/audio_effects.xml ببینید.
وقتی AudioEffect نمونه ایجاد و نابود میشود، جلسه را بهدست میآورد و آزاد میکند،
و به جلوهها (مثل «بهینهساز بلندی») امکان میدهد درطول
جلسه ماندگار شوند.
مثال زیر پیشپردازش را برای نمونههای VoIP
AudioSource و «دوربین فیلمبرداری» AudioSource فعال میکند. با اعلام پیکربندی AudioSource به این روش، چارچوب بهطور خودکار درخواست استفاده از آن جلوهها را از HAL میکند.
<preprocess> <stream type="voice_communication"> <apply effect="aec"/> <apply effect="ns"/> </stream> <stream type="camcorder"> <apply effect="agc"/> </stream> </preprocess>
تنظیم منبع
تنظیم AudioSource الزامات صریحی برای بهره صوتی یا پردازش صوتی ندارد، بهجز تشخیص صدا (VOICE_RECOGNITION). الزامات تشخیص صدا عبارتاند از:
- پاسخ فرکانسی تخت (+/- ۳ دسیبل) از ۱۰۰ هرتز تا ۴ کیلوهرتز
- پیکربندی گفتگوی نزدیک: ۹۰ دسیبل سطح فشار صدا، مقدار مؤثر ۲۵۰۰ را میخواند (نمونههای ۱۶ بیتی)
- سطح بهصورت خطی از -۱۸ دسیبل تا +۱۲ دسیبل نسبت به ۹۰ دسیبل SPL تغییر میکند
- THD < 1% (۹۰ دسیبل سطح فشار صوت در محدوده ۱۰۰ تا ۴۰۰۰ هرتز)
- الزامات فراصوت نزدیک (برای آزمایش، به
آزمایشهای
فراصوت نزدیک مراجعه کنید):
- پشتیبانی از
SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUNDهمانطور که در بخش ۷.۸.۳ «مقررات CDD» تعریف شده است. - پشتیبانی از یک یا هر دو نرخ نمونهبرداری ۴۴۱۰۰ یا ۴۸۰۰۰ بدون فیلترهای میانگذر یا ضدآلیاژ.
- پشتیبانی از
- جلوهها/پیشپردازش بهطور پیشفرض غیرفعال است
نمونههایی از تنظیم جلوههای مختلف برای منابع مختلف عبارتاند از:
- نوفهزدایی
- برای سرکوبکننده نوفه باد برای
CAMCORDERتنظیم شده است - برای سرکوبکننده نوفه ثابت برای
VOICE_COMMUNICATIONتنظیم شد
- برای سرکوبکننده نوفه باد برای
- کنترل بهره خودکار
- برای صحبت نزدیک با
VOICE_COMMUNICATIONو میکروفون تلفن اصلی تنظیم شده است - برای صحبت از دور برای
CAMCORDERتنظیم شد
- برای صحبت نزدیک با
منابع
برای اطلاعات بیشتر، به منابع زیر مراجعه کنید:
- اسناد Android برای بسته audiofx
- مستندات Android برای نوفه جلوه صوتی نوفهگیری
- فایل
/device/google/crosshatch/audio_effects.xmlبرای Pixel 3