การรองรับเสียงเครื่องช่วยฟังโดยใช้ Bluetooth LE

อุปกรณ์เครื่องช่วยฟัง (HA) สามารถปรับปรุงการช่วยเหลือพิเศษในอุปกรณ์เคลื่อนที่ที่ใช้ Android ได้โดยใช้ช่อง L2CAP ที่เน้นการเชื่อมต่อ (CoC) ผ่านบลูทูธพลังงานต่ำ (BLE) CoC ใช้บัฟเฟอร์แบบยืดหยุ่น ที่มีแพ็กเก็ตเสียงหลายรายการเพื่อรักษาการไหลของเสียงให้คงที่ แม้ จะมีการสูญเสียแพ็กเก็ตก็ตาม บัฟเฟอร์นี้ให้คุณภาพเสียงสำหรับ อุปกรณ์เครื่องช่วยฟังโดยแลกกับเวลาในการตอบสนอง

การออกแบบ CoC อ้างอิงถึง Bluetooth Core Specification เวอร์ชัน 5 (BT) เพื่อให้สอดคล้องกับข้อกำหนดหลัก ค่าแบบหลายไบต์ทั้งหมดในหน้านี้ต้องอ่านเป็นแบบ Little-Endian

คำศัพท์

กลาง
อุปกรณ์ Android ที่สแกนหาโฆษณาผ่านบลูทูธ
อุปกรณ์ต่อพ่วง
เครื่องช่วยฟังที่ส่งแพ็กเก็ตโฆษณาผ่านบลูทูธ

โทโพโลยีเครือข่ายและสถาปัตยกรรมระบบ

เมื่อใช้ CoC สำหรับเครื่องช่วยฟัง โทโพโลยีเครือข่ายจะถือว่ามีอุปกรณ์ส่วนกลาง 1 เครื่องและอุปกรณ์ต่อพ่วง 2 เครื่อง โดยมี 1 เครื่องทางซ้ายและ 1 เครื่องทางขวา ดังที่แสดงในรูปที่ 1 ระบบเสียงบลูทูธจะมองอุปกรณ์ต่อพ่วงด้านซ้าย และขวาเป็นแหล่งรับเสียงเดียว หากอุปกรณ์ต่อพ่วง หายไปเนื่องจากใส่หูฟังข้างเดียวหรือการเชื่อมต่อขาดหาย อุปกรณ์ส่วนกลางจะมิกซ์ช่องเสียงซ้ายและขวา แล้วส่งเสียง ไปยังอุปกรณ์ต่อพ่วงที่เหลือ หากอุปกรณ์กลางสูญเสียการเชื่อมต่อกับอุปกรณ์ต่อพ่วงทั้ง 2 เครื่อง อุปกรณ์กลางจะถือว่าการเชื่อมต่อกับอุปกรณ์รับเสียง ขาดหายไป ในกรณีดังกล่าว เส้นทางส่วนกลางจะกำหนดเส้นทางเสียงไปยังเอาต์พุตอื่น

โทโพโลยีสำหรับการจับคู่เครื่องช่วยฟังกับอุปกรณ์เคลื่อนที่ Android โดยใช้ CoC ผ่าน BLE
รูปที่ 1 โทโพโลยีสำหรับการจับคู่เครื่องช่วยฟังกับ อุปกรณ์เคลื่อนที่ Android โดยใช้ CoC ผ่าน BLE

เมื่ออุปกรณ์กลางไม่ได้สตรีมข้อมูลเสียงไปยังอุปกรณ์ต่อพ่วงและสามารถ รักษาการเชื่อมต่อ BLE ไว้ได้ อุปกรณ์กลางไม่ควรยกเลิกการเชื่อมต่อกับ อุปกรณ์ต่อพ่วง การรักษาการเชื่อมต่อช่วยให้การสื่อสารข้อมูล ไปยังเซิร์ฟเวอร์ GATT ที่อยู่ในอุปกรณ์ต่อพ่วงเป็นไปได้

