صدای بلوتوث کم‌مصرف

«صدای بلوتوث کم‌مصرف» (LEA) تضمین می‌کند که کاربران می‌توانند صدای با کیفیت بالا را بدون ازدست دادن عمر باتری دریافت کنند و به آن‌ها اجازه می‌دهد به‌طور یکپارچه بین موارد استفاده مختلف جابه‌جا شوند. Android 13 (سطح میانای برنامه‌سازی کاربردی ۳۳) شامل پشتیبانی داخلی از LEA است.

اکثر هدست‌های مجهز به «صدای کم‌مصرف» تا زمانی که سهم بازار دستگاه منبع «صدای کم‌مصرف» رشد کند، حالت دوگانه خواهند داشت. کاربران باید بتوانند هر دو انتقال را در هدست‌های حالت دوگانه خود جفت و راه‌اندازی کنند.

موارد استفاده

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

  • هم‌رسانی صدا: کاربران می‌توانند به‌طور هم‌زمان چندین جاری‌سازی صوتی را با یک یا چند دستگاه گیرنده صدا هم‌رسانی کنند. صدا بین دستگاه منبع و دستگاه‌های متصل همگام‌سازی می‌شود.

  • همه‌فرستی صوتی: کاربران می‌توانند برای دوستان و خانواده همه‌فرستی صوتی انجام دهند و درعین‌حال برای دریافت اطلاعات، سرگرمی، یا دسترس‌پذیری به همه‌فرستی‌های عمومی متصل شوند.

  • پشتیبانی از کدک صوتی LC3: این کدک صوتی پیش‌فرض است و جایگزین کدک SBC مورداستفاده برای A2DP (رسانه) و mSBC در HFP (صدا) می‌شود. ‫LC3 کارآمدتر، قابل‌پیکربندی مجدد، و دارای کیفیت بالاتر است.

  • بهبودهای نمونه‌برداری صوتی: هدست‌ها می‌توانند هنگام استفاده از میکروفون، کیفیت صدای خروجی بالا را حفظ کنند. بلوتوث کلاسیک هنگام استفاده از میکروفون‌های بلوتوث کیفیت صدا را کاهش می‌دهد. با «صدای بلوتوث کم‌مصرف»، نمونه‌برداری ورودی و خروجی می‌تواند به ۳۲ کیلوهرتز برسد.

  • میکروفون استریو: دستگاه‌های شنیدنی می‌توانند با میکروفون‌های استریو صدا ضبط کنند تا صدای فراگیر بهبود یابد.

  • پشتیبانی از «نمایه سمعک» (HAP):‏ HAP نسبت‌به پروتکل‌های قبلی ASHA، دسترس‌پذیری و کاربرد بیشتری به کاربران ارائه می‌دهد. کاربران می‌توانند از سمعک‌هایشان برای تماس‌های تلفنی و برنامه‌های VoIP استفاده کنند.

  • پشتیبانی از پروتکل مشخصه بهبودیافته (EATT):‏ EATT به توسعه‌دهندگان امکان می‌دهد چندین فرمان را به‌طور هم‌زمان به دستگاه‌های شنیداری جفت‌شده ارسال کنند.

سناریوهای کلیدی

چهار دسته اصلی برای موارد استفاده وجود دارد:

  1. مکالمه‌ای: برنامه‌های شماره‌گیر و VoIP که به مسیریابی ارتباط با تأخیر کم نیاز دارند، صدای باکیفیت بالا و مصرف باتری کمتری ارائه می‌دهند.

  2. بازی: میکروفون هم‌زمان و بازپخش با وفاداری بالا به بازی‌ها امکان می‌دهد صدای باکیفیت را به دستگاه‌های شنیداری جاری‌سازی کنند. وقتی بازی میکروفون بلوتوث را به‌عنوان آماده استفاده فعال می‌کند، برنامه بازی می‌تواند به ورودی صوتی BLE دسترسی پیدا کند. سپس، وقتی بازیکن مکالمه‌ای زنده را با بازیکن هم‌رده شروع می‌کند، برنامه بازی می‌تواند بدون تأخیر از داده‌های میکروفون استفاده کند.

  3. رسانه: برنامه‌های رسانه مجازند دستگاه ترجیحی مدیر صدا را تنظیم کنند. کاربر می‌تواند با تغییر دستگاه ترجیحی خود از داخل تنظیمات سیستم، این تنظیم را لغو کند.

  4. دسترس‌پذیری: سمعک‌هایی که از «صدای BLE» پشتیبانی می‌کنند اکنون می‌توانند از میکروفون استفاده کنند، که به کاربران اجازه می‌دهد به‌طور مداوم از سمعک خود برای تماس استفاده کنند.

