Linux蓝牙之宽带语音(WBS)
Linux蓝牙之宽带语音WBS | DDNotesLinux蓝牙之宽带语音WBS1. 概述1.1 什么是WBSWBSWideband Speech宽带语音是蓝牙技术联盟SIG定义的一种高质量语音传输技术也称为蓝牙宽带语音或HD Voice。它使用 mSBC 编码 在 eSCO增强同步连接链路上提供16kHz采样率的语音传输相比传统的窄带语音NBS8kHz采样率显著提升了通话质量。 1.2 技术背景 特性 窄带语音https://notes.z-dd.online/2026/06/15/Linux%E8%93%9D%E7%89%99%E4%B9%8B%E5%AE%BD%E5%B8%A6%E8%AF%AD%E9%9F%B3%EF%BC%88WBS%EF%BC%89/Linux蓝牙之宽带语音WBS1. 概述1.1 什么是WBSWBSWideband Speech宽带语音是蓝牙技术联盟SIG定义的一种高质量语音传输技术也称为蓝牙宽带语音或HD Voice。它使用 mSBC 编码 在 eSCO增强同步连接链路上提供16kHz采样率的语音传输相比传统的窄带语音NBS8kHz采样率显著提升了通话质量。1.2 技术背景特性 窄带语音NBS 宽带语音WBS采样率 8kHz 16kHz频率范围 300Hz-3400Hz 50Hz-7000Hz编码算法 CVSD mSBC语音质量 MOS 3.0-3.5 MOS 3.5-4.0蓝牙版本 Bluetooth 1.x Bluetooth 2.1HFP 1.61.3 应用场景蓝牙免提通话HFP车载蓝牙、蓝牙耳机VoIP通话通过蓝牙设备进行网络语音通话语音助手Siri、Google Assistant、Alexa等助听设备高质量音频传输2. 技术原理2.1 mSBC编码mSBCmodified Sub-Band Coding是WBS的核心编码算法CODE输入PCM音频16kHz, 16bit↓子带分解4个子带↓自适应量化↓比特分配↓输出mSBC比特流60字节/帧2.2 SCO/eSCO传输WBS使用透明模式Transparent Mode的eSCO链路传输CODE┌─────────────────────────────────────────────────────────┐│ eSCO链路参数 │├─────────────────────────────────────────────────────────┤│ 参数 │ T1配置 │ T2配置 │├─────────────────────────────────────────────────────────┤│ 包类型 │ EV3 │ 2EV3 ││ 最大延迟 │ 8ms │ 13ms ││ 重传次数 │ 2次 │ 2次 ││ 空中传输速率 │ 64kbps │ 64kbps ││ 带宽需求 │ 80kbps │ 80kbps │└─────────────────────────────────────────────────────────┘2.3 USB Alternate Settings对于USB蓝牙适配器WBS需要选择合适的 Alternate Settings不重新枚举设备的情况下动态切换不同的配置方案例如改变端点的数量、类型、数据包大小或带宽需求CODE┌─────────────────────────────────────────────────────────┐│ USB Alternate Settings │├─────────────────────────────────────────────────────────┤│ ALT │ 包大小 │ 间隔 │ 用途 │├─────────────────────────────────────────────────────────┤│ ALT1 │ 17字节 │ 1ms │ NB语音/兼容 ││ ALT3 │ 25字节 │ 7.5ms │ WBS备选 ││ ALT6 │ 63字节 │ 7.5ms │ WBS首选 │└─────────────────────────────────────────────────────────┘3. Linux内核实现下面我们来看看在linux中关于 WBS 的实现。基于内核v7.1.0-rc63.1 代码架构CODE┌─────────────────────────────────────────────────────────┐│ 用户空间 ││ ┌─────────────────────────────────────────────────────┐││ │ BlueZ / PulseAudio / PipeWire │││ └─────────────────────────────────────────────────────┘│└────────────────────────┬────────────────────────────────┘│ MGMT API┌────────────────────────┴────────────────────────────────┐│ 内核空间 ││ ┌─────────────────────────────────────────────────────┐││ │ net/bluetooth/mgmt.c │││ │ - set_wideband_speech() │││ └─────────────────────────────────────────────────────┘││ ┌─────────────────────────────────────────────────────┐││ │ net/bluetooth/hci_conn.c │││ │ - hci_setup_sync() / esco_param_msbc[] │││ └─────────────────────────────────────────────────────┘││ ┌─────────────────────────────────────────────────────┐││ │ net/bluetooth/sco.c │││ │ - SCO连接管理 │││ └─────────────────────────────────────────────────────┘││ ┌─────────────────────────────────────────────────────┐││ │ drivers/bluetooth/ │││ │ - btintel.c / btusb.c / btrtl.c / hci_qca.c │││ └─────────────────────────────────────────────────────┘│└─────────────────────────────────────────────────────────┘3.2 关键数据结构C/* WBS eSCO参数定义 - net/bluetooth/hci_conn.c:65-68 */static const struct sco_param esco_param_msbc[] {{ EDR_ESCO_MASK ~ESCO_2EV3, 0x000d, 0x02 }, /* T2 */{ EDR_ESCO_MASK | ESCO_EV3, 0x0008, 0x02 }, /* T1 */};/* 空中模式定义 - include/net/bluetooth/hci_core.h:2508 */#define SCO_AIRMODE_TRANSP 0x0003 /* 透明模式用于mSBC */#define SCO_AIRMODE_CVSD 0x0000 /* CVSD模式用于NB语音 */4. 支持流程分析4.1 硬件支持检测驱动程序在初始化时检测硬件是否支持WBS并设置相应的quirk标志C/* Intel设备 - drivers/bluetooth/btintel.c:3556-3559 */if (!btintel_test_flag(hdev, INTEL_ROM_LEGACY_NO_WBS_SUPPORT))hci_set_quirk(hdev, HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED);/* USB设备 - drivers/bluetooth/btusb.c:4341-4342 */if (id-driver_info BTUSB_WIDEBAND_SPEECH)hci_set_quirk(hdev, HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED);/* Realtek设备 - drivers/bluetooth/btrtl.c:1310-1320 */switch (btrtl_dev-project_id) {case CHIP_ID_8822C:case CHIP_ID_8852A:case CHIP_ID_8852B:case CHIP_ID_8852C:case CHIP_ID_8851B:case CHIP_ID_8922A:case CHIP_ID_8852BT:case CHIP_ID_8761C:hci_set_quirk(hdev, HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED);break;}/* Qualcomm设备 - drivers/bluetooth/hci_qca.c:2553-2555 */if (data-capabilities QCA_CAP_WIDEBAND_SPEECH)hci_set_quirk(hdev, HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED);4.2 用户空间配置用户空间通过MGMT API控制WBS功能作者: Shell链接: https://notes.z-dd.online/2026/06/15/Linux%E8%93%9D%E7%89%99%E4%B9%8B%E5%AE%BD%E5%B8%A6%E8%AF%AD%E9%9F%B3%EF%BC%88WBS%EF%BC%89/来源: DDNotes著作权归作者所有。商业转载请联系作者获得授权非商业转载请注明出处。。。。 。。。更多请关注我的博客https://notes.z-dd.online/或我的

