پیاده‌سازی صدای فضایی با کیفیت بالا و ردیابی سر

‫Android 13 با ارائه میاناهای برنامه‌سازی کاربردی که به توسعه‌دهندگان برنامه امکان می‌دهد متوجه شوند آیا ترکیب فعلی پیاده‌سازی تلفن، هدست متصل، و تنظیمات کاربر اجازه می‌دهد محتوای صوتی چندکاناله به‌صورت فراگیر پخش شود یا نه، از صدای فراگیر پشتیبانی می‌کند.

تولیدکنندگان اصلی سخت‌افزار می‌توانند بااستفاده از معماری جدید خط لوله صوتی و ادغام چارچوب حسگر، جلوه صوتی فضایی‌ساز را با پشتیبانی از ردیابی سر با سطح عملکرد و تأخیر موردنیاز ارائه دهند. پروتکل HID مشخص می‌کند که چگونه یک دستگاه ردیابی سر را ازطریق بلوتوث متصل کنید و آن را به‌عنوان یک دستگاه HID ازطریق چارچوب حسگر Android دردسترس قرار دهید. برای الزامات و اعتبارسنجی بیشتر، به صدای فراگیر و ردیابی سر مراجعه کنید.

دستورالعمل‌های این صفحه برای راه‌حل صدای فراگیر که از میاناهای برنامه‌سازی کاربردی صدای فراگیر جدید و معماری صوتی با تلفن Android دارای Android 13 و بالاتر و هدست‌های سازگار با حسگر ردیابی سر استفاده می‌کند اعمال می‌شود.

دستورالعمل‌های پیاده‌سازی حالت‌های صدای فضایی پویا و ایستا

صوت فضایی ثابت به ردگیری سر نیاز ندارد، بنابراین عملکرد خاصی در هدست لازم نیست. همه هدست‌های سیمی و بی‌سیم می‌توانند از صدای فراگیر ثابت پشتیبانی کنند.

پیاده‌سازی میانای برنامه‌سازی کاربردی

«تولیدکنندگان تجهیزات اصلی» باید Spatializer کلاسی را که در Android 12 معرفی شده است پیاده‌سازی کنند. پیاده‌سازی باید آزمایش‌های CTS معرفی‌شده برای کلاس Spatializer را بگذراند.

پیاده‌سازی قدرتمند API تضمین می‌کند که توسعه‌دهندگان نرم‌افزار، به‌ویژه خدمات جاری‌سازی رسانه، می‌توانند به عملکرد یکپارچه در سراسر بوم‌سازگان تکیه کنند و بهترین محتوا را براساس قابلیت‌های دستگاه، زمینه جاری‌سازی فعلی، و انتخاب‌های کاربر انتخاب کنند.

رابط کاربری

پس‌از پیاده‌سازی کلاس Spatializer ، تأیید کنید که واسط کاربر شما رفتار زیر را دارد:

  • وقتی هدست دارای صدای فضایی جفت می‌شود، تنظیمات دستگاه بلوتوث برای این هدست یک کلید صدای فضایی را نمایش می‌دهد:

    spatial-audio-ui

    شکل ۱. تنظیم صدای فضایی.

  • وقتی هدست قطع شده باشد، تنظیمات دردسترس است.

  • وضعیت پیش‌فرض صدای فراگیر پس‌از جفت‌سازی اولیه هدست روی فعال تنظیم می‌شود.

  • وضعیت انتخاب‌شده توسط کاربر، چه فعال باشد چه غیرفعال، پس‌از بازراه‌اندازی تلفن یا لغو جفت‌سازی و جفت‌سازی هدست حفظ می‌شود.

عملکرد کارکردی

قالب‌های صوتی

وقتی صدای فضایی فعال باشد و دستگاه پردازنده هدست سیمی یا بلوتوثی باشد، جلوه فضاساز باید قالب‌های صوتی زیر را پردازش کند:

  • AAC،‏ ۵٫۱ کانال
  • ‫PCM خام، ۵.۱ کانال

برای تجربه کاربری بهتر، اکیداً توصیه می‌کنیم از قالب‌ها/پیکربندی‌های کانال زیر پشتیبانی کنید:

  • Dolby Digital Plus
  • کانال‌های 5.1.2، 7.1، 7.1.2، 7.1.4

بازپخش محتوای استریو