เมื่อจับคู่และเชื่อมต่อเครื่องช่วยฟัง อุปกรณ์กลางต้องทำดังนี้

  • ติดตามอุปกรณ์ต่อพ่วงด้านซ้ายและขวาที่จับคู่ไว้ล่าสุด
  • ถือว่าอุปกรณ์ต่อพ่วงกำลังใช้งานอยู่หากมีการจับคู่ที่ถูกต้อง ศูนย์กลางต้องพยายามเชื่อมต่อหรือเชื่อมต่อใหม่กับอุปกรณ์ที่จับคู่ไว้เมื่อการเชื่อมต่อขาดหายไป
  • ถือว่าไม่ได้ใช้อุปกรณ์ต่อพ่วงอีกต่อไปหากมีการลบการจับคู่

ในกรณีข้างต้น การจับคู่หมายถึงการดำเนินการ ลงทะเบียนชุดเครื่องช่วยฟังด้วย UUID ที่กำหนดและ ตัวระบุซ้าย/ขวาในระบบปฏิบัติการ ไม่ใช่กระบวนการจับคู่บลูทูธ

ข้อกำหนดของระบบ

หากต้องการติดตั้ง CoC อย่างถูกต้องเพื่อให้ผู้ใช้ได้รับประสบการณ์การใช้งานที่ดี ระบบบลูทูธในอุปกรณ์ส่วนกลางและอุปกรณ์ต่อพ่วงต้องมีคุณสมบัติดังนี้

  • ใช้ตัวควบคุม BT 4.2 ขึ้นไปที่เป็นไปตามข้อกำหนด เราขอแนะนำอย่างยิ่งให้ใช้การเชื่อมต่อที่ปลอดภัยของ LE
  • มีลิงก์ LE พร้อมกันอย่างน้อย 2 ลิงก์ที่มีพารามิเตอร์ตามที่อธิบายไว้ในรูปแบบและเวลาของแพ็กเก็ตเสียง
  • มีอุปกรณ์ต่อพ่วงที่รองรับลิงก์ 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 ไบต์
  • มีอุปกรณ์ส่วนกลางที่รองรับคำสั่งอัปเดตการเชื่อมต่อ HCI LE และเป็นไปตามพารามิเตอร์ที่ไม่ใช่ศูนย์ maximum_CE_Length และ minimum_CE_Length
  • มีส่วนกลางที่รักษาปริมาณข้อมูลสำหรับ 2 การเชื่อมต่อ LE CoC กับอุปกรณ์ต่อพ่วง 2 เครื่องที่แตกต่างกัน โดยมีช่วงการเชื่อมต่อและขนาดเพย์โหลดในรูปแบบและเวลาของแพ็กเก็ตเสียง
  • ตั้งค่าพารามิเตอร์ MaxRxOctets และ MaxRxTime ในเฟรม LL_LENGTH_REQ หรือ LL_LENGTH_RSP ให้เป็นค่าที่เล็กที่สุดที่จำเป็น สำหรับข้อกำหนดเหล่านี้ ซึ่งจะช่วยให้ส่วนกลาง เพิ่มประสิทธิภาพตัวกำหนดเวลาเมื่อคำนวณระยะเวลา ที่ต้องใช้ในการรับเฟรม

เราขอแนะนำอย่างยิ่งให้ส่วนกลางและอุปกรณ์ต่อพ่วงรองรับ PHY ขนาด 2 MB ตามที่ระบุไว้ในข้อกำหนด BT 5.0 อุปกรณ์กลางต้องรองรับลิงก์เสียงที่มีอัตรา อย่างน้อย 64 kbit/s ทั้งใน PHY 1M และ 2M ห้ามใช้ PHY ระยะไกลของ BLE

CoC ใช้กลไกบลูทูธมาตรฐานสำหรับการเข้ารหัสเลเยอร์ลิงก์ และการสลับความถี่

บริการ GATT ของ ASHA

