Âm thanh Bluetooth năng lượng thấp

Âm thanh Bluetooth năng lượng thấp (LEA) đảm bảo rằng người dùng có thể nhận được âm thanh có độ chân thực cao mà không làm giảm thời lượng pin, đồng thời cho phép họ chuyển đổi liền mạch giữa các trường hợp sử dụng. Android 13 (cấp độ API 33) có hỗ trợ tích hợp cho LEA.

Hầu hết tai nghe LEA sẽ ở chế độ kép cho đến khi thị phần thiết bị nguồn LEA tăng lên. Người dùng có thể ghép nối và thiết lập cả hai phương thức truyền tải trên tai nghe chế độ kép.

Trường hợp sử dụng

Bạn có thể tích hợp LEA cho các trường hợp sử dụng sau:

  • Chia sẻ âm thanh: Người dùng có thể đồng thời chia sẻ nhiều luồng âm thanh đến một hoặc nhiều thiết bị nhận âm thanh. Âm thanh được đồng bộ hoá giữa thiết bị nguồn và thiết bị thông minh.

  • Phát âm thanh: Người dùng có thể phát âm thanh cho bạn bè và gia đình, đồng thời kết nối với các chương trình phát sóng công khai để lấy thông tin, giải trí hoặc hỗ trợ tiếp cận.

  • Hỗ trợ bộ mã hoá và giải mã âm thanh LC3: Đây là bộ mã hoá và giải mã âm thanh mặc định, thay thế bộ mã hoá và giải mã SBC dùng cho A2DP (nội dung nghe nhìn) và mSBC trong HFP (thoại). LC3 hiệu quả hơn, có thể định cấu hình lại và có chất lượng cao hơn.

  • Cải thiện khả năng lấy mẫu âm thanh: Tai nghe có thể duy trì chất lượng âm thanh đầu ra cao khi sử dụng micrô. Bluetooth Classic làm giảm chất lượng âm thanh khi sử dụng micrô Bluetooth. Với BLE Audio, tốc độ lấy mẫu đầu vào và đầu ra có thể đạt 32 kHz.

  • Micrô âm thanh nổi: Thiết bị nghe có thể ghi âm bằng micrô âm thanh nổi để cải thiện âm thanh không gian.

  • Hỗ trợ Hearing Aid Profile (HAP): HAP mang đến cho người dùng khả năng hỗ trợ tiếp cận và sử dụng tốt hơn so với các giao thức ASHA trước đây. Người dùng có thể sử dụng thiết bị trợ thính cho các cuộc gọi điện thoại và ứng dụng VoIP.

  • Hỗ trợ Giao thức thuộc tính nâng cao (EATT): EATT cho phép bạn gửi nhiều lệnh cùng lúc đến các thiết bị nghe được ghép nối.

Các trường hợp chính

Có 4 danh mục trường hợp sử dụng chính:

  1. Đàm thoại: Các ứng dụng Trình quay số và VoIP yêu cầu định tuyến giao tiếp có độ trễ thấp sẽ cung cấp âm thanh chất lượng cao và ít tốn pin hơn.

  2. Chơi trò chơi: Micrô đồng thời và tính năng phát âm thanh có độ trung thực cao cho phép trò chơi truyền phát âm thanh chất lượng cao đến thiết bị nghe. Ứng dụng trò chơi có thể truy cập vào đầu vào âm thanh BLE khi trò chơi kích hoạt micrô Bluetooth ở trạng thái sẵn sàng sử dụng. Sau đó, khi người chơi bắt đầu cuộc trò chuyện trực tiếp với người chơi khác, ứng dụng trò chơi có thể sử dụng dữ liệu micrô mà không bị trễ.

  3. Nội dung nghe nhìn: Các ứng dụng nghe nhìn có thể đặt thiết bị ưu tiên của trình quản lý âm thanh. Người dùng có thể ghi đè chế độ này bằng cách thay đổi thiết bị ưu tiên trong phần cài đặt của hệ thống.

  4. Hỗ trợ tiếp cận: Thiết bị trợ thính hỗ trợ BLE Audio có thể sử dụng micrô, cho phép người dùng liên tục sử dụng thiết bị trợ thính cho một cuộc gọi.