محتوای استریو نباید ازطریق موتور جلوه فضاساز رندر شود، حتی اگر صدای فضایی فعال باشد. اگر پیاده‌سازی امکان فضایی‌سازی محتوای استریو را فراهم می‌کند، باید یک واسط کاربر سفارشی ارائه دهد که به کاربر اجازه دهد این ویژگی را روشن یا خاموش کند. وقتی صدای فضایی فعال است، باید امکان انتقال بین پخش محتوای چندکاناله فضایی‌شده به محتوای استریو غیرفضایی‌شده بدون نیاز به هیچ تغییری در تنظیمات کاربر یا اتصال مجدد یا پیکربندی مجدد هدست وجود داشته باشد. انتقال بین محتوای صدای فراگیر و محتوای استریو باید با حداقل اختلال صوتی انجام شود.

گذارها و هم‌زمان بودن مورد استفاده

موارد استفاده خاص را به‌صورت زیر مدیریت کنید:

  • اعلان‌ها باید با محتوای صدای فراگیر به همان روشی که با محتوای صدای غیرفراگیر ترکیب می‌شوند، ترکیب شوند.
  • آهنگ‌های زنگ باید اجازه داشته باشند با محتوای صدای فضایی ترکیب شوند. بااین‌حال، به‌طور پیش‌فرض، سازوکار تمرکز صوتی محتوای صدای فضایی را وقتی آهنگ زنگ وجود دارد موقتاً متوقف می‌کند.
  • هنگام پاسخ دادن یا برقراری تماس تلفنی یا کنفرانس ویدیویی، پخش صدای فراگیر باید موقتاً متوقف شود. بازپخش صدای فراگیر باید با همان تنظیمات صدای فراگیر پس‌از پایان تماس ازسر گرفته شود. پیکربندی مجدد مسیر صوتی برای جابه‌جایی از حالت صدای فضایی به حالت مکالمه باید به‌سرعت و به‌طور یکپارچه انجام شود تا بر تجربه تماس تأثیر نگذارد.

درحال پرداز زدن در بلندگوها

پشتیبانی از فضاسازی صوتی ازطریق بلندگوها، یا حالت ترانس‌آرال، الزامی نیست.

دستورالعمل‌های پیاده‌سازی ردگیری سر

این بخش بر صدای فضایی پویا تمرکز دارد که نیازمندی‌های خاصی برای هدست دارد.

رابط کاربری

پس‌از پیاده‌سازی و مرتبط‌سازی هدست با قابلیت صدای فضایی، تأیید کنید که واسط کاربر شما رفتار زیر را دارد:

  • در تنظیمات دستگاه بلوتوث، وقتی تنظیم صدای فضایی برای هدست فعال باشد، تنظیم ردگیری سر در زیر صدای فضایی نشان داده می‌شود:

    ht-ui

    شکل ۲. تنظیم صدای فراگیر و ردگیری سر.

  • وقتی صدای فراگیر غیرفعال باشد، تنظیم ردیابی سر قابل مشاهده نیست.

  • وضعیت پیش‌فرض برای ردیابی سر پس‌از جفت‌سازی اولیه هدست روی فعال تنظیم می‌شود.

  • وضعیت انتخاب‌شده کاربر، چه فعال باشد چه غیرفعال، باید درطول راه‌اندازی مجدد تلفن یا لغو جفت‌سازی و جفت‌سازی هدست حفظ شود.

عملکرد کارکردی

گزارش وضعیت سر

  • اطلاعات وضعیت سر، در مختصات x،‏ y، و z، که از هدست به دستگاه Android ارسال می‌شود باید حرکات سر کاربر را به‌سرعت و دقیق منعکس کند.
  • گزارش وضعیت سر ازطریق پیوند بلوتوث باید از پروتکل تعریف‌شده در HID پیروی کند.
  • هدست باید اطلاعات ردیابی سر را فقط زمانی به تلفن Android ارسال کند که کاربر ردیابی سر را در واسط کاربر تنظیمات دستگاه بلوتوث فعال کند.

عملکرد

تأخیر

تأخیر ردیابی سر به‌عنوان مدت زمانی تعریف می‌شود که طول می‌کشد تا حرکت سر که توسط واحد اندازه‌گیری اینرسی (IMU) ضبط شده است، توسط مبدل‌های هدفون به‌عنوان تغییر در صدا ناشی از این حرکت تشخیص داده شود. تأخیر ردیابی سر نباید از ۱۵۰ میلی‌ثانیه بیشتر باشد.