อุปกรณ์ต่อพ่วงต้องใช้บริการเซิร์ฟเวอร์ GATT ของการสตรีมเสียงสำหรับเครื่องช่วยฟัง (ASHA) ตามที่อธิบายไว้ด้านล่าง อุปกรณ์ต่อพ่วงต้อง โฆษณาบริการนี้เมื่ออยู่ในโหมดที่ค้นพบได้ทั่วไปเพื่อให้ อุปกรณ์กลางรู้จักอุปกรณ์รับเสียง การดำเนินการสตรีมเสียง LE ทั้งหมด ต้องมีการเข้ารหัส การสตรีมเสียงผ่าน BLE ประกอบด้วยลักษณะต่อไปนี้

ลักษณะ คุณสมบัติ คำอธิบาย
ReadOnlyProperties อ่าน ดู ReadOnlyProperties
AudioControlPoint เขียนและเขียนโดยไม่มีการตอบกลับ จุดควบคุมสำหรับสตรีมเสียง ดู AudioControlPoint
AudioStatusPoint อ่าน/แจ้งเตือน ฟิลด์รายงานสถานะสำหรับจุดควบคุมเสียง ดู AudioStatusPoint
ระดับเสียง เขียนโดยไม่ต้องตอบกลับ ไบต์ระหว่าง -128 ถึง 0 ซึ่งระบุจำนวนการลดทอนที่จะใช้กับ สัญญาณเสียงที่สตรีม โดยมีตั้งแต่ -48 dB ถึง 0 dB การตั้งค่า -128 ต้องตีความเป็นปิดเสียงทั้งหมด นั่นคือระดับเสียงต่ำสุดที่ไม่ได้ปิดเสียง คือ -127 ซึ่งเทียบเท่ากับการลดทอนที่ -47.625 dB ที่การตั้งค่า 0, สัญญาณไซน์แบบ Rail-to-Rail ที่สตรีมต้องแสดงถึงอินพุต 100 dBSPL ที่เทียบเท่าในเครื่องช่วยฟัง ส่วนกลางต้องสตรีมในระดับสูงสุด ตามปกติและใช้ตัวแปรนี้เพื่อตั้งค่าระดับการนำเสนอที่ต้องการใน อุปกรณ์ต่อพ่วง
LE_PSM_OUT อ่าน PSM ที่จะใช้ในการเชื่อมต่อช่องเสียง ต้องเลือกจาก ช่วงไดนามิก [BT Vol 3, Part A, Sec 4.22]

UUID ที่กำหนดให้กับบริการและลักษณะมีดังนี้

UUID ของบริการ: {0xFDF0}

ลักษณะ UUID
ReadOnlyProperties {6333651e-c481-4a3e-9169-7c902aad37bb}
AudioControlPoint {f0d4de7e-4a88-476c-9d9f-1937b0996cc0}
AudioStatus {38663f1a-e711-4cac-b641-326b56404837}
ระดับเสียง {00e4ca9e-ab14-41e4-8823-f9e70c7e91df}
LE_PSM_OUT {2d410339-82b6-42aa-b34e-e2e01df8cc1a}

นอกจากบริการ ASHA GATT แล้ว อุปกรณ์ต่อพ่วงยังต้อง ใช้บริการข้อมูลอุปกรณ์เพื่อให้ส่วนกลางตรวจหา ชื่อผู้ผลิตและชื่ออุปกรณ์ของอุปกรณ์ต่อพ่วงได้ด้วย

ReadOnlyProperties

ReadOnlyProperties มีค่าดังนี้