相关新闻

3步掌握OOTDiffusion虚拟试穿:让AI为你的模特穿上任意服装

3步掌握OOTDiffusion虚拟试穿:让AI为你的模特穿上任意服装

3步掌握OOTDiffusion虚拟试穿:让AI为你的模特穿上任意服装 【免费下载链接】OOTDiffusion [AAAI 2025] Official implementation of "OOTDiffusion: Outfitting Fusion based Latent Diffusion for Controllable Virtual Try-on" 项目地址: https://git…

2026/7/2 20:13:03 阅读更多 →
法院将听审苹果案:下级法院判其“故意”违反2021年支付禁令

法院将听审苹果案:下级法院判其“故意”违反2021年支付禁令

苹果面临支付禁令违规听审据彭博社报道,法院即将听取苹果公司针对下级法院一项判决的相关辩论。这一事件引发了科技行业的广泛关注。下级法院认定苹果“故意”违规该下级法院的判决维持了另一裁定,明确指出苹果“故意”违反了2021年的一项禁令。这项禁令…

2026/7/2 20:11:03 阅读更多 →
谷歌新图像模型 Nano Banana 2 Lite:速度与成本双赢,质量接近非 Lite 版

谷歌新图像模型 Nano Banana 2 Lite:速度与成本双赢,质量接近非 Lite 版

谷歌 Nano Banana 2 Lite:质量与速度的新平衡市面上大量 AI 图像生成模型中,高质量输出的往往速度慢、成本高。谷歌 DeepMind 新推出的图像模型 Nano Banana 2 Lite 打破了这一困境,在质量和速度之间实现了最佳平衡。该模型已在谷歌生态系统上…

