智能手表上的音频(一):架构

前面写过一篇文章(Android智能手机上的音频浅析)介绍了安卓智能手机上的音频。今年又做了智能手表的项目。相对智能手机而言,相同的是依旧有AP/ADSP/CP,不同的是不再用安卓系统,同时音频外设只有内置codec上的麦克风和扬声器,以及蓝牙。我负责音频系统的软件架构设计和ADSP上的软件开发。 准备写一系列文章,详细介绍智能手表上的音频,主要包括如下:

1)  架构,包括硬件架构和软件框图,还有应用场景等

2) 音频驱动,包括IPC驱动和codec驱动等

3) 音频文件播放,包括音乐文件播放和录音文件播放等

4) 语音通话

5) 录音,包括普通录音和电话录音

 

本篇先讲架构和应用场景。

1,  硬件架构

下图是硬件架构的框图。

 智能手表上的音频(一):架构

硬件架构的框图同安卓智能手机上的几乎一样,具体可以去看文章(Android智能手机上的音频浅析)。 不同的是少了一些外设(在手表这种产品形态下就不需要有线耳机和听筒等了),同时把外置codec芯片换成了内置codec,即把codec芯片集成到SOC里面了 。有专门的codec芯片厂商,他们把codec芯片的功能做的比较丰富。内置codec是我们公司自己设计的,功能够用就行,就没那么丰富了。优势是节省成本。

 

2,  软件框图

下图是软件的框图。

 智能手表上的音频(一):架构

音频软件在AP/ADSP/CP上都有。AP上有play / record / BT host (播放蓝牙音乐时用到) / audio HAL等。ADSP上有 audio driver / 采样率转换(SRC) / music decoder / BT SBC encoder / 混音(mix) / music effect等。Audio driver包括IPC的driver和codec的driver,后面会专门写一篇文章介绍这些。SRC是各种采样率(8k / 16k / 44.1 k /48k等)的转换,以前写过专门的文章,具体见以下文章(音频开源代码中重采样算法的评估与选择基于sinc的音频重采样(一):原理基于sinc的音频重采样(二):实现) 。 music decoder是各种音乐格式的解码器,包括MP3/AAC等。因为要支持蓝牙音乐,需要把PCM数据用SBC编码。混音就是把各个stream 的PCM混在一起。Music effect是各种音效,如EQ等。CP上有voice codec  / voice enhancement / IMS等。voice codec包括AMR-NB / AMR-WB等。voice enhancement包括回声消除、噪声抑制等。IMS(IP multimedia subsystem,IP多媒体子系统)主要是语音的网络侧处理。需要说明的是voice codec和voice enhancement 也可以放在ADSP上做,这款产品由于一些原因就放在CP上做了,这样ADSP就显得有些大材小用。

 

3,  应用场景

应用场景主要如下:

1)  播放音频文件,包括从内置codec的扬声器播放出来和从蓝牙耳机播放出来

2) 播放音频文件时有提示音,同样包括从内置codec的扬声器播放出来和从蓝牙耳机播放出来

3) 语音通话,包括内置codec和蓝牙语音通话

4) 语音通话时有提示音,同样包括内置codec和蓝牙语音通话

5) 录音,包括普通录音和电话录音

 

因为跟安卓智能手机上的音频软硬件架构很相似,本篇写的相对简单。要想详细了解,可以看我写的关于安卓智能手机音频的那篇文章。本篇主要就是智能手表上音频系列文章的一个序,没有它这个系列显得不怎么完整。从下一篇开始讲具体的, 先讲audio driver。

发表评论

相关文章