ไบต์ คำอธิบาย
0 เวอร์ชัน - ต้องเป็น 0x01
1 ดู DeviceCapabilities
2-9 ดู HiSyncId
10 ดู FeatureMap
11-12 RenderDelay คือเวลาเป็นมิลลิวินาทีตั้งแต่เมื่ออุปกรณ์ต่อพ่วงได้รับเฟรมเสียงจนกว่าอุปกรณ์ต่อพ่วงจะแสดงผลเอาต์พุต ไบต์เหล่านี้ใช้เพื่อหน่วงเวลาวิดีโอให้ ซิงค์กับเสียงได้
13-14 สงวนไว้สำหรับการใช้งานในอนาคต เริ่มต้นเป็น 0
15-16 รหัสตัวแปลงรหัสที่รองรับ ซึ่งเป็นบิตมาสก์ ของรหัสตัวแปลงรหัสที่รองรับ ค่า 1 ในตำแหน่งบิตจะสอดคล้องกับตัวแปลงรหัสที่รองรับ เช่น 0x0002 แสดงว่ารองรับ G.722 ที่ 16 kHz บิตอื่นๆ ทั้งหมดต้องตั้งค่าเป็น 0

DeviceCapabilities

บิต คำอธิบาย
0 ด้านอุปกรณ์ (0: ซ้าย, 1: ขวา)
1 ระบุว่าอุปกรณ์เป็นแบบสแตนด์อโลนและรับข้อมูลโมโนหรือไม่ หรืออุปกรณ์เป็นส่วนหนึ่งของชุด (0: โมโน, 1: ไบนอรัล)
2 อุปกรณ์รองรับ CSIS (0: ไม่รองรับ, 1: รองรับ)
3-7 สงวนไว้ (ตั้งค่าเป็น 0)

HiSyncID

ฟิลด์นี้ต้องไม่ซ้ำกันสำหรับอุปกรณ์ Binaural ทั้งหมด แต่ต้องเหมือนกันสำหรับชุดหูฟังซ้ายและขวา

ไบต์ คำอธิบาย
0-1 รหัสของผู้ผลิต ซึ่งเป็น ตัวระบุ บริษัทที่ BTSIG กำหนด
2-7 รหัสที่ไม่ซ้ำกันที่ระบุชุดเครื่องช่วยฟัง ต้องตั้งรหัสนี้ ให้เหมือนกันทั้งอุปกรณ์ต่อพ่วงด้านซ้ายและด้านขวา

FeatureMap

บิต คำอธิบาย
0 รองรับการสตรีมเอาต์พุตเสียง LE CoC (ใช่/ไม่ใช่)
1-7 สงวนไว้ (ตั้งค่าเป็น 0)

รหัสตัวแปลงรหัส

หากตั้งค่าบิตไว้ แสดงว่าระบบรองรับตัวแปลงรหัสนั้น

ID / หมายเลขบิต ตัวแปลงรหัสและอัตราการสุ่มตัวอย่าง อัตราบิตที่จำเป็น เวลาที่ใช้ในการแสดงผลเฟรม ต้องระบุในส่วนกลาง (C) หรือส่วนอุปกรณ์ต่อพ่วง (P)
0 สงวนไว้ สงวนไว้ สงวนไว้ สงวนไว้
1 G.722 @ 16 kHz 64 กิโลบิต/วินาที ตัวแปร C และ P
2-15 สงวนไว้
นอกจากนี้ ยังสงวนหมายเลข 0 ไว้ด้วย

AudioControlPoint

ใช้จุดควบคุมนี้ไม่ได้เมื่อปิด LE CoC ดูคำอธิบายขั้นตอนได้ที่ การเริ่มและ การหยุดสตรีมเสียง

รหัสดำเนินการ อาร์กิวเมนต์ ขั้นตอนย่อยของ GATT คำอธิบาย
1 «Start»
  • uint8_t codec
  • uint8_t audiotype
  • int8_t volume
  • int8_t otherstate
เขียนด้วยการตอบกลับและคาดหวังการแจ้งเตือนสถานะเพิ่มเติมผ่านลักษณะ AudioStatusPoint สั่งให้อุปกรณ์ต่อพ่วงรีเซ็ตตัวแปลงรหัสและเริ่ม การเล่นเฟรม 0 ฟิลด์ตัวแปลงรหัสระบุรหัสตัวแปลงรหัสที่จะใช้ สำหรับการเล่นนี้ เช่น ฟิลด์ตัวแปลงรหัสคือ "1" สำหรับ G.722 ที่ 16k Hz

