اجرای صدای مکانی با کیفیت بالا و ردیابی سر

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

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

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

راهنمای اجرای حالت های صوتی فضایی پویا و استاتیک

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

پیاده سازی API

OEM ها باید کلاس Spatializer معرفی شده در Android 12 را پیاده سازی کنند. پیاده سازی باید تست های CTS معرفی شده برای کلاس Spatializer را بگذراند.

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

رابط کاربری

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

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

    spatial-audio-ui

    شکل 1. تنظیمات صوتی فضایی.

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

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

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

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

فرمت های صوتی

هنگامی که صدای فضایی فعال است و دستگاه رندر یک هدست سیمی یا بلوتوث است، فرمت های صوتی زیر باید توسط افکت فضای ساز ارائه شوند:

  • AAC، 5.1 کانال
  • PCM خام، 5.1 کانال

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

  • دالبی دیجیتال پلاس
  • کانال های 5.1.2، 7.1، 7.1.2، 7.1.4

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

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

از انتقال موارد و همزمانی استفاده کنید

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

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

رندر روی بلندگوها

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

دستورالعمل اجرای ردیابی سر

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

رابط کاربری

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

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

    ht-ui

    شکل 2. تنظیمات صوتی فضایی و ردیابی سر.

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

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

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

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

گزارش ژست سر

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

کارایی

تاخیر

تأخیر ردیابی سر به عنوان زمانی تعریف می‌شود که از حرکت سر گرفته شده توسط واحد اندازه‌گیری اینرسی (IMU) تا تشخیص تغییر صدا ناشی از این حرکت توسط مبدل‌های هدفون می‌گذرد. تأخیر ردیابی سر نباید از 150 میلی ثانیه تجاوز کند.

نرخ گزارش ژست سر

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

بهینه سازی قدرت

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

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

تعویض کدک

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

این قوانین را در هنگام تعویض کدک دنبال کنید:

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

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

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

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

تنظیم حالت تأخیر

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

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