2026/7/2 20:09:03 阅读更多 →

最新新闻

Stable Diffusion工程落地:从能出图到可交付的四条主干路径

Stable Diffusion工程落地:从能出图到可交付的四条主干路径

1. 项目概述:这不是“跑个模型”那么简单,而是一次端到端的AI图像生成工程实践Stable Diffusion Project Implementation——这个标题里没有花哨的修饰词,没有“零基础”“保姆级”这类流量标签,但它恰恰点中了当前AIGC领域最真实…

2026/7/2 22:22:54 阅读更多 →
Selenium自动化测试:geckodriver环境配置与Firefox驱动详解

Selenium自动化测试:geckodriver环境配置与Firefox驱动详解

1. 项目概述:为什么我们需要geckodriver? 如果你尝试过用Python的Selenium库去驱动Firefox浏览器做自动化测试或者数据抓取,那么你大概率在某个深夜,对着控制台里那句“ selenium.common.exceptions.WebDriverException: Message…

2026/7/2 22:20:53 阅读更多 →
WebDriver自动化测试环境诊断与生产级部署实战指南

WebDriver自动化测试环境诊断与生产级部署实战指南

1. 项目概述:为什么我们需要一份环境诊断指南? 如果你做过WebDriver自动化测试,大概率经历过这样的场景:本地跑得好好的脚本,换台机器或者交给同事就报错;CI/CD流水线里,测试任务时好时坏&#…

2026/7/2 22:20:53 阅读更多 →
Selenium、Cypress与Playwright:Web UI自动化测试框架选型实战指南

Selenium、Cypress与Playwright:Web UI自动化测试框架选型实战指南

1. 项目概述:为什么我们需要一场“框架之战”?做自动化测试这些年,我最大的感受就是:工具选型,往往比写测试脚本本身更让人头疼。尤其是Web UI自动化,从早期的Selenium一家独大,到后来Cypress异…

2026/7/2 22:20:53 阅读更多 →
Appium Android自动化测试入门:从环境搭建到实战脚本编写

Appium Android自动化测试入门:从环境搭建到实战脚本编写

1. 项目概述:为什么我们需要Appium自动化如果你是一名Android开发者或者测试工程师,每天重复着在手机上点点点、输入输入再输入的操作,是不是偶尔会感到一丝枯燥和低效?尤其是在回归测试阶段,一个功能改动可能需要你把…

2026/7/2 22:20:53 阅读更多 →
Python Selenium自动化测试环境搭建:从零到一完整指南

Python Selenium自动化测试环境搭建:从零到一完整指南

1. 项目概述:为什么从Selenium开始?如果你刚接触自动化测试,或者想用Python写点脚本来自动点点网页、填填表单,那么“Python Selenium”这个组合几乎是你绕不开的起点。我刚开始做自动化那会儿,也在这个环节折腾过不少…

2026/7/2 22:20:53 阅读更多 →

日新闻

Path of Building PoE2:5步掌握流放之路2角色构建的终极免费工具

Path of Building PoE2:5步掌握流放之路2角色构建的终极免费工具

Path of Building PoE2:5步掌握流放之路2角色构建的终极免费工具 【免费下载链接】PathOfBuilding-PoE2 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding-PoE2 还在为《流放之路2》复杂的角色构建而头疼吗?面对上千个天赋节点…

2026/7/2 19:10:19 阅读更多 →
SSH密钥生成原理与跨平台安全实践指南

SSH密钥生成原理与跨平台安全实践指南

1. 为什么今天还必须亲手生成 SSH 密钥——不是“过时操作”,而是安全基建的起点你可能已经点开过几十次 GitHub 的 SSH 设置页,也见过终端里一闪而过的ssh-keygen -t ed25519 -C "your_emailexample.com"命令,但真正理解它在 macO…

2026/7/2 19:10:19 阅读更多 →
GAN工程化实战:从图像合成到物理建模的工业落地路径

GAN工程化实战:从图像合成到物理建模的工业落地路径

1. 项目概述:当GAN不再只是“画图玩具”,它正在悄悄重构现实世界的生产逻辑“Astonishing GAN Applications”——这个标题乍看像科技展会的宣传语,但在我过去三年深度参与17个GAN落地项目的实操经验里,它根本不是修辞&#xff0c…

2026/7/2 19:12:20 阅读更多 →

周新闻

月新闻