הטמעת אודיו מרחבי באיכות גבוהה ומעקב אחר תנועת הראש

ב-Android 13 נוספה תמיכה באודיו מרחבי באמצעות ממשקי API שמאפשרים למפתחי אפליקציות לגלות אם השילוב הנוכחי של הטמעת הטלפון, האוזניות המחוברות והגדרות המשתמש מאפשר הפעלה של תוכן אודיו רב-ערוצי בצורה סוחפת.

יצרני ציוד מקורי יכולים לספק אפקט אודיו מרחבי עם תמיכה במעקב ראש ברמת הביצועים וההשהיה הנדרשת, באמצעות ארכיטקטורת צינור האודיו החדשה ושילוב של מסגרת החיישנים. פרוטוקול HID מגדיר איך לצרף מכשיר למעקב אחרי תנועות הראש באמצעות Bluetooth ולהפוך אותו לזמין כמכשיר HID דרך מסגרת חיישני Android. מידע נוסף על דרישות ואימות זמין במאמר בנושא אודיו מרחבי ומעקב אחר תנועות הראש.

ההנחיות בדף הזה רלוונטיות לפתרון אודיו מרחבי שמבוסס על ממשקי ה-API החדשים של אודיו מרחבי ועל ארכיטקטורת אודיו, בטלפון עם Android מגרסה 13 ואילך ובאוזניות תואמות עם חיישן למעקב אחרי תנועות הראש.

הנחיות להטמעה של מצבי אודיו מרחבי דינמי וסטטי

באודיו מרחבי סטטי לא נדרש מעקב אחרי הראש, ולכן לא נדרשת פונקציונליות ספציפית באוזניות. כל האוזניות החוטיות והאלחוטיות תומכות באודיו מרחבי סטטי.

הטמעה של API

יצרני ציוד מקורי חייבים להטמיע את המחלקה Spatializer שהוצגה ב-Android 12. ההטמעה צריכה לעבור את בדיקות CTS שהוצגו עבור המחלקה Spatializer.

הטמעה חזקה של API מבטיחה שמפתחי אפליקציות, במיוחד שירותי סטרימינג של מדיה, יוכלו להסתמך על התנהגות עקבית בכל המערכת האקולוגית ולבחור את התוכן הטוב ביותר בהתאם ליכולות המכשיר, להקשר הנוכחי של העיבוד ולבחירות המשתמש.

ממשק משתמש

אחרי שמטמיעים את המחלקה Spatializer, צריך לוודא שממשק המשתמש מתנהג באופן הבא:

  • כשמצמידים אוזניות עם אודיו מרחבי, במכשיר ה-Bluetooth מופיע מתג אודיו מרחבי:

    spatial-audio-ui

    איור 1. הגדרה של אודיו מרחבי.

  • ההגדרות זמינות כשהאוזניות מנותקות.

  • מצב ברירת המחדל של האודיו המרחבי אחרי ההתאמה הראשונית של האוזניות הוא מופעל.

  • המצב שנבחר על ידי המשתמש, מופעל או מושבת, נשמר גם אחרי הפעלה מחדש של הטלפון או אחרי ביטול ההתאמה של האוזניות והתאמה מחדש.

התנהגות פונקציונלית

פורמטים של אודיו

פורמטי האודיו הבאים חייבים לעבור עיבוד על ידי אפקט האודיו המרחבי כשמפעילים אודיו מרחבי ומכשיר העיבוד הוא אוזניות חוטיות או אוזניות Bluetooth:

  • ‫AAC, ‏ 5.1 ערוצים
  • PCM גולמי, 5.1 ערוצים

כדי ליהנות מחוויית משתמש טובה יותר, מומלץ מאוד לתמוך בפורמטים או בהגדרות הערוצים הבאים:

  • Dolby Digital Plus
  • ערוצים 5.1.2, ‏ 7.1, ‏ 7.1.2, ‏ 7.1.4

הפעלה של תוכן סטריאו

