本文主要是介绍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 |
16bit | Output 64KHZ | |
CVSD | 16bit | Input 32KHZ |
16bit | Output 32KHZ |
对于通话profile而言,音频的格式是相对固定的,并不像A2DP那样可以采用多种编码格式或多种采样格式。并且编码的复杂度比较低,可以采用多种解决方案。
这篇关于BT音频方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!