ฟิลด์บิตประเภทเสียงจะระบุประเภทเสียงที่มีอยู่ใน สตรีม
  • 0 - ไม่ทราบ
  • 1 - เสียงเรียกเข้า
  • 2 - การโทร
  • 3 - สื่อ
ฟิลด์ otherstate จะระบุว่าอุปกรณ์สองหู อีกข้างเชื่อมต่ออยู่หรือไม่ ค่าของฟิลด์จะเป็น 1 เมื่อเชื่อมต่ออุปกรณ์ต่อพ่วงอื่น มิฉะนั้นค่าจะเป็น 0

อุปกรณ์ต่อพ่วงต้องไม่ขออัปเดตการเชื่อมต่อก่อนได้รับรหัสปฏิบัติการ «Stop»
2 «Stop» ไม่มี เขียนด้วยการตอบกลับและคาดหวังการแจ้งเตือนสถานะเพิ่มเติมผ่านลักษณะ AudioStatusPoint สั่งให้อุปกรณ์ต่อพ่วงหยุดแสดงเสียง ควรเริ่มลำดับการตั้งค่าเสียงใหม่หลังจากหยุดนี้เพื่อแสดงเสียงอีกครั้ง
3 «Status»
  • uint8_t connected
เขียนโดยไม่ต้องตอบกลับ แจ้งให้อุปกรณ์ต่อพ่วงที่เชื่อมต่อทราบว่ามีการอัปเดตสถานะใน อุปกรณ์ต่อพ่วงอื่น ฟิลด์ที่เชื่อมต่อจะระบุประเภทการอัปเดต ดังนี้
  • 0 - ยกเลิกการเชื่อมต่ออุปกรณ์ต่อพ่วงอื่นๆ
  • 1 - เชื่อมต่ออุปกรณ์ต่อพ่วงอื่นๆ แล้ว
  • 2 - มีการอัปเดตพารามิเตอร์การเชื่อมต่อ LE ในการเชื่อมต่ออย่างใดอย่างหนึ่ง

AudioStatusPoint

ฟิลด์รายงานสถานะสำหรับจุดควบคุมเสียง

รหัสดำเนินการ คำอธิบาย
0 สถานะ ใช้ได้
-1 คำสั่งที่ไม่รู้จัก
-2 พารามิเตอร์ที่ผิดกฎหมาย

โฆษณาสำหรับบริการ ASHA GATT

UUID ของบริการต้องอยู่ใน แพ็กเกตโฆษณา ในโฆษณาหรือเฟรมการตอบกลับการสแกน อุปกรณ์ต่อพ่วงต้องมีข้อมูลบริการดังนี้

ออฟเซ็ตไบต์ ชื่อ คำอธิบาย
0 ความยาวของโฆษณา >= 0x09
1 ประเภทโฆษณา 0x16 (ข้อมูลบริการ - UUID 16 บิต)
2-3 UUID ของบริการ 0xFDF0 (little-endian)

หมายเหตุ: นี่คือรหัสชั่วคราว
4 เวอร์ชันของโปรโตคอล 0x01
5 ความสามารถ
  • 0 - ด้านซ้าย (0) หรือด้านขวา (1)
  • 1 - อุปกรณ์เครื่องเดียว (0) หรือ 2 เครื่อง (1)
  • 2 - อุปกรณ์รองรับ CSIS (<0: ไม่รองรับ, 1: รองรับ)
  • 3-7 - สงวนไว้ บิตเหล่านี้ต้องเป็น 0
6-9 HiSyncID ที่ถูกตัดทอน ไบต์ที่สำคัญที่สุด 4 ไบต์ของ HiSyncId ไบต์เหล่านี้ควรเป็นส่วนที่สุ่มที่สุดของรหัส

อุปกรณ์ต่อพ่วงต้องมีชื่อในเครื่องแบบสมบูรณ์ ประเภทข้อมูลที่ระบุชื่อของเครื่องช่วยฟัง ชื่อนี้จะ ใช้ในอินเทอร์เฟซผู้ใช้ของอุปกรณ์เคลื่อนที่เพื่อให้ผู้ใช้เลือก อุปกรณ์ที่ถูกต้องได้ ชื่อต้องไม่ระบุช่องซ้ายหรือขวา เนื่องจากข้อมูลนี้มีให้ใน DeviceCapabilities

