يتضمّن إصدار Android 10 المتطلبات التالية المتعلقة بالتسجيل باستخدام VOICE_COMMUNICATION
.
- يجب أن توفّر عمليات التنفيذ أداة إلغاء الصدى الصوتي (AEC) في مسار الالتقاط عند الالتقاط باستخدام
VOICE_COMMUNICATION
. - في حال توفير AEC، يجب أن يكون قابلاً للاكتشاف والتحكّم من خلال واجهة برمجة التطبيقات الخاصة بحزمة SDK
AcousticEchoCanceler
.
يتيح نظام التشغيل Android استخدام المؤثرات الصوتية على الأجهزة المتوافقة في حزمة
audiofx
، ويمكن للمطوّرين الوصول إليها.
على سبيل المثال، يتيح جهاز Nexus 10 استخدام تأثيرات المعالجة المسبقة التالية:
الإقران مع مثيلات AudioSource
يتم إقران تأثيرات المعالجة المسبقة بوضع حالة الاستخدام الذي يتم فيه طلب المعالجة المسبقة. في عملية تطوير تطبيقات Android، يُشار إلى حالة الاستخدام باسم مثيل AudioSource
، ويطلب مطوّرو التطبيقات استخدام تجريد AudioSource
بدلاً من جهاز أجهزة الصوت الفعلي. يربط "مدير سياسة الصوت" في Android مثيلاً من AudioSource
بإعدادات مسار الالتقاط المحدّدة (بما في ذلك الجهاز ومستوى الصوت والمعالجة المسبقة) وفقًا لقواعد خاصة بالمنتج. تتوفّر المصادر التالية للمطوّرين:
android.media.MediaRecorder.AudioSource.CAMCORDER
android.media.MediaRecorder.AudioSource.VOICE_COMMUNICATION
android.media.MediaRecorder.AudioSource.VOICE_CALL
android.media.MediaRecorder.AudioSource.VOICE_DOWNLINK
android.media.MediaRecorder.AudioSource.VOICE_UPLINK
android.media.MediaRecorder.AudioSource.VOICE_RECOGNITION
android.media.MediaRecorder.AudioSource.MIC
android.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
جلسة وتُصدرها عند إنشائها وإتلافها، ما يتيح استمرار التأثيرات (مثل "مُحسِّن مستوى الصوت") طوال الجلسة.
يُفعّل المثال التالي المعالجة المسبقة لكل من مثيلَي 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
)، والتي تتضمّن المتطلبات التالية:
- استجابة تردد ثابتة (+/- 3 ديسيبل) من 100 هرتز إلى 4 كيلوهرتز
- إعدادات التحدث عن قرب: مستوى ضغط صوتي يبلغ 90 ديسيبل يقرأ متوسط الجذر التربيعي (RMS) بقيمة 2500 (عينات 16 بت)
- تتغيّر مستويات الصوت خطيًا من -18 ديسيبل إلى +12 ديسيبل مقارنةً بمستوى ضغط الصوت البالغ 90 ديسيبل.
- معدّل التشويش التوافقي الكلي أقل من %1 (مستوى ضغط الصوت 90 ديسيبل في نطاق 100 إلى 4000 هرتز)
- متطلبات الموجات فوق الصوتية القريبة (للاختبار، يُرجى الاطّلاع على اختبارات الموجات فوق الصوتية القريبة):
- إتاحة استخدام
SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUND
على النحو المحدّد في الفقرة 7.8.3 من مستند تعريفات البيانات المشتركة (CDD) - أن تتوافق مع معدّلَي أخذ العيّنات 44100 أو 48000 أو كليهما بدون أي فلاتر تمرير النطاق أو فلاتر منع التمويه
- إتاحة استخدام
- إيقاف التأثيرات/المعالجة المُسبقة تلقائيًا
في ما يلي أمثلة على ضبط تأثيرات مختلفة لمصادر مختلفة:
- أداة كتم الضوضاء
- تم تحسينها لتناسب أداة حجب ضوضاء الرياح في
CAMCORDER
- تم تحسين أداء ميزة "إلغاء الضوضاء الثابتة" للغة
VOICE_COMMUNICATION
- تم تحسينها لتناسب أداة حجب ضوضاء الرياح في
- التحكّم التلقائي في مستوى الصوت
- تم ضبطه على الاستماع إلى الكلام القريب من الجهاز لمدة
VOICE_COMMUNICATION
وباستخدام ميكروفون الهاتف الرئيسي - تم تحسين الأداء عند التحدث من مسافة بعيدة في
CAMCORDER
- تم ضبطه على الاستماع إلى الكلام القريب من الجهاز لمدة
المراجع
لمزيد من المعلومات، يُرجى الاطّلاع على المراجع التالية:
- مستندات Android الخاصة بحزمة audiofx
- مستندات Android حول التأثير الصوتي "إلغاء الضوضاء"
- ملف
/device/google/crosshatch/audio_effects.xml
لهاتف Pixel 3