BT音频方案

一、缩写

|------|-------------------------------------|------------------|
| 缩写 | 全程 | 释义 |
| I2S | I2S | 音频传输接口总线 |
| PCM | Pulse-Code Modulation | 基础音频数据或翻译为音频接口总线 |
| HFP | Handsfree | 蓝牙通话协议 |
| A2DP | Advanced Audio Distribution Profile | 蓝牙媒体音频协议 |

二、音频流转策略

蓝牙音频功能分为通话声音和媒体声音。其中通话的编解码在BT芯片里进行(也可以在输出到dsp处理,看厂商方案),A2DP音频流的解码是在音频的DSP里进行的。A2DP的编码复杂度更高,BT芯片是没有能力编解码的。具体的音质要看输入到音频模块的数据流是采用硬件解码还是软件的。

  • HFP

电话通话业务,负责蓝牙设备电话功能。处于安全考虑,语音通话不应被任何进程感知,需要通过硬件直通到声卡播放。

  • A2DP

媒体业务,具有更加丰富的编解码方案和码率,硬件直通方案会相对复杂。通过stack直接处理音频流。在有些厂商的方案中,A2DP也有直接通过I2S输出到DSP。

三、I2S总线

I2S 时钟: I2S SCK

I2S 声道控制: I2S WS

I2S 输出: I2S SDO

I2S 输入: I2S SDI

蓝牙芯片可以设定为为slave或master角色,在准备接收/发送数据时,作为master角色的芯片提供时钟输出给slave。此外,在HFP通话系统中,由于语音通话没有左右声道的区分,所以默认采用左声道,WS维持低电平输出。

通话音频格式

|------------|-------|--------------|
| Codec Type | 位宽 | Band/Rate |
| MSBC | 16bit | Input 64KHZ |
| MSBC | 16bit | Output 64KHZ |
| CVSD | 16bit | Input 32KHZ |
| CVSD | 16bit | Output 32KHZ |

对于通话profile而言,音频的格式是相对固定的,并不像A2DP那样可以采用多种编码格式或多种采样格式。并且编码的复杂度比较低,可以采用多种解决方案。

相关推荐
jiejiejiejie_4 小时前
Flutter for OpenHarmony 视频播放与本地身份验证萌系实战总结
flutter·华为·音视频·harmonyos
y小花4 小时前
安卓音频子系统之AudioFlinger
音视频
拾-光4 小时前
LTX-Video 2.3 实战:用图片生成视频,消费级显卡也能跑的开源 I2V 模型(GPT Image 2)
java·人工智能·python·深度学习·算法·机器学习·音视频
巴德鸟4 小时前
DaVinci 常用技巧 关键帧 自动字幕 追踪 音频 冻结帧 快捷键 多轨道字幕 扩充边缘
android·编辑器·音视频·视频·davinci·davin
上善若水20205 小时前
【定制开发】ENC设备视频矩阵功能介绍
线性代数·矩阵·音视频
legendary_1636 小时前
Type-C手机快充与音频/数据传输的完美融合:多功能转接器解析
c语言·智能手机·音视频
The Straight8 小时前
【视频文件音画不同步】字幕和视频画面不同步问题
音视频
我是发哥哈1 天前
主流AI视频生成方案商用化能力横向评测
大数据·人工智能·学习·机器学习·chatgpt·音视频
reasonsummer1 天前
【教学类-160-10】20260418 AI视频培训-练习011“豆包AI视频《毛毛虫找妈妈》+豆包图片风格:水墨画”
音视频·豆包图片
liulian09161 天前
【Flutter for OpenHarmony第三方库】Flutter for OpenHarmony 音频播放功能适配与实现指南
flutter·华为·音视频·学习方法·harmonyos