Google is committed to advancing racial equity for Black communities. See how.
ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

دعم السمع الصوتي باستخدام Bluetooth LE

يمكن أن تتمتع أجهزة المعينات السمعية (HA) بإمكانية وصول محسنة على الأجهزة المحمولة التي تعمل بنظام Android باستخدام قنوات L2CAP (CoC) الموجهة للاتصال عبر Bluetooth منخفضة الطاقة (BLE). تستخدم CoC مخزنًا مؤقتًا مرنًا للعديد من حزم الصوت للحفاظ على تدفق ثابت للصوت ، حتى في حالة فقدان الحزمة. يوفر هذا المخزن المؤقت جودة صوت لأجهزة المعينات السمعية على حساب زمن الوصول.

يشير تصميم CoC إلى الإصدار 5 من مواصفات Bluetooth الأساسية (BT). للبقاء متماشية مع المواصفات الأساسية ، يجب قراءة جميع القيم متعددة البايت الموجودة في هذه الصفحة على أنها قيم صغيرة.

المصطلح

  • مركزي - جهاز Android الذي يبحث عن الإعلانات عبر البلوتوث.
  • الطرفية - أداة السمع التي ترسل حزم الإعلانات عبر البلوتوث.

طوبولوجيا الشبكة وبنية النظام

عند استخدام CoC للمعينات السمعية ، يفترض هيكل الشبكة وجود جهاز مركزي واحد وجهازين طرفيين ، أحدهما يسار والآخر يمين ، كما هو موضح في الشكل 1 . يرى نظام صوت Bluetooth الأجهزة الطرفية اليمنى واليسرى على أنها حوض صوت واحد. إذا كان أحد الأجهزة الطرفية مفقودًا ، بسبب التوافق أحادي السمع أو فقدان الاتصال ، فسيقوم الجهاز المركزي بخلط قناة الصوت اليمنى واليسرى وينقل الصوت إلى الأجهزة الطرفية المتبقية. إذا فقد الجهاز المركزي الاتصال بكلا الجهازين الطرفيين ، فإن الجهاز المركزي يعتبر الرابط إلى مصدر الصوت مفقودًا. في تلك الحالات ، يقوم المركز بتوجيه الصوت إلى إخراج آخر.


الشكل 1. طوبولوجيا لإقران المعينات السمعية بأجهزة Android المحمولة باستخدام CoC عبر BLE

عندما لا يقوم الجهاز المركزي بدفق البيانات الصوتية إلى الأجهزة الطرفية ويمكنه الحفاظ على اتصال BLE ، يجب ألا ينفصل الجهاز المركزي عن الجهاز المحيطي. يسمح الحفاظ على الاتصال بنقل البيانات إلى خادم الجات الموجود على الجهاز الطرفي.

عند إقران وتوصيل أجهزة السمع ، يجب على الجهاز المركزي:

  • تتبع أحدث الأجهزة الطرفية اليسرى واليمنى المقترنة.
  • افترض أن الأجهزة الطرفية قيد الاستخدام في حالة وجود اقتران صالح. يجب أن يحاول الجهاز المركزي الاتصال أو إعادة الاتصال بالجهاز المقترن عند فقد الاتصال.
  • افترض أن الأجهزة الطرفية لم تعد قيد الاستخدام إذا تم حذف الاقتران.

في الحالات المذكورة أعلاه ، يشير الاقتران إلى إجراء تسجيل مجموعة من المعينات السمعية باستخدام UUID محدد ومخصصات يسار / يمين في نظام التشغيل ، وليس عملية اقتران Bluetooth.

متطلبات النظام