หากอุปกรณ์ต่อพ่วงใส่ชื่อและประเภทข้อมูลบริการ ASHA ไว้ในเฟรมประเภทเดียวกัน (ADV หรือ SCAN RESP) ประเภทข้อมูลทั้ง 2 ประเภท ("ชื่อเฉพาะที่สมบูรณ์" และ "ข้อมูลบริการสำหรับบริการ ASHA") จะต้องปรากฏในเฟรมเดียวกัน ซึ่งจะช่วยให้เครื่องสแกนอุปกรณ์เคลื่อนที่รับข้อมูลทั้ง 2 อย่าง ในผลการสแกนเดียวกันได้

ในระหว่างการจับคู่ครั้งแรก อุปกรณ์ต่อพ่วงต้อง โฆษณาในอัตราที่เร็วพอที่จะทำให้อุปกรณ์เคลื่อนที่ค้นหา อุปกรณ์ต่อพ่วงและจับคู่กับอุปกรณ์ต่อพ่วงได้อย่างรวดเร็ว

ซิงค์อุปกรณ์ต่อพ่วงด้านซ้ายและขวา

หากต้องการใช้บลูทูธในอุปกรณ์เคลื่อนที่ Android อุปกรณ์ต่อพ่วง จะต้องรับผิดชอบในการตรวจสอบว่าอุปกรณ์ซิงค์กันแล้ว การเล่น ในอุปกรณ์ต่อพ่วงด้านซ้ายและขวาต้องซิงค์กัน ในเวลาเดียวกัน อุปกรณ์ต่อพ่วงทั้ง 2 เครื่องต้องเล่นตัวอย่างเสียงจาก แหล่งที่มาพร้อมกัน

อุปกรณ์ต่อพ่วงสามารถซิงโครไนซ์เวลาได้โดยใช้ลำดับ หมายเลขที่นำหน้าแต่ละแพ็กเก็ตของเพย์โหลดเสียง ซึ่งจะรับประกันว่าแพ็กเก็ตเสียงที่ตั้งใจจะเล่นพร้อมกันในอุปกรณ์ต่อพ่วงแต่ละเครื่องจะมีหมายเลขลำดับเดียวกัน หมายเลขลำดับ จะเพิ่มขึ้นทีละ 1 หลังจากแพ็กเก็ตเสียงแต่ละแพ็กเก็ต หมายเลขลำดับ แต่ละรายการมีความยาว 8 บิต ดังนั้นหมายเลขลำดับจะซ้ำกันหลังจากแพ็กเก็ตเสียง 256 แพ็กเก็ต เนื่องจากขนาดแพ็กเก็ตเสียงและอัตราการสุ่มตัวอย่างแต่ละรายการได้รับการแก้ไข สำหรับการเชื่อมต่อแต่ละครั้ง อุปกรณ์ต่อพ่วงทั้ง 2 เครื่องจึงสามารถอนุมานเวลาเล่นที่เกี่ยวข้องได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับแพ็กเก็ตเสียงได้ที่ รูปแบบแพ็กเก็ตเสียงและ การกำหนดเวลา

โดยส่วนกลางจะช่วยด้วยการให้ทริกเกอร์แก่อุปกรณ์แบบ Binaural เมื่ออาจต้องมีการซิงค์ ทริกเกอร์เหล่านี้จะแจ้งสถานะของอุปกรณ์ต่อพ่วงที่จับคู่ไว้แต่ละเครื่อง เมื่อใดก็ตามที่มีการดำเนินการที่อาจส่งผลต่อการซิงค์ ทริกเกอร์มีดังนี้

  • ในส่วนของคำสั่ง «Start» ของ AudioControlPoint ระบบจะระบุสถานะการเชื่อมต่อปัจจุบันของอุปกรณ์สองหู อีกด้าน
  • เมื่อใดก็ตามที่มีการเชื่อมต่อ การยกเลิกการเชื่อมต่อ หรือ การดำเนินการอัปเดตพารามิเตอร์การเชื่อมต่อในอุปกรณ์ต่อพ่วงหนึ่ง ระบบจะส่งคำสั่ง «Status» ของ AudioControlPoint ไปยัง อุปกรณ์ Binaural อีกด้าน

