图10 麦克录音输入及AGC电路
下图是MIC录放流程图。
图11 MIC录放流程图
下图是简化的语音识别原理图,其中实线部分成为训练模块,虚线部分为识别模块。辨认特定的使用者即特定语者(Speaker Dependent,SD)模式,使用者可针对特定语者辨认词汇(可由使用者自行定义,如人名声控拨号),即在启动小车前,系统将会提示输入语音命令作简单快速的训练纪录,在这里输入“启动”“停止”“返回”和“模式切换”四个语音命令,通过使用者的声音特性来加以辨认。随着技术的成熟,进入语音适应阶段SA(speaker adaptation),使用者只要对于语音辨识核心,经过一段时间的口音训练后,即可拥有不错的辨识率。
图12 语音识别原理图
3.3.5语音播报电路
音频部分的原理图如下所示,在下图中可以看到两个跳线,其作用在于可以测量DAC的输出波形;另外拔掉跳线,可以断开DAC到喇叭放大的通路,使得DAC通道处于开路状态。这样便于用DAC做其他用途,用户可以用过这个跳线来加入自己的外围电路。
图13 音频原理及放大电路图
凌阳音频压缩算法根据不同的压缩比分为以下几种:
SACM-A2000:压缩比为8:1,8:1.25,8:1.5
SACM-S480: 压缩比为80:3,80:4.5
SACM-S240: 压缩比为80:1.5
按音质排序:A2000>S480>S240
用凌阳Compress Tool事先把所需要的语音信号录制好,本系统共包括十多个语音资源,整个语音信号经凌阳SACM_S480压缩算法压缩只占有13.2K存储空间,SPCE061A单片机具有32k闪存,使用内部flash即可满足要求。凌阳SPCE061A单片机自带双通道DAC音频输出, DAC1、DAC2转换输出的模拟量电流信号分别通过AUD1和AUD2管脚输出, DAC输出为电流型输出,所以DAC输出经过SPY0030音频放大,以驱动喇叭放音,放大电路如图19(只列出了DAC1,DAC2类似),这为单片机的音频设计提供了极大方便。在它们后面接一个简单的音频放大电路和喇叭即可实现语音播报功能,音频的具体功能主要通过程序来实现。
4软件设计
软件设计部分是小车控制的的核心,通过软件编程来控制小车的行驶状态。
4.1 软件流程图及设计思路说明
图14 软件流程图
4.1.1程序设计
(1)主函数的程序
int main(void)
{ unsigned int BS_Flag; //Train标志位
*P_IOA_Dir=0xff00; //初始化IOA,IOA0~7下拉输入
*P_IOA_Attrib=0xff00;
*P_IOA_Data=0x0000;
*P_IOB_Dir=0x0f00; //初始化IOB,IOB8~11同向输出
*P_IOB_Attrib=0x0f00;
*P_IOB_Data=0x0000;
TrainSD(); //训练
StoreSD(); //存储训练结果(语音模型)
}
else //经过训练(0xe000内容为0x0055)
{
LoadSD(); //语音模型载入识别器
}
PlaySnd(S_START,3); //开始识别提示
BSR_InitRecognizer(BSR_MIC); //初始化识别器 SPCE061A语音控制小车设计+源代码(7):http://www.751com.cn/tongxin/lunwen_1001.html