لتنفيذ مدونة قواعد السلوك بشكل صحيح للحصول على تجربة مستخدم جيدة ، يجب على أنظمة Bluetooth في الأجهزة المركزية والطرفية:

  • تنفيذ وحدة تحكم BT 4.2 متوافقة أو أعلى. يوصى بشدة باستخدام LE Secure Connections.
  • الحصول على الدعم المركزي على الأقل ارتباطين LE متزامنين مع معلمات كما هو موضح في تنسيق حزمة الصوت والتوقيت .
  • لديك دعم طرفي على الأقل ارتباط 1 جنيه مع المعلمات الموصوفة في تنسيق حزمة الصوت والتوقيت .
  • لديك تحكم في التدفق قائم على الائتمان LE [BT Vol 3، Part A، Sec 10.1]. يجب أن تدعم الأجهزة حجم MTU و MPS لا يقل عن 167 بايت على CoC وأن تكون قادرة على تخزين ما يصل إلى 8 حزم.
  • لها امتداد طول بيانات LE [BT Vol 6، Part B، Sec 5.1.9] مع حمولة لا تقل عن 167 بايت.
  • maximum_CE_Length الجهاز المركزي يدعم أمر تحديث اتصال HCI LE ويتوافق مع معلمات minimum_CE_Length غير الصفري maximum_CE_Length minimum_CE_Length .
  • اجعل الجهاز المركزي يحافظ على إنتاجية البيانات لتوصيلي LE CoC إلى جهازين طرفيين مختلفين مع فترات الاتصال وأحجام الحمولة في تنسيق وتوقيت حزم الصوت .
  • لديك مجموعة هامشية من MaxRxOctets و MaxRxTime المعلمات في LL_LENGTH_REQ أو LL_LENGTH_RSP الإطارات ليكون أصغر القيم المطلوبة والتي هي ضرورية لهذه المواصفات. يتيح ذلك للمركز تحسين جدولة الوقت عند حساب مقدار الوقت اللازم لاستقبال إطار.

يوصى بشدة أن يدعم المركزين والطرفين 2 ميجابايت PHY كما هو محدد في مواصفات BT 5.0. يجب أن يدعم المركز الوصلات الصوتية بمعدل 64 كيلوبت / ثانية على الأقل على كل من 1M و 2M PHY. لا يجوز استخدام PHY بعيد المدى BLE.

يستخدم CoC آليات Bluetooth القياسية لتشفير طبقة الارتباط وقفز التردد.

خدمات ASHA GATT

يجب على الجهاز الطرفي تنفيذ خدمة خادم GATT للبث الصوتي للمساعدة على السمع (ASHA) الموضحة أدناه. يجب أن يعلن الجهاز الطرفي عن هذه الخدمة عندما يكون في الوضع العام القابل للاكتشاف للسماح للمركز بالتعرف على مصدر الصوت. يجب أن تتطلب أي عمليات بث صوتي LE التشفير. يتكون دفق الصوت BLE من الخصائص التالية:

صفة مميزة الخصائص وصف
قراءة فقط عقارات اقرأ انظر ReadOnlyProperties .
AudioControlPoint اكتب واكتب بدون رد نقطة تحكم لدفق الصوت. انظر AudioControlPoint .
AudioStatusPoint قراءة / إعلام حقل تقرير الحالة لنقطة التحكم في الصوت. أكواد التشغيل هي:
  • 0 - الحالة جيدة
  • -1 - أمر غير معروف
  • -2 - معلمات غير قانونية
الصوت اكتب بدون رد بايت بين -128 و 0 يشير إلى مقدار التوهين المراد تطبيقه على إشارة الصوت المتدفقة ، والتي تتراوح من -48 ديسيبل إلى 0 ديسيبل. يتم تفسير الضبط -128 على أنه مكتوم تمامًا ، أي أن أدنى مستوى صوت غير مكتوم هو -127 وهو ما يعادل التوهين -47.625 ديسيبل. عند الإعداد 0 ، يجب أن تمثل نغمة الجيب المتدفقة من السكك الحديدية إلى السكك الحديدية ما يعادل إدخال 100 dBSPL على جهاز السمع. يجب أن يتدفق المركز بمقياس كامل اسمي ويستخدم هذا المتغير لضبط مستوى العرض المطلوب في الطرف.
LE_PSM_OUT اقرأ PSM لاستخدامه لتوصيل قناة الصوت. ليتم انتقاؤها من النطاق الديناميكي [BT Vol 3، Part A، Sec 4.22]