Các API và phương thức Âm thanh BLE

Bạn cần có các API và phương thức sau để hỗ trợ thiết bị nghe BLE Audio:

AudioManager

  • setCommunicationDevice() chọn thiết bị âm thanh nên dùng cho các trường hợp sử dụng liên lạc, chẳng hạn như cuộc gọi thoại hoặc cuộc gọi video. Các ứng dụng trò chuyện thoại hoặc trò chuyện video có thể sử dụng phương thức này để chọn một thiết bị âm thanh khác với thiết bị được nền tảng chọn theo mặc định. API này thay thế các API không dùng nữa sau đây: startBluetoothSco(), stopBluetoothSco() và setSpeakerphoneOn().
  • clearCommunicationDevice() được gọi sau khi ứng dụng của bạn kết thúc cuộc gọi hoặc phiên để giúp đảm bảo người dùng có trải nghiệm tuyệt vời khi di chuyển giữa các ứng dụng.

BluetoothProfile

  • BluetoothLeAudio kiểm soát dịch vụ Bluetooth bằng đối tượng proxy.

Telecom InCallService

Telecom CallControl

Thông tin về thiết bị âm thanh

  • AudioDeviceInfo.TYPE_BLE_HEADSET mô tả loại thiết bị âm thanh là thiết bị LEA. Dùng để xác định xem thiết bị nghe có phải là thiết bị LEA hay không.

Trình ghi âm thanh

  • setPreferredDevice() đặt thiết bị ưu tiên cho việc định tuyến âm thanh. Người dùng có thể ghi đè chế độ này trong phần cài đặt hệ thống.

Bộ chuyển đổi Bluetooth

  • isLeAudioSupported(): Trả về một hằng số @BluetoothStatusCodes (FEATURE_SUPPORTED, FEATURE_NOT_SUPPORTED hoặc mã lỗi) cho biết liệu phần cứng thiết bị có hỗ trợ Âm thanh năng lượng thấp (LE Audio) hay không.
  • isLeAudioBroadcastSourceSupported(): Trả về một hằng số @BluetoothStatusCodes (FEATURE_SUPPORTED, FEATURE_NOT_SUPPORTED hoặc mã lỗi) cho biết liệu phần cứng thiết bị có hỗ trợ nguồn phát Âm thanh năng lượng thấp LE hay không.

Hướng dẫn dựa trên trường hợp sử dụng

Dưới đây là hướng dẫn triển khai LEA dựa trên các trường hợp sử dụng cụ thể.

Ứng dụng liên lạc bằng giọng nói

Các ứng dụng liên lạc bằng giọng nói có thể chọn quản lý định tuyến âm thanh và trạng thái thiết bị bằng cách tự quản lý trạng thái hoặc sử dụng Telecom API để thực hiện định tuyến âm thanh và logic trạng thái cho bạn.

Hai giải pháp này giúp bạn kiểm soát việc định tuyến âm thanh và chuyển đổi giữa các thiết bị Bluetooth. Để biết thêm thông tin, hãy xem Hướng dẫn về cuộc gọi do Telecom quản lý.

Ứng dụng ghi âm

  • Máy ghi âm: Khi ghi âm bằng Máy ghi âm, bạn có thể ghi âm ở chế độ âm thanh nổi nếu thiết bị nghe Bluetooth hỗ trợ LEA. Để biết thêm thông tin, hãy xem Hướng dẫn ghi âm.

Đề xuất về tai nghe

