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

‫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.

ההטמעות של מסגרת האודיו ושל מחסנית ה-Bluetooth ב-AOSP כבר תומכות באותות לשליטה בהחלפת קודקים. אם ההטמעה של יצרן הציוד המקורי משתמשת ב-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.