אסור לעבד תוכן סטריאו באמצעות מנוע האפקטים של האודיו המרחבי, גם אם האודיו המרחבי מופעל. אם הטמעה מאפשרת מרחביות של תוכן סטריאו, היא חייבת לכלול ממשק משתמש מותאם אישית שמאפשר למשתמש להפעיל או להשבית את התכונה הזו בקלות. כשמפעילים אודיו מרחבי, צריך להיות אפשר לעבור בין הפעלה של תוכן רב-ערוצי עם אודיו מרחבי לבין תוכן סטריאו ללא אודיו מרחבי, בלי שיהיה צורך לבצע שינויים בהגדרות המשתמש, לחבר מחדש את האוזניות או להגדיר אותן מחדש. המעבר בין תוכן עם אודיו מרחבי לבין תוכן סטריאו צריך להתבצע עם הפרעה מינימלית לאודיו.

מעברים בין תרחישי שימוש וביצוע פעולות בו-זמנית

כך מטפלים בתרחישי שימוש מיוחדים:

  • ההתראות צריכות להיות משולבות בתוכן האודיו המרחבי באותו אופן שבו הן משולבות בתוכן אודיו לא מרחבי.
  • צריך לאפשר לערבב את הרינגטונים עם תוכן אודיו מרחבי. עם זאת, כברירת מחדל, מנגנון מיקוד האודיו משהה את תוכן האודיו המרחבי כשיש צלצול.
  • כשעונים לשיחת טלפון או לשיחת וידאו או מתקשרים, ההפעלה של האודיו המרחבי חייבת להיות מושהית. ההשמעה של האודיו המרחבי צריכה להימשך עם אותן הגדרות של אודיו מרחבי כשהשיחה מסתיימת. ההגדרה מחדש של נתיב האודיו כדי לעבור ממצב אודיו מרחבי למצב שיחה צריכה להתבצע במהירות ובצורה חלקה מספיק כדי שלא תשפיע על חוויית השיחה.

הצגה ברמקולים

לא נדרשת תמיכה במיקום מרחבי של אודיו ברמקולים, או במצב טרנסאורלי.

הנחיות להטמעה של מעקב אחרי תנועות הראש

החלק הזה מתמקד באודיו מרחבי דינמי, שיש לו דרישות ספציפיות לגבי אוזניות.

ממשק משתמש

אחרי ההטמעה וההתאמה של האוזניות עם אודיו מרחבי, צריך לוודא שממשק המשתמש מתנהג כך:

  • בהגדרות של מכשיר Bluetooth, כשההגדרה אודיו מרחבי של האוזניות מופעלת, ההגדרה מעקב ראש מופיעה בקטע אודיו מרחבי:

    ht-ui

    איור 2. הגדרה של אודיו מרחבי ומעקב אחרי הראש.

  • ההגדרה של מעקב אחרי תנועת הראש לא מוצגת כשמכבים את האודיו המרחבי.

  • מצב ברירת המחדל של מעקב הראש אחרי ההתאמה הראשונית של האוזניות הוא מופעל.

  • המצב שהמשתמש בחר, מופעל או מושבת, צריך להישמר גם אחרי הפעלה מחדש של הטלפון או אחרי ביטול ההתאמה של האוזניות והתאמה מחדש.

התנהגות פונקציונלית

דיווח על תנוחת הראש

  • מידע על תנוחת הראש, בקואורדינטות x,‏ y ו-z, שנשלח מהאוזניות למכשיר Android, צריך לשקף את תנועות הראש של המשתמש במהירות ובאופן מדויק.
  • הדיווח על תנוחת הראש דרך קישור Bluetooth צריך להתבצע בהתאם לפרוטוקול שמוגדר ב-HID.
  • האוזניות צריכות לשלוח את המידע על מעקב הראש לטלפון Android רק כשהמשתמש מפעיל את מעקב הראש בממשק המשתמש של הגדרות מכשיר ה-Bluetooth.

ביצועים

איטית

השהיה במעקב אחרי תנועות הראש מוגדרת כזמן שחל מתנועת הראש שנקלטת על ידי יחידת המדידה האינרציאלית (IMU) ועד לזיהוי השינוי בצליל שנגרם מהתנועה הזו על ידי מתמרי האוזניות. זמן האחזור של מעקב אחר תנועת הראש לא יכול להיות ארוך מ-150 אלפיות השנייה.

שיעור הדיווח על תנוחת הראש