Khi có thêm nhiều tai nghe LEA được phát hành, chúng tôi đã phát hiện ra các vấn đề trong quá trình thử nghiệm thực tế làm giảm trải nghiệm người dùng. Quy cách không bao gồm tất cả các vấn đề này. Bảng sau đây cung cấp danh sách các đề xuất mà nhà sản xuất tai nghe LEA nên làm theo để cải thiện trải nghiệm toàn diện cho người dùng Android.

Mô tả Bối cảnh
Hỗ trợ Cross Transport Key Derivation (CTKD) cho tai nghe chế độ kép:
  • Hỗ trợ việc lấy khoá cho cả hoạt động ghép nối Cổ điển với LE và ghép nối LE với Cổ điển.
Hầu hết tai nghe LEA mới sẽ có chế độ kép cho đến khi thị phần của thiết bị nguồn LEA tăng lên. Điều quan trọng là người dùng có thể ghép nối tai nghe chế độ kép một cách liền mạch và thiết lập cả hai phương thức truyền tải. Điều này cũng quan trọng đối với tính năng Ghép nối nhanh của Google.

Hỗ trợ Thông báo được nhắm mục tiêu (TA) nếu bạn muốn tai nghe LEA kết nối lại một cách đáng tin cậy với thiết bị nguồn.

Tai nghe có hỗ trợ âm thanh năng lượng thấp nên sử dụng TA để yêu cầu kết nối đến từ các thiết bị trung tâm.

Sẽ được thêm vào BT SIG sắp tới.

Không giống như trong mô hình phân trang của BR/EDR, nơi kết nối có thể được khởi tạo bằng điện thoại hoặc tai nghe, kết nối trong LEA phải được khởi tạo bằng thiết bị trung tâm. Nhiều tai nghe không sử dụng TA, tức là thiết bị trung tâm có thể không kết nối lại được với thiết bị ngoại vi nếu không thêm thiết bị đó vào Danh sách cho phép. Tuy nhiên, giải pháp danh sách cho phép có thể ngăn tai nghe kết nối với một thiết bị trung tâm khác. Do đó, điều quan trọng là tai nghe LEA phải hỗ trợ TA đúng cách để thiết bị trung tâm có thể kết nối lại một cách đáng tin cậy mà không cần các giải pháp có thể làm hỏng kết nối đa điểm.
Tối ưu hoá khả năng được phát hiện cho tai nghe chế độ kép
  • Tai nghe chính – thành phần BR/EDR phải quảng cáo bằng địa chỉ công khai và cho phép quét trang cũng như truy vấn bằng tên có sẵn thông qua EIR, đồng thời đặt bit Âm thanh năng lượng thấp 14 thành 1 trong các Lớp dịch vụ chính của Lớp thiết bị (CoD).
  • Tai nghe chính – Thành phần LE: Tai nghe chính phải thực hiện quảng cáo Có thể kết nối và Có thể phát hiện (Giới hạn hoặc Chung) bằng cách sử dụng cùng một Địa chỉ công khai với Thành phần BR/EDR và cùng một Tên cục bộ hoàn chỉnh với thành phần BR/EDR, trong đó Danh mục giao diện được đặt làm Danh mục giao diện thích hợp khớp với loại thiết bị từ xa, với kỳ vọng rằng thiết bị trung tâm sẽ sử dụng thông tin này để điều chỉnh giao diện người dùng và chính sách định tuyến âm thanh.
  • Tai nghe phụ – Chỉ LE: Tai nghe phụ phải thực hiện quảng cáo Có thể kết nối, Không thể phát hiện với Danh mục giao diện được đặt làm Danh mục giao diện thích hợp khớp với loại thiết bị từ xa, với kỳ vọng rằng thiết bị trung tâm sẽ sử dụng thông tin này để điều chỉnh giao diện người dùng và chính sách định tuyến âm thanh

    Tai nghe sẽ tự động chọn một thiết bị chính trong nhóm CSIP. Nếu tai nghe ở chế độ kép, thì thiết bị chính phải ở chế độ kép để đảm bảo cả chức năng LE và chức năng Cổ điển đều hoạt động đúng cách sau khi ghép nối.

