הגרסה של Android 10 כוללת את הדרישות הבאות לצילום באמצעות VOICE_COMMUNICATION.
- ביישומים צריך לספק ביטול הד אקוסטי (AEC) בנתיב הלכידה כשמבצעים לכידה באמצעות
VOICE_COMMUNICATION. - אם מספקים AEC, צריך להיות אפשר לגלות אותו ולשלוט בו באמצעות ה-API של ה-SDK
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 מקבלים ומשחררים סשן כשהם נוצרים ונהרסים, וכך האפקטים (כמו Loudness Enhancer) נשמרים לאורך הסשן.
בדוגמה הבאה מפעילים עיבוד מקדים עבור מופעי 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). הדרישות לזיהוי קולי כוללות:
- תגובה שטוחה לתדר (+/- 3 dB) מ-100 הרץ עד 4 קילו-הרץ
- הגדרת דיבור קרוב: קריאת RMS של 90 dB SPL היא 2,500 (דגימות של 16 ביט)
- העוצמה משתנה באופן לינארי מ--18 dB עד +12 dB ביחס ל-90 dB SPL
- THD < 1% (90 dB SPL in 100 to 4000 Hz range)
- הדרישות לשימוש באולטרסאונד בתדרים נמוכים (לצורך בדיקה, אפשר לעיין במאמר בנושא בדיקות של אולטרסאונד בתדרים נמוכים):
- תמיכה ב-
SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUNDכפי שמוגדר בסעיף 7.8.3 של ה-CDD. - תמיכה באחת מתדירויות הדגימה 44100 או 48000, או בשתיהן, ללא מסנני פס מעבר או מסננים למניעת aliasing.
- תמיכה ב-
- האפקטים או העיבוד המקדים מושבתים כברירת מחדל
דוגמאות לכוונון של אפקטים שונים למקורות שונים:
- ביטול רעשים
- התאמה לדיכוי רעשי רוח ב-
CAMCORDER - התאמה לסינון רעשים קבוע ב-
VOICE_COMMUNICATION
- התאמה לדיכוי רעשי רוח ב-
- שליטה אוטומטית בעוצמת הקול
- המיקרופון מותאם לדיבור קרוב ב
VOICE_COMMUNICATIONובמיקרופון הראשי של הטלפון - התאמה לשיחות עם משתתפים מרוחקים ב-
CAMCORDER
- המיקרופון מותאם לדיבור קרוב ב
משאבים
למידע נוסף, אפשר לעיין במקורות המידע הבאים:
- מסמכי תיעוד של Android בנושא חבילת audiofx
- מסמכי תיעוד של Android בנושא אפקט אודיו של סינון רעשים
- קובץ
/device/google/crosshatch/audio_effects.xmlל-Pixel 3