المعرفات الفريدة UUID المخصصة للخدمة والخصائص:

UUID للخدمة : {0xFDF0}

صفة مميزة UUID
قراءة فقط عقارات {6333651e-c481-4a3e-9169-7c902aad37bb}
AudioControlPoint {f0d4de7e-4a88-476c-9d9f-1937b0996cc0}
الصوت {38663f1a-e711-4cac-b641-326b56404837}
الصوت {00e4ca9e-ab14-41e4-8823-f9e70c7e91df}
LE_PSM_OUT {2d410339-82b6-42aa-b34e-e2e01df8cc1a}

بالإضافة إلى خدمة ASHA GATT ، يجب على الجهاز الطرفي أيضًا تنفيذ خدمة معلومات الجهاز للسماح للمركز بالكشف عن أسماء الشركة المصنعة وأسماء الأجهزة الطرفية.

قراءة فقط عقارات

تحتوي ReadOnlyProperties على القيم التالية:

بايت وصف
0 الإصدار - يجب أن يكون 0x01
1 انظر DeviceCapabilities .
2-9 راجع HiSyncId .
10 انظر FeatureMap .
11-12 RenderDelay. هذا هو الوقت ، بالمللي ثانية ، من وقت استقبال الجهاز المحيطي لإطار صوتي حتى يقوم الجهاز المحيطي بإخراج الإخراج. يمكن استخدام هذه البايتات لتأخير الفيديو لمزامنته مع الصوت.
13-14 محجوزة للاستخدام في المستقبل. التهيئة إلى الأصفار.
15-16 معرفات الترميز المدعومة. هذا هو قناع بت لمعرفات الترميز المدعومة. يتوافق 1 في موقع بت مع برنامج ترميز مدعوم. على سبيل المثال ، يشير 0x0002 إلى أن G.722 عند 16 كيلو هرتز مدعوم. يجب تعيين جميع وحدات البت الأخرى على 0.

DeviceCapabilities

قليلا وصف
0 جانب الجهاز (يسار: 0 ، يمين: 1).
1 أحادي (0) / بكلتا الأذنين (1). يشير إلى ما إذا كان الجهاز قائمًا بذاته ويتلقى بيانات أحادية ، أو إذا كان الجهاز جزءًا من مجموعة.
2-7 محجوز (مضبوط على 0).

HiSyncID

يجب أن يكون هذا الحقل فريدًا لجميع أجهزة الأذنين ولكن يجب أن يكون هو نفسه للمجموعة اليمنى واليسرى.

بايت وصف
0-1 معرف الشركة المصنعة. إنها معرّفات الشركة المعينة من قبل BTSIG.
2-7 معرف فريد يحدد مجموعة المعينات السمعية. يجب تعيين هذا المعرف على نفس المعرف على كلا الطرفين الأيمن والأيسر.

FeatureMap

قليلا وصف
0 دعم تدفق خرج الصوت LE CoC (نعم / لا).
1-7 محجوز (ضبط على 0).

معرفات الترميز

إذا تم تعيين البت ، فسيكون برنامج الترميز هذا هو الدعم.

رقم المعرف / البت معدل الترميز والعينة معدل البت المطلوب وقت الإطار إلزامي على المركز (C) أو المحيطي (P)
0 محجوز محجوز محجوز محجوز
1 G.722 @ 16 كيلو هرتز 64 كيلوبت / ثانية متغير C و P
2-15 محجوزة.
0 محجوز أيضًا.

AudioControlPoint

