ב-Android 13 נוספה תמיכה באודיו מרחבי באמצעות ממשקי API שמאפשרים למפתחי אפליקציות לבדוק אם השילוב הנוכחי של הטמעת הטלפון, האוזניות המחוברות והגדרות המשתמש מאפשר הפעלה של תוכן אודיו בכמה ערוצים באופן immersive.
יצרני ציוד מקורי יכולים לספק אפקט אודיו מרחבי עם תמיכה במעקב אחר תנועות הראש ברמת הביצועים והזמן האחזור הנדרשים, באמצעות הארכיטקטורה החדשה של צינור עיבוד הנתונים של האודיו ושילוב של מסגרת החיישנים. פרוטוקול HID מציין איך לצרף מכשיר למעקב אחר תנועות הראש באמצעות Bluetooth ולהפוך אותו למכשיר HID באמצעות מסגרת החיישנים של Android. דרישות נוספות ותהליכי אימות מפורטים במאמר אודיו מרחבי ומעקב אחר תנועות הראש.
ההנחיות שבדף הזה רלוונטיות לפתרון של אודיו מרחבי שכולל את ממשקי ה-API החדשים של אודיו מרחבי ואת ארכיטקטורת האודיו החדשה, בטלפון Android עם Android מגרסה 13 ואילך, ואוזניות תואמות עם חיישן מעקב ראש.
הנחיות להטמעה של מצבי אודיו מרחבי דינמיים וסטטיים
אודיו מרחבי סטטי לא דורש מעקב אחר תנועות הראש, ולכן אין צורך בפונקציות ספציפיות באוזניות. כל הדיבוריות החוטיות והאלחוטיות יכולות לתמוך באודיו מרחבי סטטי.
הטמעת API
יצרני ציוד מקורי חייבים להטמיע את המחלקה Spatializer
שהושקה ב-Android 12. ההטמעה חייבת לעבור את בדיקות ה-CTS שנוספו לכיתה Spatializer
.
הטמעה חזקה של API מבטיחה שמפתחי אפליקציות, במיוחד שירותי סטרימינג של מדיה, יוכלו להסתמך על התנהגות עקבית בסביבה העסקית ולבחור את התוכן הטוב ביותר בהתאם ליכולות המכשיר, להקשר העיבוד הנוכחי ולבחירות של המשתמשים.
ממשק משתמש
אחרי שמטמיעים את הכיתה Spatializer
, צריך לוודא שההתנהגות של ממשק המשתמש היא:
כשהאוזניות עם תמיכה באודיו מרחבי מותאמות, בהגדרות של מכשיר ה-Bluetooth לאוזניות מופיע המתג אודיו מרחבי:
איור 1. הגדרת אודיו מרחבי.
ההגדרות זמינות כשהאוזניות מנותקות.
מצב ברירת המחדל של האודיו המרחבי אחרי ההתאמה הראשונית של האוזניות מוגדר למופעל.
המצב שבחר המשתמש, מופעל או מושבת, נשמר גם אחרי הפעלה מחדש של הטלפון או ביטול ההתאמה והתאמה מחדש של האוזניות.
התנהגות פונקציונלית
פורמטים של אודיו
חשוב להשתמש באפקט המרחבי כדי לעבד את הפורמטים הבאים של אודיו כאשר אודיו מרחבי מופעל ומכשיר הרינדור הוא אוזניות קוויות או אוזניות Bluetooth:
- AAC, 5.1 ערוצים
- PCM גולמי, 5.1 ערוצים
כדי לשפר את חוויית המשתמש, מומלץ מאוד לתמוך בתצורות הערוצים או בפורמטים הבאים:
- Dolby Digital Plus
- 5.1.2, 7.1, 7.1.2, 7.1.4 ערוצים
הפעלת תוכן בסטריאו
אסור לעבד תוכן סטריאו דרך מנוע האפקט המרחבי, גם אם אודיו מרחבי מופעל. אם הטמעה מאפשרת יצירת תוכן סטריאו תלת-ממדי, היא חייבת להציג ממשק משתמש מותאם אישית שמאפשר למשתמש להפעיל או להשבית את התכונה הזו בקלות. כשהתכונה 'אודיו מרחבי' מופעלת, צריכה להיות אפשרות לעבור בין הפעלה של תוכן מרובה ערוצים במרחב סאונד לבין תוכן סטריאו ללא מרחב סאונד, בלי שיהיה צורך לבצע שינויים בהגדרות המשתמש או לחבר מחדש או להגדיר מחדש את האוזניות. המעבר בין תוכן אודיו מרחבי לתוכן סטריאו צריך להתרחש עם הפרעה מינימלית באודיו.
מעברים ותזמון בו-זמנית בתרחישי לדוגמה
תרחישים מיוחדים לדוגמה:
- ההתראות צריכות להתמזג עם תוכן האודיו המרחבי באותו אופן שבו הן מתמזגות עם תוכן אודיו לא מרחבי.
- צריך לאפשר ערבוב של רינגטונים עם תוכן אודיו מרחבי. עם זאת, כברירת מחדל, מנגנון התמקדות האודיו משהה את תוכן האודיו המרחבי כשיש צלצול.
- כשעונים לשיחה או מבצעים שיחת וידאו או ועידה בווידאו, ההפעלה של האודיו המרחבי מושהית. כשהשיחה תסתיים, ההפעלה של האודיו המרחבי צריכה להמשיך עם אותן הגדרות של האודיו המרחבי. הדרך לשנות את נתיב האודיו ולעבור ממצב אודיו מרחבי למצב שיחה צריכה להתבצע במהירות ובצורה חלקה, כדי שלא תהיה לכך השפעה על חוויית השיחה.
רינדור דרך רמקולים
אין צורך בתמיכה בהמרת אודיו למרחבי ברמקולים, או במצב transaural.
הנחיות להטמעת מעקב אחר תנועת הראש
הקטע הזה מתמקד באודיו מרחבי דינמי, שיש לו דרישות ספציפיות לאוזניות.
ממשק משתמש
אחרי ההטמעה וההתאמה של האוזניות עם יכולות אודיו מרחבי, חשוב לוודא שממשק המשתמש שלכם פועל באופן הבא:
בהגדרות של מכשיר ה-Bluetooth, כשההגדרה אודיו מרחבי מופעלת באוזניות, ההגדרה מעקב אחר תנועות הראש מופיעה בקטע אודיו מרחבי:
איור 2. אודיו מרחבי והגדרות מעקב ראש.
הגדרת המעקב אחר הראש לא מוצגת כאשר האודיו המרחבי מושבת.
מצב ברירת המחדל של מעקב הראש אחרי ההתאמה הראשונית של האוזניות מוגדר ל-מופעל.
המצב שנבחר על ידי המשתמש, בין אם הוא מופעל או מושבת, חייב להימשך באמצעות הפעלה מחדש של הטלפון או ביטול ההתאמה וההתאמה של האוזניות.
התנהגות פונקציונלית
דיווח על תנוחת הראש
- מידע על תנוחת הראש, בקואורדינטות x, y ו-z, שנשלח מהאוזניות למכשיר Android, חייב לשקף את תנועות הראש של המשתמש במהירות ובדיוק.
- דיווח על תנוחת הראש דרך הקישור ל-Bluetooth חייב לפעול לפי הפרוטוקול שמוגדר ב-HID.
- נתוני המעקב אחר תנועות הראש צריכים לשלוח לטלפון Android רק כשהמשתמש מפעיל את האפשרות מעקב אחר תנועות הראש בהגדרת מכשיר ה-Bluetooth.
ביצועים
איטית
זמן האחזור של מעקב אחר תנועת הראש מוגדר כזמן שחולף מרגע תנועת הראש שנתפסה על ידי יחידת המדידה האינרציאלית (IMU) ועד לזיהוי השינוי בצלילים שנגרם מהתנועה הזו על ידי הממירים של האוזניות. זמן האחזור של מעקב אחר תנועת הראש לא יכול לחרוג מ-150 אלפיות השנייה.
שיעור הדיווח על תנוחת הראש
כשמעקב הראש פעיל, האוזניות צריכות לדווח על תנוחת הראש באופן תקופתי מומלץ של כ-20 אלפיות השנייה. כדי למנוע הפעלה של הלוגיקה של זיהוי הקלט הלא עדכני בטלפון במהלך תנודות של שידור ה-Bluetooth, הזמן המקסימלי בין שני עדכונים לא יכול לחרוג מ-40 אלפיות השנייה.
אופטימיזציה של צריכת החשמל
כדי לשפר את חיסכון האנרגיה, מומלץ להשתמש במנגנונים של החלפת קודק Bluetooth ובחירת מצב זמן אחזור שמספקים ממשקי audio HAL ו-Bluetooth audio HAL.
הטמעות AOSP של מסגרת האודיו וסטאק ה-Bluetooth כבר תומכות באותות לצורך בקרה על החלפת הקודקים. אם הטמעת ה-OEM משתמשת ב-HAL הראשי של האודיו לאודיו ב-Bluetooth, שנקרא מצב העברה של קודק, ה-OEM צריך לוודא ש-HAL האודיו מעביר את האותות האלה בין HAL האודיו לבין סטאק ה-Bluetooth.
החלפת קודק
כשהתכונות 'אודיו מרחבי דינמי' ו'מעקב אחר תנועות הראש' מופעלות, צריך להשתמש בקודק עם זמן אחזור קצר, כמו Opus. כשמשמיעים תוכן אודיו לא מרחבי, צריך להשתמש בקודק בעל מתח נמוך, כמו Advanced Audio Coding (AAC).
יש לפעול לפי הכללים הבאים במהלך המעבר בין קודקים:
- יש לעקוב רק אחרי הפעילות בשידורי פלט האודיו הבאים עם HAL:
- פלט ייעודי של יצירת מרחבים
- סטרימינג ספציפי למדיה, כמו צבירת נתונים עמוקה או הפעלה של נתונים שהורדתם דרך חיבור מרוחק (offload) ונדחס
כשכל המקורות הרלוונטיים לא פעילים והשידור של ה-Spatializer מתחיל, מפעילים את השידור ב-Bluetooth עם
isLowLatency
מוגדר כ-true
כדי לציין קידוד עם זמן אחזור קצר.כשכל השידורים הרלוונטיים לא פעילים וסטרימינג של מדיה מתחיל, מפעילים את הסטרימינג ב-Bluetooth עם הערך
isLowLatency
שמוגדר ל-false
כדי לציין קודק בעוצמה נמוכה.אם שידור מדיה פעיל והשידור של המרחב המרחבי מתחיל, מפעילים מחדש את השידור ב-Bluetooth כאשר
isLowLatency
מוגדר לערךtrue
.
בצד של האוזניות, האוזניות צריכות לתמוך גם במפענחים עם זמן אחזור נמוך וגם במפענח עם הספק נמוך, ולהטמיע את הפרוטוקול הסטנדרטי לבחירת קודק.
שינוי מצב זמן האחזור
ההתאמה של מצב זמן האחזור מתבצעת כשבוחרים בקודק עם זמן אחזור קצר.
בהתאם לסטטוס של מעקב אחר תנועות הראש, ההתאמה של מצב זמן האחזור מתבססת על מנגנונים זמינים כדי להקטין או להגדיל את זמן האחזור, וכך להגיע לפשרה הטובה ביותר בין זמן האחזור, צריכת החשמל ואיכות האודיו. כאשר אודיו מרחבי מופעל והמעקב אחר תנועות הראש מופעל, נבחר מצב זמן אחזור קצר. כשאודיו מרחבי מופעל ומעקב אחר תנועת הראש מושבת, נבחר מצב ללא זמן אחזור. התאמת זמן האחזור חוסכת אנרגיה משמעותית ומחזקת את קישור האודיו ב-Bluetooth כשמבקשים רק אודיו מרחבי סטטי. המנגנון הנפוץ ביותר להתאמה של זמן האחזור הוא הפחתה או הארכה של שטח האחסון הזמני של הרעידות באוזניות ה-Bluetooth.
במאמר מעקב אחר תנועות הראש דרך LE Audio מוסבר איך לשנות את זמן האחזור ב-LE Audio.