میاناهای برنامه‌سازی کاربردی و روش‌های BLE Audio

میاناهای برنامه‌سازی کاربردی و روش‌های زیر برای پشتیبانی از دستگاه‌های شنیداری مجهز به «صدای بلوتوث کم‌مصرف» لازم است:

AudioManager

  • setCommunicationDevice() دستگاه صوتی‌ای را انتخاب می‌کند که باید برای موارد استفاده ارتباطی، مثلاً تماس‌های صوتی یا تصویری، استفاده شود. برنامه‌های گپ صوتی یا تصویری می‌توانند از این روش برای انتخاب دستگاه صوتی دیگری غیراز دستگاهی که به‌طور پیش‌فرض توسط پلاتفرم انتخاب شده است استفاده کنند. این میانای برنامه‌سازی کاربردی جایگزین میاناهای برنامه‌سازی کاربردی منسوخ‌شده زیر می‌شود: startBluetoothSco()، stopBluetoothSco()، و setSpeakerphoneOn().
  • clearCommunicationDevice() پس‌از اینکه برنامه‌تان تماس یا جلسه‌ای را به‌پایان می‌رساند فراخوانی می‌شود تا اطمینان حاصل شود که کاربر هنگام جابه‌جایی بین برنامه‌های مختلف تجربه خوبی دارد.

BluetoothProfile

  • BluetoothLeAudio سرویس بلوتوث را ازطریق شیء پیشکار کنترل می‌کند.

Telecom InCallService

  • InCallService#requestCallEndpointChange() جایگزین میاناهای برنامه‌سازی کاربردی منسوخ‌شده InCallService.setAudioRoute() و InCallService.requestBluetoothAudio() می‌شود تا برنامه‌ها بتوانند مسیریابی صدا به CallEndpoint خاصی را درخواست کنند. مشتریان نباید CallEndpoint خودشان را هنگام درخواست تغییر تعریف کنند. درعوض، نقطه پایانی جدید باید یکی از نقاط پایانی معتبر ارائه‌شده توسط InCallService.onAvailableCallEndpointsChanged(java.util.List) باشد.
  • CallEndpoint.TYPE_BLUETOOTH جاری‌سازی صوتی را ازطریق بلوتوث هدایت می‌کند.
  • این InCallService میاناهای برنامه‌سازی کاربردی که پیش‌تر ذکر شد برای استفاده توسط برنامه تلفن پیش‌فرض در تلفن Android یا سایر سطوح تماس مانند دستگاه‌های پوشیدنی، خودروها، یا سایر دستگاه‌های بلوتوث که ممکن است بخواهند بر مسیریابی صدا تأثیر بگذارند طراحی شده‌اند.

Telecom CallControl

اطلاعات دستگاه صوتی

  • AudioDeviceInfo.TYPE_BLE_HEADSET نوع دستگاه صوتی را به‌عنوان دستگاه LEA توصیف می‌کند. برای شناسایی اینکه آیا دستگاه شنیدنی دستگاه LEA است یا نه استفاده می‌شود.

ضبط‌کننده صدا

  • setPreferredDevice() دستگاه برگزیده را برای استفاده در مسیریابی صوتی تنظیم می‌کند. کاربر می‌تواند این مورد را در تنظیمات سیستم لغو کند.

آداپتور بلوتوث

  • isLeAudioSupported(): یک ثابت @BluetoothStatusCodes (FEATURE_SUPPORTED، FEATURE_NOT_SUPPORTED، یا کد خطا) برمی‌گرداند که نشان می‌دهد آیا سخت‌افزار دستگاه از «صدای کم‌مصرف» پشتیبانی می‌کند یا نه.
  • isLeAudioBroadcastSourceSupported(): یک ثابت @BluetoothStatusCodes (FEATURE_SUPPORTED، FEATURE_NOT_SUPPORTED، یا کد خطا) برمی‌گرداند که نشان می‌دهد آیا سخت‌افزار دستگاه از منبع همه‌فرستی «صدای کم‌مصرف» پشتیبانی می‌کند یا نه.

راهنماها براساس مورد استفاده

در زیر دستورالعمل‌هایی برای پیاده‌سازی LEA براساس موارد استفاده خاص ارائه شده است.