כשהמעקב אחרי תנועות הראש פעיל, האוזניות צריכות לדווח על תנוחת הראש על בסיס תקופתי מומלץ של כ-20 אלפיות השנייה. כדי למנוע הפעלה של הלוגיקה של זיהוי קלט לא עדכני בטלפון במהלך שידור עם ג'יטר ב-Bluetooth, הזמן המקסימלי בין שני עדכונים לא יכול להיות יותר מ-40 אלפיות השנייה.

אופטימיזציה של צריכת החשמל

כדי לייעל את צריכת החשמל, מומלץ להשתמש במנגנונים של החלפת קודק Bluetooth ושל בחירת מצב השהיה שמסופקים על ידי הממשקים של audio HAL ושל Bluetooth audio HAL.

ההטמעות של AOSP של מסגרת האודיו ושל מחסנית Bluetooth כבר תומכות באותות לשליטה בהחלפת קודקים. אם ההטמעה של יצרן הציוד המקורי משתמשת ב-HAL האודיו הראשי לאודיו ב-Bluetooth, שנקרא מצב הורדת עומס של קודק, יצרן הציוד המקורי צריך לוודא ש-HAL האודיו מעביר את האותות האלה בין HAL האודיו לבין מחסנית ה-Bluetooth.

החלפת קודק

כשמפעילים אודיו מרחבי דינמי ומעקב אחרי תנועות הראש, צריך להשתמש בקודק עם השהיה נמוכה, כמו Opus. כשמפעילים תוכן אודיו לא מרחבי, צריך להשתמש בקודק עם צריכת חשמל נמוכה, כמו Advanced Audio Coding (AAC).

חשוב לפעול לפי הכללים הבאים כשעוברים בין קודקים:

  • מעקב רק אחרי הפעילות בזרמי הפלט הבאים של HAL של אודיו:
    • פלט ייעודי של מרחב
    • הזרמות ספציפיות למדיה, כמו מאגר זמני עמוק או הפעלה של העברה דחוסה
  • כשכל הסטרימים הרלוונטיים לא פעילים והסטרים של המרחב מתחיל, צריך להפעיל את סטרימינג ה-Bluetooth עם isLowLatency שמוגדר ל-true כדי לציין קודק עם השהיה נמוכה.

  • כשכל הזרמים הרלוונטיים לא פעילים ומתחיל זרם מדיה, מתחיל הזרם של Bluetooth עם isLowLatency שמוגדר ל-false כדי לציין קודק עם צריכת חשמל נמוכה.

  • אם שידור מדיה פעיל והשידור של האפקט המרחבי מתחיל, צריך להפעיל מחדש את שידור ה-Bluetooth עם isLowLatency שמוגדר ל-true.

בצד האוזניות, האוזניות צריכות לתמוך במפענחים של השהיה נמוכה וצריכת חשמל נמוכה, וליישם את פרוטוקול הבחירה של קודק סטנדרטי.

שינוי הגדרת זמן האחזור

התאמה של מצב זמן האחזור מתרחשת כשבוחרים את קודק זמן האחזור הקצר.

בהתאם למצב של מעקב הראש (מופעל או מושבת), ההתאמה של מצב זמן האחזור משתמשת במנגנונים זמינים כדי להפחית או להגדיל את זמן האחזור, במטרה להגיע לאיזון הטוב ביותר בין זמן האחזור, צריכת החשמל ואיכות האודיו. כשמפעילים אודיו מרחבי ומעקב אחרי תנועות הראש, נבחר מצב השהיה נמוכה. כשמפעילים את האודיו המרחבי ומשביתים את המעקב אחר תנועת הראש, נבחר מצב ללא השהיה. התאמת זמן האחזור מאפשרת לחסוך משמעותית בצריכת החשמל ולשפר את היציבות של קישור האודיו ב-Bluetooth, כשמבקשים רק אודיו מרחבי סטטי. המנגנון הנפוץ ביותר להתאמת זמן האחזור הוא הקטנה או ההגדלה של גודל מאגר הנתונים הזמני לשינויים קלים בזמן ההגעה באוזניות Bluetooth.

במאמר מעקב אחרי תנועות הראש באמצעות LE Audio מוסבר איך לשנות את מצב ההשהיה של LE Audio.