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

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

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

คำศัพท์เฉพาะทาง

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

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

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


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

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

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

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

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

ความต้องการของระบบ

เพื่อนำ CoC ไปใช้อย่างเหมาะสมเพื่อประสบการณ์ผู้ใช้ที่ดี ระบบ Bluetooth ในอุปกรณ์ส่วนกลางและอุปกรณ์ต่อพ่วงจะต้อง:

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

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

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

บริการของอาชา แกตต์

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

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

UUID ที่กำหนดให้กับบริการและลักษณะเฉพาะ:

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

ลักษณะเฉพาะ UUID
คุณสมบัติอ่านอย่างเดียว {6333651e-c481-4a3e-9169-7c902aad37bb}
จุดควบคุมเสียง {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 ดู ความสามารถของอุปกรณ์
2-9 ดู HiSyncId
10 ดู แผนที่ คุณลักษณะ
11-12 เรนเดอร์ดีเลย์ นี่คือเวลาในหน่วยมิลลิวินาที นับตั้งแต่ที่อุปกรณ์ต่อพ่วงได้รับเฟรมเสียงจนกระทั่งอุปกรณ์ต่อพ่วงแสดงเอาต์พุต ไบต์เหล่านี้สามารถใช้เพื่อหน่วงเวลาวิดีโอให้ซิงโครไนซ์กับเสียงได้
13-14 สงวนไว้สำหรับใช้ในอนาคต เริ่มต้นเป็นศูนย์
15-16 รหัสตัวแปลงสัญญาณ ที่รองรับ นี่คือบิตมาสก์ของรหัสตัวแปลงสัญญาณที่รองรับ 1 ในตำแหน่งบิตสอดคล้องกับตัวแปลงสัญญาณที่รองรับ ตัวอย่างเช่น 0x0002 ระบุว่ารองรับ G.722 ที่ 16 kHz บิตอื่นๆ ทั้งหมดจะถูกตั้งค่าเป็น 0

ความสามารถของอุปกรณ์

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

HiSyncID

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

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

คุณลักษณะแผนที่

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

รหัสตัวแปลงสัญญาณ

หากมีการตั้งค่าบิต แสดงว่าตัวแปลงสัญญาณนั้นรองรับ

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

จุดควบคุมเสียง

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

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

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

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

จุดสถานะเสียง

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

เพื่อให้ศูนย์กลางมีความยืดหยุ่น จึงไม่ได้ระบุความยาวของแพ็กเก็ต 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) แล้วเล่น

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

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