รูปแบบและเวลาของแพ็กเก็ตเสียง

การแพ็กเฟรมเสียง (บล็อกของตัวอย่าง) ลงในแพ็กเก็ตช่วยให้เครื่องช่วยฟัง สามารถกำหนดเวลาจากจุดยึดเวลาของเลเยอร์ลิงก์ได้ หากต้องการ ลดความซับซ้อนในการติดตั้งใช้งาน ให้ทำดังนี้

  • เฟรมเสียงควรตรงกับช่วงเวลาการเชื่อมต่อเสมอ ตัวอย่างเช่น หากช่วงการเชื่อมต่อคือ 20 มิลลิวินาทีและอัตราการสุ่มตัวอย่างคือ 16 kHz เฟรมเสียงต้องมีตัวอย่าง 320 รายการ
  • ระบบจะจำกัดอัตราการสุ่มตัวอย่างให้เป็นทวีคูณของ 8kHz เพื่อให้มีจำนวนตัวอย่างเป็นจำนวนเต็มในเฟรมเสมอ ไม่ว่าเวลาเฟรมหรือช่วงการเชื่อมต่อจะเป็นเท่าใดก็ตาม
  • ไบต์ลำดับต้องอยู่ก่อนหน้าเฟรมเสียง ไบต์ลำดับ ต้องนับโดยมีการวนรอบและอนุญาตให้อุปกรณ์ต่อพ่วง ตรวจหาบัฟเฟอร์ที่ไม่ตรงกันหรือบัฟเฟอร์ขาด
  • เฟรมเสียงต้องอยู่ในแพ็กเก็ต LE เดียวเสมอ ต้องส่งเฟรมเสียงเป็นแพ็กเก็ต L2CAP แยกต่างหาก ขนาดของ PDU LE LL ต้องเป็น
    ขนาดเพย์โหลดเสียง + 1 (ตัวนับลำดับ) + 6 (4 สำหรับส่วนหัว L2CAP, 2 สำหรับ SDU)
  • เหตุการณ์การเชื่อมต่อควรมีขนาดใหญ่พอที่จะมีแพ็กเก็ตเสียง 2 แพ็กเก็ต และแพ็กเก็ตเปล่า 2 แพ็กเก็ตสำหรับ ACK เพื่อสำรองแบนด์วิดท์สำหรับการ ส่งซ้ำ โปรดทราบว่าตัวควบคุมบลูทูธของอุปกรณ์กลางอาจ แยกแพ็กเก็ตเสียง อุปกรณ์ต่อพ่วงต้องรับแพ็กเก็ตเสียงที่แยกส่วนได้มากกว่า 2 แพ็กเก็ตต่อเหตุการณ์การเชื่อมต่อ

เพื่อให้อุปกรณ์กลางมีความยืดหยุ่นมากขึ้น จึงไม่ได้ระบุความยาวแพ็กเก็ต G.722 ความยาวของแพ็กเก็ต G.722 อาจเปลี่ยนแปลงไปตามช่วงเวลาการเชื่อมต่อที่ส่วนกลางตั้งค่าไว้

รูปแบบอ็อกเทตเอาต์พุต G.722 อ้างอิงถึง Rec. ITU-T G.722 (09/2012) ส่วนที่ 1.4.4 "Multiplexer"

สำหรับตัวแปลงรหัสทั้งหมดที่อุปกรณ์ต่อพ่วงรองรับ อุปกรณ์ต่อพ่วงต้อง รองรับพารามิเตอร์การเชื่อมต่อด้านล่าง นี่คือรายการการกำหนดค่าโดยสังเขป ที่ส่วนกลางสามารถใช้ได้

