
STM32F101xx 和 STM32F103xx 微控制器上使用 Speex 音频编解码器进行语音合成器演示8 @; U3 `1 |2 m! z# V0 |# J3 { 前言 6 A2 L. [) M# A: V; y 本应用笔记说明了如何在STM32F101xx 和 STM32F103xx微控制器上利用编码解码器Speex软件实现语音合成器应用。 * s2 _2 Y% Z6 a/ c0 e Speex 是一款免费的音频编解码器,用于语音编码和解码。它能够对语音进行高度压缩同时保持良好音质。这让它成为那些使用留言回放或录音功能的应用的高性能解决方案,例如电话应答机、建筑和家庭安全系统、对讲机、智能家电、录音机或无绳电话等。 1 Speex 编解码器概述 ; |$ |) M8 x; C8 f 0 W1 Z4 Y: | L" |* V Speex 编解码器是一款开源的、取得专利并免版税的软件,用于语音压缩和解压缩。 1 ]7 B L& r4 j$ L ~2 r Speex 基于 CELP(码激励线性预测),针对 2 至 44 kbps 比特率范围内的语音压缩而设计。 ' w3 b) m3 }* U2 v! c: d Speex 具有以下特点: – 以相同的比特流进行窄带 (8 kHz)、宽带 (16 kHz)和超宽带 (32 kHz) 压缩 – 强度立体声编码 - s. m' _8 [* m – 数据包丢失隐藏 – 可变比特率操作 (VBR) j6 y5 H3 ]* r. @# z. S+ G – 语音活动检测 (VAD) & ?# W* m3 @5 |8 j7 ^/ r2 F – 非连续传输 (DTX) ( O" Q" v) ]3 s: L – 定点端口 8 ?' [2 R' d$ b, T! d0 m8 j' ~ – 回音消除器 – 噪声抑制 * {2 a6 d9 t0 ] [) w1 f4 d! j/ D Speex 具有很多其他编解码器所不具备的特点,例如可以进行强度立体声编码、在同一比特流中集成多种采样率以及具有 VBR 模式。 . A) q" b5 p* M- m6 ^ 关于 Speex 编解码器的更多信息,请参考 Speex 网站:www.speex.org。 注: 本应用笔记适用于 Speex 编解码器的 1.2rc1 版本。 2 语音合成器应用 + L1 F0 ]& y: [ 2.1 语音合成器概述 语音合成器是一种语音处理应用,提供语音处理功能,如编码、解码、过滤和放大。 , v4 [" b, a9 a* h ) i: _$ C# \' m) Z 典型的语音合成器应用包括一个语音处理模块和音频输入 / 输出接口。 8 [- g% T& ^ x; e0 }. G! t# q & @) h3 _# k+ d! E6 P$ q 本应用笔记中, Speex 编解码器固件充当了语音处理模块,音频输入 / 输出接口则利用STM32F101xx 和 STM32F103xx 的内嵌资源 (ADC 作为输入, PWM 作为输出)集成。 : ^0 w8 [# c" Y+ y; `3 i STM32F101xx 和 STM32F103xx 微控制器系列产品具有 12 位分辨率的多通道 ADC 和 1 µs的转换时间,以及 16 位定时器并能产生 PWM。这些特点使其能够实现低成本且高性能的音频应用。! h; h, c6 E/ E0 l# D$ D5 D ) |, ?' { r1 w# u 2.2 硬件说明 4 |- t- m, M' A& i: w 硬件由两个音频级组成:一个输入和一个输出,分别进行采集和播放语音 (请参看图 1)。 # t' M: z& D/ f 本应用笔记中,语音采集由微控制器的内部 ADC 实现,该 ADC 必须通过一个前置放大器连接到麦克风上。 语音合成由微控制器的内部定时器实现,该定时器为 PWM 模式。PWM 输出信号进行低通滤波,消除了高频分量,然后经过放大并发送到扬声器。) Y2 l9 ^/ ?" K! \! R; G+ Y ![]() |