لا يمكن استخدام نقطة التحكم هذه عند إغلاق LE CoC. راجع بدء دفق صوتي وإيقافه للحصول على وصف الإجراء.

كود التشغيل الحجج وصف
1 «Start»
  • uint8_t codec
  • uint8_t audiotype
  • int8_t volume
  • int8_t otherstate
يوجه الجهاز الطرفي لإعادة تعيين برنامج الترميز وبدء تشغيل الإطار 0. يشير حقل برنامج الترميز إلى معرف برنامج الترميز المراد استخدامه لهذا التشغيل. على سبيل المثال ، حقل برنامج الترميز هو "1" لـ G.722 بسرعة 16 كيلو هرتز.

يشير حقل بت نوع الصوت إلى نوع (أنواع) الصوت الموجودة في الدفق:
  • 0 - غير معروف
  • 1 - نغمة الرنين
  • 2 - الاتصال الهاتفي
  • 3 - الميديا
يشير هذا المجال otherstate ما إذا كان الجانب الآخر من الأجهزة الأذنين متصل. تكون قيمة الحقل 1 عند توصيل الجهاز المحيطي الآخر ، وإلا فإن القيمة تكون 0.

لن يطلب الجهاز الطرفي تحديثات الاتصال قبل استلام كود التشغيل " «Stop» .
2 «Stop» لا شيء يوجه الجهاز الطرفي لإيقاف عرض الصوت. يجب بدء تسلسل إعداد صوت جديد بعد هذا التوقف لتقديم الصوت مرة أخرى.
3 «Status»
  • uint8_t connected
يُعلم الجهاز الطرفي المتصل بوجود تحديث للحالة على الجهاز الطرفي الآخر. يشير الحقل المتصل إلى نوع التحديث:
  • 0 - قطع طرفية أخرى
  • 1 - توصيل طرفي آخر
  • 2 - حدث تحديث معلمة اتصال LE على أي اتصال

إعلانات لخدمة ASHA GATT

يجب أن يكون UUID الخاص بالخدمة في حزمة الإعلان. في أي من الإعلان أو إطار استجابة المسح الضوئي ، يجب أن تحتوي الأجهزة الطرفية على بيانات الخدمة:

إزاحة البايت اسم وصف
0 طول ميلادي > = 0x09
1 نوع م 0x16 (بيانات الخدمة - 16 بت UUID)
2-3 UUID للخدمة 0xFDF0 (صغير الحجم)

ملاحظة: هذا معرف مؤقت.
4 إصدار البروتوكول 0x01
5 الإمكانية
  • 0 - يسار (0) أو يمين (1)
  • 1 - أجهزة مفردة (0) أو مزدوجة (1).
  • 2-7 - محفوظة. يجب أن تكون هذه البتات صفرًا.
6-9 HiSyncID مقطوع أربعة بايت الأقل أهمية من HiSyncId . يجب أن تكون هذه البايتات الجزء الأكثر عشوائية في المعرف.

يجب أن تحتوي الأجهزة الطرفية على نوع بيانات الاسم المحلي الكامل الذي يشير إلى اسم المعينة السمعية. سيتم استخدام هذا الاسم على واجهة مستخدم الجهاز المحمول حتى يتمكن المستخدم من تحديد الجهاز المناسب. يجب ألا يشير الاسم إلى القناة اليمنى أو اليسرى حيث يتم توفير هذه المعلومات في DeviceCapabilities .

إذا وضعت الأجهزة الطرفية الاسم وأنواع بيانات خدمة ASHA في نفس نوع الإطار (ADV أو SCAN RESP) ، فسيظهر نوعا البيانات ("الاسم المحلي الكامل" و "بيانات الخدمة لخدمة ASHA") في نفس الإطار. يتيح ذلك لماسح الجهاز المحمول الحصول على كلا البيانات في نفس نتيجة المسح.