نرخ گزارش وضعیت سر

وقتی ردیابی سر فعال است، هدست باید وضعیت سر را به‌صورت دوره‌ای و تقریباً هر ۲۰ میلی‌ثانیه گزارش کند. برای جلوگیری از فعال شدن منطق تشخیص ورودی قدیمی در تلفن درطول انتقال لرزش بلوتوث، حداکثر زمان بین دو به‌روزرسانی نباید از ۴۰ میلی‌ثانیه بیشتر شود.

بهینه‌سازی توان

برای بهینه‌سازی مصرف انرژی، توصیه می‌کنیم پیاده‌سازی از سازوکارهای تعویض کدک بلوتوث و انتخاب حالت تأخیر ارائه‌شده توسط واسط‌های HAL صوتی و HAL صوتی بلوتوث استفاده کند.

پیاده‌سازی‌های AOSP از چارچوب صوتی و پشته بلوتوث ازقبل از سیگنال‌های کنترل تعویض کدک پشتیبانی می‌کنند. اگر پیاده‌سازی OEM از HAL صوتی اصلی برای صدای بلوتوث استفاده می‌کند، که به‌عنوان حالت انتقال بار کدک شناخته می‌شود، OEM باید اطمینان حاصل کند که HAL صوتی این سیگنال‌ها را بین HAL صوتی و پشته بلوتوث منتقل می‌کند.

تغییر کدک

وقتی صدای فراگیر پویا و ردیابی سر روشن است، از کدک با تأخیر کم، مثل Opus استفاده کنید. هنگام پخش محتوای صوتی غیرفضایی، از کدک کم‌مصرف مانند کدبندی صوتی پیشرفته (AAC) استفاده کنید.

این قوانین را درطول تعویض کدک دنبال کنید:

  • فقط فعالیت در جاری‌سازی‌های خروجی HAL صوتی زیر را پیگیری کنید:
    • برونداد فضاساز اختصاصی
    • جاری‌سازی‌های خاص رسانه، مانند میان‌گیر عمیق یا بازپخش بارگیری فشرده
  • وقتی همه جاری‌سازی‌های مربوطه در حالت آماده به‌کار هستند و جاری‌سازی فضایی‌ساز شروع می‌شود، جاری‌سازی بلوتوث را با isLowLatency تنظیم‌شده روی true شروع کنید تا یک کدک با تأخیر کم مشخص شود.

  • وقتی همه جاری‌سازی‌های مربوطه در حالت آماده‌به‌کار باشند و جاری‌سازی رسانه‌ای شروع شود، جاری‌سازی بلوتوث را با isLowLatency روی false تنظیم کنید تا کدک کم‌مصرف مشخص شود.

  • اگر جاری‌سازی رسانه‌ای فعال باشد و جاری‌سازی فضاساز شروع شود، جاری‌سازی بلوتوث را با isLowLatency روی true تنظیم‌شده بازراه‌اندازی کنید.

در سمت هدست، هدست باید از هر دو کدبند با تأخیر کم و توان کم پشتیبانی کند و پروتکل انتخاب کدبند استاندارد را پیاده‌سازی کند.

تعدیل حالت تأخیر

تنظیم حالت تأخیر زمانی اتفاق می‌افتد که کدک تأخیر کم انتخاب شده باشد.

براساس اینکه ردیابی سر روشن یا خاموش باشد، تنظیم حالت تأخیر از سازوکارهای موجود برای کاهش یا افزایش تأخیر استفاده می‌کند تا بهترین توازن بین تأخیر، مصرف باتری، و کیفیت صدا برقرار شود. وقتی صدای فضایی فعال باشد و ردگیری سر فعال باشد، حالت تأخیر کم انتخاب می‌شود. وقتی صدای فضایی فعال و ردیابی سر غیرفعال باشد، حالت تأخیر آزاد انتخاب می‌شود. وقتی فقط صدای فضایی ثابت درخواست شود، تنظیم تأخیر باعث صرفه‌جویی قابل‌توجه در مصرف انرژی و افزایش استحکام پیوند صدای بلوتوث می‌شود. رایج‌ترین سازوکار تنظیم تأخیر، کاهش یا افزایش اندازه میان‌گیر لرزش در هدست بلوتوث است.

برای تنظیمات حالت تأخیر برای «صدای کم‌مصرف»، ردیابی سر ازطریق صدای کم‌مصرف را ببینید.