Việc này giúp tai nghe LEA chế độ kép không xuất hiện dưới dạng các mục trùng lặp trong phần cài đặt Bluetooth, điều này có thể gây nhầm lẫn cho người dùng và ảnh hưởng đến trải nghiệm ghép nối LEA.

Việc chọn thiết bị chính động đặc biệt quan trọng đối với các thiết bị chế độ kép được ghép nối dần dần. Ví dụ: nếu chỉ có một tai nghe trong lần ghép nối đầu tiên, thì tai nghe đó sẽ tự hiển thị dưới dạng thiết bị chế độ kép. Khi người dùng ghép nối với tai nghe thứ hai sau đó, họ chỉ cần ghép nối với thành phần LE và CSIP sẽ đảm bảo rằng các tai nghe này được nhóm lại với nhau trên Android.

Bạn nên sử dụng địa chỉ nhận dạng trong quá trình ghép nối vì thành phần BR/EDR đã hiển thị địa chỉ công khai của thiết bị cho các thiết bị ở gần.

Hỗ trợ Giao thức thuộc tính nâng cao (EATT). Giảm độ trễ khi ghép nối và kết nối.
Hỗ trợ lưu vào bộ nhớ đệm GATT mạnh mẽ. Giảm độ trễ kết nối, đặc biệt là đối với tai nghe TWS.
Hỗ trợ mức phân loại phụ của kết nối. Cho phép lập lịch gói linh hoạt hơn và có thể tiết kiệm pin.
Đảm bảo rằng trong quá trình xử lý trước và sau cho cả việc phát và thu, quy trình xử lý tín hiệu có thể hoạt động ở tần số 16, 24, 32 và 48 kHz cũng như hỗ trợ tần số cao hơn. Tận dụng tốc độ lấy mẫu cao hơn được hỗ trợ cho cuộc gọi LEA hoặc đường dẫn thu nạp VoIP và phát nội dung nghe nhìn.
Hỗ trợ Kiểm soát nguồn điện năng lượng thấp Quản lý nguồn tốt hơn

Hỗ trợ loại ngữ cảnh

Mô tả Bối cảnh
Sử dụng tất cả các loại bối cảnh được chỉ định trong Assigned Numbers 6.12.3 trừ phi tai nghe không hỗ trợ một loại bối cảnh nhất định. Ví dụ: nếu loại bối cảnh "Trò chơi" không được hỗ trợ, thì Android sẽ gửi âm thanh trò chơi. Cụ thể, xin lưu ý rằng loại bối cảnh "Chưa xác định" không có nghĩa là "bất kỳ loại bối cảnh nào" và không bao gồm các loại bối cảnh không được hỗ trợ.

Khi thiết bị trung tâm tương tác với ASCS của thiết bị ngoại vi, thiết bị ngoại vi phải kết nối với MCS và TBS của thiết bị trung tâm.

Thiết bị trung tâm có thể không phải lúc nào cũng sử dụng Âm thanh năng lượng thấp làm tuyến truyền trực tuyến vì thiết bị này có thể quay lại sử dụng A2DP hoặc HFP. Thiết bị ngoại vi có thể sử dụng hoạt động tương tác ASCS để cho biết liệu thiết bị trung tâm có sử dụng âm thanh năng lượng thấp để truyền trực tuyến hay không.

Một vài ví dụ về hoạt động tương tác của ASCS là đọc, ghi và đăng ký nhận thông báo.

Đề xuất về bộ phát Auracast

Phần này đưa ra các đề xuất để định cấu hình bộ phát Auracast.

Chương trình phát sóng không liên tục