ตัวแปลงรหัส อัตราบิต ช่วงเวลาการเชื่อมต่อ ความยาวของ CE (PHY 1M/2M) ขนาดเพย์โหลดเสียง
G.722 @ 16 kHz 64 กิโลบิต/วินาที 20 มิลลิวินาที 5000/3750 us 160 ไบต์

เริ่มและหยุดสตรีมเสียง

ก่อนที่จะเริ่มสตรีมเสียง อุปกรณ์ส่วนกลางจะค้นหาอุปกรณ์ต่อพ่วง และสร้างตัวแปลงรหัสตัวหารร่วม จากนั้นการตั้งค่าสตรีม จะดำเนินการตามลำดับต่อไปนี้

  1. ระบบจะอ่าน PSM และ RenderDelay (ไม่บังคับ) ค่าเหล่านี้ อาจได้รับการแคชโดยส่วนกลาง
  2. เปิดช่อง CoC L2CAP แล้ว อุปกรณ์ต่อพ่วงต้องให้เครดิต 8 รายการ ในตอนแรก
  3. ระบบจะออกการอัปเดตการเชื่อมต่อเพื่อเปลี่ยนลิงก์เป็นพารามิเตอร์ ที่จำเป็นสำหรับตัวแปลงรหัสที่เลือก ศูนย์กลางอาจทำการอัปเดตการเชื่อมต่อนี้ ก่อนการเชื่อมต่อ CoC ในขั้นตอนก่อนหน้า
  4. ทั้งโฮสต์กลางและโฮสต์อุปกรณ์ต่อพ่วงจะรอเหตุการณ์การอัปเดต เสร็จสมบูรณ์
  5. รีสตาร์ทตัวเข้ารหัสเสียง และรีเซ็ตจำนวนลำดับแพ็กเก็ตเป็น 0 ระบบจะออก«Start»คำสั่งที่มีพารามิเตอร์ที่เกี่ยวข้อง ใน AudioControlPoint ส่วนกลางจะรอการแจ้งเตือนสถานะสำเร็จ ของคำสั่ง «Start» ก่อนหน้าจากอุปกรณ์ต่อพ่วงก่อนที่จะสตรีม การรอครั้งนี้จะช่วยให้อุปกรณ์ต่อพ่วง มีเวลาเตรียมไปป์ไลน์การเล่นเสียง ในระหว่างการสตรีมเสียง ข้อมูลจำลอง ควรพร้อมใช้งานในทุกเหตุการณ์การเชื่อมต่อ แม้ว่าเวลาในการตอบสนองของข้อมูลจำลอง ปัจจุบันอาจไม่ใช่ 0
  6. อุปกรณ์ต่อพ่วงจะนำแพ็กเก็ตเสียงแรกจากคิวภายใน (หมายเลขลำดับ 0) มาเล่น

ปัญหาหลักคือคำสั่ง «หยุด» เพื่อปิดสตรีมเสียง หลังจากคำสั่งนี้ อุปกรณ์ต่อพ่วงไม่จำเป็นต้องพร้อมใช้งานในทุก เหตุการณ์การเชื่อมต่อ หากต้องการเริ่มการสตรีมเสียงอีกครั้ง ให้ทำตามลำดับข้างต้นโดยเริ่มจากขั้นตอนที่ 5 เมื่ออุปกรณ์กลางไม่ได้ สตรีมเสียง อุปกรณ์กลางควรยังคงรักษาการเชื่อมต่อ LE สำหรับบริการ GATT ไว้

อุปกรณ์ต่อพ่วงต้องไม่ส่งการอัปเดตการเชื่อมต่อไปยังอุปกรณ์กลาง เพื่อประหยัดพลังงาน อุปกรณ์กลางอาจส่งการอัปเดตการเชื่อมต่อไปยัง อุปกรณ์ต่อพ่วงเมื่อไม่ได้สตรีมเสียง