أثناء الاقتران الأولي ، من المهم أن تعلن الأجهزة الطرفية بمعدل سريع بما يكفي للسماح للجهاز المحمول باكتشاف الأجهزة الطرفية بسرعة والارتباط بها.

مزامنة الأجهزة الطرفية اليمنى واليسرى

للعمل مع Bluetooth على أجهزة Android المحمولة ، تكون الأجهزة الطرفية مسؤولة عن ضمان مزامنتها. يجب مزامنة التشغيل على الأجهزة الطرفية اليمنى واليسرى في الوقت المناسب. يجب أن يقوم كلا الجهازين الطرفيين بتشغيل عينات صوتية من المصدر في نفس الوقت.

يمكن للأجهزة الطرفية مزامنة وقتها باستخدام رقم تسلسلي مُسبق لكل حزمة من حمولة الصوت. يضمن المركز أن حزم الصوت التي من المفترض تشغيلها في نفس الوقت على كل طرف لها نفس رقم التسلسل. يزداد الرقم التسلسلي بمقدار واحد بعد كل حزمة صوتية. يبلغ طول كل رقم تسلسلي 8 بت ، لذا ستتكرر الأرقام التسلسلية بعد 256 حزمة صوتية. نظرًا لأن حجم كل حزمة صوت ومعدل عينة ثابتان لكل اتصال ، يمكن للأجهزة الطرفية استنتاج وقت التشغيل النسبي. لمزيد من المعلومات حول حزمة الصوت ، راجع تنسيق حزمة الصوت وتوقيتها .

يساعد المركز من خلال توفير مشغلات للأجهزة بكلتا الأذنين عند الحاجة إلى حدوث التزامن. تقوم هذه المشغلات بإبلاغ كل طرف عن حالة الجهاز الطرفي المقترن الخاص به عندما تكون هناك عملية قد تؤثر على المزامنة. المحفزات هي:

  • كجزء من أمر «Start» الخاص بـ AudioControlPoint ، يتم تقديم حالة الاتصال الحالية للجانب الآخر من الأجهزة ذات الأذنين.
  • عندما يكون هناك اتصال أو فصل أو عملية تحديث معلمة الاتصال على طرف طرفي ، يتم إرسال أمر " «Status» الخاص بـ AudioControlPoint إلى الجانب الآخر من الأجهزة ذات الأذنين.

تنسيق حزمة الصوت والتوقيت

يتيح تعبئة الإطارات الصوتية (مجموعات العينات) في حزم لجهاز السمع اشتقاق التوقيت من مثبتات توقيت طبقة الوصلة. لتبسيط التنفيذ:

  • يجب أن يتطابق إطار الصوت دائمًا مع فاصل الاتصال الزمني. على سبيل المثال ، إذا كان الفاصل الزمني للتوصيل 20 مللي ثانية وكان معدل العينة 16 كيلو هرتز ، فيجب أن يحتوي الإطار الصوتي على 320 عينة.
  • تقتصر معدلات العينة في النظام على مضاعفات 8 كيلو هرتز للحصول دائمًا على عدد صحيح من العينات في إطار بغض النظر عن وقت الإطار أو فاصل الاتصال.
  • يجب أن تعتمد بايتة التسلسل على الإطارات الصوتية. يجب أن يتم حساب بايت التسلسل مع التفاف حوله والسماح للطرف المحيط باكتشاف عدم تطابق المخزن المؤقت أو التدفق السفلي.
  • يجب أن يتناسب الإطار الصوتي دائمًا مع حزمة LE واحدة. يجب إرسال الرتل السمعي كحزمة L2CAP منفصلة. يجب أن يكون حجم LE LL PDU:
    حجم حمولة الصوت + 1 (عداد التسلسل) + 6 (4 لرأس L2CAP ، 2 لـ SDU)
  • يجب أن يكون حدث الاتصال دائمًا كبيرًا بما يكفي لاحتواء حزمتين صوتيتين وحزمتين فارغتين لـ ACK لحجز عرض النطاق الترددي لإعادة الإرسال. لاحظ أن حزمة الصوت قد تكون مجزأة بواسطة وحدة تحكم Bluetooth المركزية. يجب أن يكون الجهاز الطرفي قادرًا على استقبال أكثر من حزمتين صوتيتين مجزأتين لكل حدث اتصال.