برنامه‌های ارتباط صوتی

برنامه‌های ارتباط صوتی می‌توانند مسیریابی صوتی و وضعیت دستگاه را با مدیریت خودکار وضعیت خود یا بااستفاده از Telecom API مدیریت کنند که مسیریابی صوتی و منطق وضعیت را برای شما انجام می‌دهد.

این دو راهکار به شما امکان می‌دهد به‌سرعت و به‌آسانی مسیریابی صدا را کنترل کنید و بین دستگاه‌های بلوتوث جابه‌جا شوید. برای اطلاعات بیشتر، راهنمای تماس‌های مدیریت‌شده Telecom را ببینید.

برنامه‌های ضبط صدا

  • ضبط‌کننده رسانه: هنگام ضبط صدا بااستفاده از «ضبط‌کننده رسانه»، اگر دستگاه شنیداری بلوتوث از LEA پشتیبانی کند، اکنون می‌توانید به‌صورت استریو ضبط کنید. راهنمای ضبط صدا را بررسی کنید.

توصیه‌های هدست

با عرضه هدست‌های LEA بیشتر، در آزمایش‌های دنیای واقعی متوجه مشکلاتی شده‌ایم که تجربه کاربری را تضعیف می‌کند. مشخصات همه این مشکلات را پوشش نمی‌دهد. جدول زیر فهرستی از توصیه‌هایی را ارائه می‌دهد که سازندگان هدست LEA باید برای بهبود تجربه سرتاسری کاربران Android دنبال کنند.

شرح بافت
پشتیبانی از Cross Transport Key Derivation (CTKD) برای هدست‌های دومودی:
  • پشتیبانی از مشتق کلید برای جفت‌سازی «کلاسیک به کم‌مصرف» و جفت‌سازی «کم‌مصرف به کلاسیک».
تا زمانی که سهم بازار دستگاه منبع «صدای کم‌مصرف» افزایش یابد، اکثر هدست‌های جدید «صدای کم‌مصرف» از نوع دومنظوره خواهند بود. مهم است که کاربران بتوانند هدست‌های دومودی خود را به‌طور یکپارچه جفت کنند و هر دو انتقال را راه‌اندازی کنند. این موضوع برای «جفت‌سازی سریع Google» نیز مهم است.

اگر می‌خواهید هدست‌های LEA شما به‌طور مطمئن به دستگاه‌های منبع متصل شوند، از اعلان‌های هدفمند (TA) پشتیبانی کنید.

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

به BT SIG آینده اضافه خواهد شد.

برخلاف مدل صفحه‌بندی BR/EDR که در آن اتصال می‌تواند توسط تلفن یا هدست آغاز شود، اتصال در LEA باید توسط دستگاه مرکزی آغاز شود. درحال‌حاضر، بسیاری از هدست‌ها از نشانی‌های قابل‌ردیابی استفاده نمی‌کنند، یعنی ممکن است دستگاه مرکزی نتواند بدون افزودن دستگاه جانبی به «فهرست مجاز»، دوباره به آن متصل شود. بااین‌حال، راه‌حل فهرست مجاز ممکن است مانع از اتصال هدست به دستگاه مرکزی دیگری شود. بنابراین، مهم است که هدست‌های LEA از TA به‌درستی پشتیبانی کنند تا دستگاه مرکزی بتواند بدون راه‌حل‌های موقتی که ممکن است اتصال‌های چندنقطه‌ای را قطع کند، به‌طور مطمئن دوباره متصل شود.
بهینه‌سازی قابلیت شناسایی برای هدفون‌های توگوشی دومودی
  • هدفون توگوشی اصلی - مؤلفه BR/EDR باید بااستفاده از نشانی عمومی‌اش آگهی پخش کند و امکان پرس‌وجو و اسکن صفحه را با نامش که ازطریق EIR دردسترس است فعال کند، و بیت ۱۴ صدای LE را در «کلاس‌های سرویس اصلی» «کلاس دستگاه» (CoD) روی ۱ تنظیم کند.
  • هدفون توگوشی اصلی - مؤلفه LE: هدفون توگوشی اصلی باید بااستفاده از همان «نشانی عمومی» مؤلفه BR/EDR و همان «نام محلی کامل» مؤلفه BR/EDR، آگهی «قابل‌اتصال» و «قابل‌شناسایی» (محدود یا عمومی) انجام دهد و «دسته ظاهر» آن به‌عنوان «دسته ظاهر» مناسبی تنظیم شود که با نوع دستگاه ازراه‌دور مطابقت داشته باشد و انتظار می‌رود دستگاه مرکزی از این اطلاعات برای تنظیم سیاست‌های مسیریابی صدا و میانای کاربر خود استفاده کند.
  • هدفون توگوشی ثانویه - فقط LE: هدفون توگوشی ثانویه باید آگهی «قابل‌اتصال، غیرقابل‌شناسایی» را با «دسته ظاهر» تنظیم‌شده به‌عنوان «دسته ظاهر» مناسبی که با نوع دستگاه راه دور مطابقت دارد اجرا کند، با این انتظار که دستگاه مرکزی از این اطلاعات برای تنظیم واسط کاربر و خط‌مشی‌های مسیریابی صوتی خود استفاده خواهد کرد

    هدفون‌های توگوشی باید به‌طور پویا یک رهبر از گروه CSIP انتخاب کنند تا دستگاه اصلی باشد. اگر هدفون توگوشی حالت دوگانه دارد، دستگاه اصلی باید حالت دوگانه داشته باشد تا اطمینان حاصل شود که هر دو عملکرد «کم‌مصرف» و «کلاسیک» پس‌از جفت‌سازی به‌درستی کار می‌کنند.

