基于TTS技术和ALC5621芯片的音频录/放解决方案

2017-06-03 03:17莫毅挺
电子技术与软件工程 2017年9期
关键词:压缩算法声道嵌入式

莫毅挺

摘 要本文介绍一种基于先进的TTS软核算法和ALC5621音频IC的录/放音方案。音频采集->储存->压缩/解压全过程由软件实现,大大节约了成本及提升产品的可制造性。本方案适用于带I2S和I2C接口的嵌入式系统。

【关键词】TTS I2S DMA 音频 立体声 单声道 ADPCM WAVE

1 科大讯飞TTS(Text To Sound)软核简介

本方案采用科大讯飞公司的Aisound5系列嵌入式语音合成软件模块,Aisound5结合音频播放平台就可以实现任意中/英文本的朗读功能。

Aisound5支持UNICODE、GB2312、GBK、Big5等字符编码;支持块式和流式文本输入;输出格式为16位PCM音频,并可选8k/11k/16k输出采样率;支持音量和语速调节;支持多音字和数字发音识别;平均无故障工作时间不小于72小时。Aisound5与操作系统无关,它以“静态库”+“语音合成资源包”的形式提供,通过回调函数的方式与用户平台对接,接口简单。TTS静态库提供丰富的语音合成配置选择,可满足大多数应用需求。

2 WAVE音频文件及ADPCM压缩算法简介

WAVE文件是微软标准音频格式,它使用三个参数来表示声音:采样位数、采样频率和声道数。支持单声道和立体声,WAVE文件所占容量=(采样频率×采样位数×声道数)×时间/8(1字节=8bit)。为了节省存储空间,本方案采用单声道和压缩的WAVE文件。

ADPCM(Adaptive Differential Pulse Code Modulation),是一种针对声波数据的有损压缩算法,通过两个相邻采样计算出预测值,再将预测值与下一个采样之差与预先设定的比例因子表中相近的那个因子作运算,得到一个相比原始数据小很多的结果并储存,播放时再以逆运算重建波形。ADPCM优点是压缩/解压算法简单,对CPU处理速度要求不高。

3 基于ALC5621的音频应用电路设计

图1是本方案使用的ALC5621应用电路。ALC5621提供两路立体声道输入(MIC1和MIC2),支持单端或差分输入。本方案只使用其中一路,为了抑制共模噪声,采用差分输入。此外ALC5621还提供两路辅助混音输入(AUXIN_L和AUXIN_R),并可单独调节音量。本方案利用AUXIN_R作为蜂鸣输入,由MCU产生一定频率的PWM音频信号BEEP作为输入。ALC5621通过标准的I2S与MCU接口,本方案中ALC5621工作于主模式,MCU工作于从模式,采用全双工方式实现录/放音数据传输。I2S总线通过LRCK信号交替地传输左/右声道数据,但本方案录音时只保存单个声道的数据,放音时再将单声道数据转换为双声道数据,这样可以节省一半的音频存储空间。ALC5621提供一路I2C接口,MCU可通过该接口传输控制命令,如调节输出音量,打开/关闭录音ADC,配置单端/差分输入,配置I2S的主/从模式等。

I2S(Inter-IC Sound Bus)是飞利浦公司为IC之间的音频数据传输制定的一种总线标准。I2S有3个主要信号:

(1)串行时钟SCLK,也叫位时钟(BCLK),对应每一位数据SCLK都有1个脉冲。SCLK的频率=2×采样频率×采样位数。

(2)帧时钟LRCK,用于切换左右声道的数据。LRCK为“1”表示正在传输左声道数据,为“0”表示正在传输右声道数据。LRCK的频率等于采样频率。

(3)串行数据SDATA,就是用二进制补码表示的音频数据。

本方案音频相关参数配置如下:

声道数=2 采样频率=8k 采样位數=16bit ADPCM压缩比=1/4

由以上参数可计算出1秒录音数据大小:

原始PCM音频数据大小:2*8k*2Bytes*1秒=32k Bytes

经压缩和单声道处理后大小:32k/(4*2)=4k Bytes

由此可见,经压缩和单声道处理后可节省87.5%的存储空间,且ADPCM压缩算法简单,很适合运算速不高的嵌入式系统。

4 本系统设计

4.1 系统架构

图2为本系统的架构示意图。

本方案MCU采用STM32F407(ARMCortex M4,主频最高达168MHz),自带I2S、I2C、SDIO接口,及丰富的厂家驱动库支持,可方便的集成SD卡,I2S/I2C接口设备。录音文件以WAVE格式存储于8G的SD卡,MCU通过SDIO接口访问。文件系统采用ucfs,与微软的FAT文件系统兼容。音频数据在ALC5621和MCU间按块方式动态压缩/解压处理。ALC5621完成音频的AD/DA转换,数字音频传输,功放,混音等功能。如图3所示SDIO及I2S均采用双缓冲的DMA方式,这样可保证音频数据连续稳定的传输,另为了加快处理速度,将DMA中断程序执行域通过分散加载文件定位于片内SRAM空间。

4.2 TTS的应用设计

讯飞TTS软核只是一个静态库,使用者需要根据自己平台情况编写合适的应用程序配置和调用它。图4为本系统TTS的应用设计原理图。

5 实测结论

经实际产品验证,本音频解决方案满足同时连续录/放音无卡顿的要求,对系统资源占用少,是不错的嵌入式系统音频解决方案。

参考文献

[1]科大讯飞AiSound4.10用户指南(Release 1.0.1346).

[2]ALC5621_DataSheet_1.0.pdf(Rev.1.0).

[3]STM32F4XX_manual.pdf.

作者单位

珠海优特电力科技股份有限公司 广东省珠海市 519000

猜你喜欢
压缩算法声道嵌入式
9.7.8声道、造价250余万 James极品影院赏析
基于人工智能技术的运动教学视频压缩算法
为发烧需求打造的11声道后级 Orisun(傲力声)OA-S11
基于参数识别的轨道电路监测数据压缩算法研究
实现从7.2到11.2声道的飞跃 Onkyo(安桥)TX-RZ830
搭建基于Qt的嵌入式开发平台
更正声明
嵌入式软PLC在电镀生产流程控制系统中的应用
PMU数据预处理及压缩算法
考虑覆盖率下时差式超声流量计的平面声道模型*