لإعطاء الوسط بعض المرونة ، لم يتم تحديد طول حزمة G.722. يمكن أن يتغير طول الحزمة G.722 بناءً على فاصل الاتصال الذي تحدده الأجهزة المركزية.

يشير تنسيق ثماني بتات الإخراج G.722 إلى Rec. ITU-T G.722 (09/2012) القسم 1.4.4 "معدد الإرسال"

بالنسبة لجميع برامج الترميز التي يدعمها الجهاز المحيطي ، يجب أن يدعم الجهاز المحيط معلمات التوصيل أدناه. هذه قائمة غير شاملة من التكوينات التي يمكن للمركز المركزي تنفيذها.

ترميز معدل البت الفاصل الزمني للاتصال طول CE (1M / 2M PHY) حجم حمولة الصوت
G.722 @ 16 كيلو هرتز 64 كيلوبت / ثانية 20 مللي ثانية 5000/3750 لنا 160 بايت

بدء البث الصوتي وإيقافه

قبل بدء دفق صوتي ، يقوم الجهاز المركزي بالاستعلام عن الأجهزة الطرفية وإنشاء برنامج ترميز مشترك. ثم يستمر إعداد الدفق من خلال التسلسل التالي:

  1. PSM ، واختياريًا ، تتم قراءة RenderDelay. يمكن تخزين هذه القيم مؤقتًا بواسطة الجهاز المركزي.
  2. قناة CoC L2CAP مفتوحة - يمنح الطرف المحيط 8 أرصدة مبدئيًا.
  3. يتم إصدار تحديث اتصال لتبديل الارتباط إلى المعلمات المطلوبة لبرنامج الترميز المختار. قد يقوم الجهاز المركزي بتحديث الاتصال هذا قبل توصيل CoC في الخطوة السابقة.
  4. ينتظر كل من المضيف المركزي والمحيطي اكتمال التحديث.
  5. أعد تشغيل مشفر الصوت ، وأعد تعيين عدد تسلسل الحزمة إلى 0. يتم إصدار أمر «Start» بالمعلمات ذات الصلة في AudioControlPoint. ينتظر الجهاز المركزي إعلامًا ناجحًا بالحالة لأمر " «Start» السابق من الجهاز المحيطي قبل البث. يمنح هذا الانتظار الوقت المحيطي لإعداد خط أنابيب تشغيل الصوت. أثناء دفق الصوت ، يجب أن تكون النسخة المتماثلة متاحة في كل حدث اتصال على الرغم من أن زمن انتقال النسخة المتماثلة الحالي قد يكون غير صفري.
  6. يأخذ الجهاز الطرفي الحزمة الصوتية الأولى من قائمة الانتظار الداخلية (رقم التسلسل 0) ويقوم بتشغيلها.

يصدر المركز أمر " Stop" لإغلاق البث الصوتي. بعد هذا الأمر ، لا يلزم أن يكون الجهاز الطرفي متاحًا في كل حدث اتصال. لإعادة تشغيل دفق الصوت ، انتقل إلى التسلسل أعلاه ، بدءًا من الخطوة 5. عندما لا يقوم الجهاز المركزي بدفق الصوت ، فلا يزال يتعين عليه الاحتفاظ باتصال LE لخدمات GATT.

لن يصدر الجهاز الطرفي تحديثًا للاتصال بالمركز. لتوفير الطاقة ، قد يصدر الجهاز المركزي تحديثًا للاتصال بالطرف عندما لا يقوم بدفق الصوت.