این کار از نمایش هدفون‌های توگوشی LEA دومودی به‌عنوان ورودی‌های تکراری در تنظیمات بلوتوث جلوگیری می‌کند، که ممکن است باعث سردرگمی کاربران شود و تجربه جفت‌سازی LEA را به‌خطر بیندازد.

انتخاب رهبر پویا به‌ویژه برای دستگاه‌های دومودی که به‌صورت افزایشی جفت می‌شوند مهم است. برای مثال، اگر فقط یک هدفون توگوشی در جفت‌سازی اولیه دردسترس باشد، باید خود را به‌عنوان دستگاه دوحالته معرفی کند. وقتی کاربر بعداً با هدفون توگوشی دوم جفت می‌شود، فقط باید با مؤلفه «صدای کم‌مصرف» جفت شود و CSIP مطمئن می‌شود که آن‌ها در Android باهم گروه‌بندی می‌شوند.

توصیه می‌شود درطول جفت‌سازی از نشانی هویت استفاده شود زیرا مؤلفه BR/EDR ازقبل نشانی عمومی دستگاه را برای دستگاه‌های اطراف نمایان می‌کند.

از پروتکل مشخصه بهبودیافته (EATT) پشتیبانی می‌کند. تأخیر جفت‌سازی و اتصال را کاهش می‌دهد.
پشتیبانی از ذخیره کردن در حافظه نهان GATT قوی. تأخیر اتصال را کاهش می‌دهد، به‌ویژه برای هدفون‌های توگوشی TWS.
پشتیبانی از زیررده‌بندی اتصال. امکان زمان‌بندی بسته‌ای انعطاف‌پذیرتر و صرفه‌جویی احتمالی در مصرف باتری را فراهم می‌کند.
مطمئن شوید که درطول پیش‌پردازش و پس‌پردازش برای بازپخش و ضبط، خط لوله پردازش سیگنال بتواند در فرکانس‌های ۱۶، ۲۴، ۳۲، و ۴۸ کیلوهرتز کار کند و از فرکانس‌های بالاتر نیز پشتیبانی کند. از نرخ‌های نمونه‌برداری بالاتر پشتیبانی‌شده برای تماس LEA یا مسیرهای ضبط VoIP و بازپخش رسانه بهره می‌برد.
پشتیبانی از کنترل مصرف انرژی LE مدیریت بهتر مصرف برق

پشتیبانی از نوع بافت

شرح بافت
از همه انواع بافت مشخص‌شده در Assigned Numbers 6.12.3 استفاده کنید، مگراینکه هدست صریحاً از نوع بافت خاصی پشتیبانی نکند. برای مثال، اگر نوع بافت «بازی» پشتیبانی نشود، Android صداهای بازی را ارسال خواهد کرد. به‌ویژه توجه داشته باشید که نوع بافت «نامشخص» به‌معنای «هر نوع بافت» نیست و انواع بافت پشتیبانی‌نشده را پوشش نمی‌دهد.

وقتی دستگاه مرکزی با ASCS دستگاه جانبی تعامل برقرار می‌کند، دستگاه جانبی باید به MCS و TBS دستگاه مرکزی متصل شود.