Thông báo bằng âm thanh ở những nơi công cộng, chẳng hạn như nhà ga, thường không liên tục và cách nhau bằng những khoảng lặng dài. Việc liên tục phát trực tuyến âm thanh im lặng hoặc âm thanh nền giữa các thông báo sẽ gây lãng phí điện năng của thiết bị thu và ngăn người dùng nghe luồng âm thanh chính của họ, chẳng hạn như nội dung nghe nhìn cục bộ hoặc một luồng Auracast đang hoạt động khác.

Để cải thiện trải nghiệm người dùng, Android đề xuất các bộ phát Auracast tuân thủ các nguyên tắc sau đây để xử lý các chương trình phát sóng không liên tục.

Định nghĩa

  • Âm thanh quan tâm: Nội dung thông tin cốt lõi dành cho người dùng, chẳng hạn như thông báo tại cổng hoặc trên tàu.
  • Âm thanh nền: Khoảng lặng, tiếng ồn hoặc nhạc nền được truyền giữa các khoảng thời gian có Âm thanh quan tâm.
  • Chương trình phát sóng không liên tục: Chương trình phát sóng xen kẽ giữa các khoảng thời gian có Âm thanh quan tâm và các khoảng thời gian có Âm thanh nền hoặc không có âm thanh.

Xác định các chương trình phát sóng không liên tục

Để chỉ định một chương trình phát sóng là Chương trình phát sóng không liên tục, đài phát sóng phải đưa cấu trúc LTV (Length-Type-Value) của siêu dữ liệu Audio_Active_State [1] vào hai vị trí:

  1. Cấu trúc BASE Siêu dữ liệu cấp 2 (Quảng cáo định kỳ) [2]
  2. Siêu dữ liệu thông báo phát sóng công khai (Quảng cáo mở rộng) [3]

Để giúp thiết bị nhận xác định Chương trình phát sóng không liên tục và quyết định xem có phát luồng hay không, đài phát sóng cũng phải đặt chính xác cấu trúc LTV siêu dữ liệu Streaming_Audio_Context [1].

Xác định âm thanh cần quan tâm

Để báo hiệu một cách linh động xem một Bản phát sóng không liên tục có chứa Âm thanh quan tâm tại bất kỳ thời điểm nào hay không, bộ phát sẽ sử dụng cấu trúc LTV siêu dữ liệu Audio_Active_State.

  • Siêu dữ liệu cấp 2 của cấu trúc BASE: Giá trị 0x01 cho biết BIS trong một nhóm con chứa Âm thanh quan tâm.
  • Siêu dữ liệu thông báo phát sóng công khai: Giá trị 0x01 cho biết rằng ít nhất một trong các BIS trong BIG có chứa Âm thanh quan tâm.

Giá trị LTV của siêu dữ liệu Audio_Active_State phải được đặt thành 0x01 ngay trước khi truyền Âm thanh quan tâm, cho phép thiết bị quét đồng bộ hoá với Nguồn truyền phát công khai. Ngược lại, bạn nên đặt giá trị này thành 0x00 ngay sau khi quá trình truyền kết thúc.

Tận dụng bối cảnh âm thanh trực tuyến

Việc cung cấp bối cảnh rõ ràng giúp khung Android và thiết bị nhận ưu tiên các luồng dữ liệu đến. Ví dụ: hệ thống truyền thanh công cộng (PA) có thể đặt loại Streaming_Audio_Context thành Instructional để cho phép thông báo làm gián đoạn quá trình phát nội dung nghe nhìn cục bộ của thiết bị thu và tiếp tục phát một cách liền mạch sau đó.

Tài liệu tham khảo

[1] Số được chỉ định Bluetooth, https://www.bluetooth.com/specifications/assigned-numbers/
[2] Hồ sơ âm thanh cơ bản, https://www.bluetooth.com/specifications/specs/basic-audio-profile-1-0-3/
[3] Hồ sơ truyền phát công khai, https://www.bluetooth.com/specifications/specs/public-broadcast-profile-1-0-2/