دستگاه مرکزی ممکن است همیشه از LE Audio به‌عنوان مسیر جاری‌سازی استفاده نکند زیرا ممکن است به استفاده از A2DP یا HFP برگردد. دستگاه جانبی می‌تواند از تعامل ASCS به‌عنوان نشانه‌ای برای اینکه آیا دستگاه مرکزی از صدای کم‌مصرف برای جاری‌سازی استفاده خواهد کرد یا نه استفاده کند.

چند نمونه از تعامل‌های ASCS عبارتند از خواندن، نوشتن، و ثبت‌نام برای اعلان.

توصیه‌های فرستنده Auracast

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

همه‌فرستی‌های متناوب

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

برای بهبود تجربه کاربری، Android توصیه می‌کند که فرستنده‌های Auracast از دستورالعمل‌های زیر برای مدیریت همه‌فرستی‌های متناوب پیروی کنند.

تعاریف

  • صدای موردنظر: محتوای اطلاعاتی اصلی که برای کاربر درنظر گرفته شده است، مثل اعلامیه گیت یا قطار.
  • صدای پس‌زمینه: سکوت پس‌زمینه، پارازیت، یا موسیقی محیطی که بین دوره‌های «صدای موردنظر» منتقل می‌شود.
  • همه‌فرستی متناوب: همه‌فرستی‌ای که بین دوره‌های «صدای موردنظر» و دوره‌های «صدای پس‌زمینه» یا بدون صدا به‌طور متناوب تغییر می‌کند.

درحال شناسایی همه‌فرستی‌های متناوب

برای تعیین یک همه‌فرستی به‌عنوان «همه‌فرستی متناوب»، همه‌فرست باید ساختار LTV (طول-نوع-مقدار) فراداده Audio_Active_State [۱] را در دو مکان قرار دهد:

  1. فراداده سطح ۲ ساختار BASE (آگهی‌های دوره‌ای) [۲]
  2. فراداده اعلان همه‌فرستی عمومی (آگهی‌های گسترده) [۳]

برای کمک به گیرنده در شناسایی «پخش متناوب» و تصمیم‌گیری درباره اینکه جاری‌سازی را پخش کند یا نه، پخش‌کننده باید ساختار LTV فراداده Streaming_Audio_Context را نیز به‌درستی تنظیم کند [۱].

شناسایی صدای موردنظر

برای سیگنال‌دهی پویا درباره اینکه آیا «پخش متناوب» در هر زمان معین حاوی «صدای موردنظر» است یا نه، فرستنده از ساختارهای LTV فراداده Audio_Active_State استفاده می‌کند.

  • فراداده سطح ۲ ساختار BASE: مقدار 0x01 نشان می‌دهد که BISها در یک زیرگروه درحال‌حاضر حاوی «صدای موردعلاقه» هستند.
  • فراداده اعلامیه پخش عمومی: مقدار 0x01 نشان می‌دهد که حداقل یکی از BISها در BIG حاوی «صدای موردعلاقه» است.

مقادیر LTV فراداده Audio_Active_State باید کمی قبل‌از انتقال «صدای موردنظر» روی 0x01 تنظیم شود تا دستگاه اسکن‌کننده بتواند با «منبع همه‌فرستی عمومی» همگام‌سازی شود. برعکس، باید کمی بعداز پایان انتقال روی 0x00 تنظیم شود.

بهره‌برداری از بافت جاری‌سازی صوتی

ارائه بافت صریح به چارچوب Android و دستگاه‌های گیرنده کمک می‌کند جاری‌سازی‌های ورودی را اولویت‌بندی کنند. برای مثال، سیستم بلندگوی عمومی (PA) ممکن است نوع Streaming_Audio_Context را روی «آموزشی» تنظیم کند تا اعلان‌ها بتوانند به‌طور تمیز بازپخش رسانه محلی گیرنده را قطع کنند و پس‌از آن به‌طور یکپارچه آن را ازسر بگیرند.

مرجع‌ها

[۱] شماره‌های اختصاص‌یافته بلوتوث، https://www.bluetooth.com/specifications/assigned-numbers/
[۲] نمایه صوتی پایه، https://www.bluetooth.com/specifications/specs/basic-audio-profile-1-0-3/
[۳] نمایه همه‌فرستی عمومی، https://www.bluetooth.com/specifications/specs/public-broadcast-profile-1-0-2/