(1)触发识别模式:
系统的主控MCU在接受到外界一个触发后(比如用户按动某个按键),启动LD3320 芯片的一个定时识别过程(比如5s),要求用户在这个定时过程中说出要识别的语音关键词语。过了这个过程后,需要用户再次触发才能再次启动一个识别过程。
(2)循环识别模式:
系统的主控MCU反复启动识别过程。如果没有人说话没有识别结果,则每次识别过程的定时到时后再启动一个识别过程;如果有识别结果,则根据识别作相应处理后(比如播放某个声音作为回答)再启动一个识别过程。
一般来说,触发识别适合于识别精度要求比较高的场合。外界触发后,产品可以播放提示音或者其他方式来提示用户在接下来的几秒钟内说出要识别的内容,这样来引导用户在规定的时间内只说出要识别的内容,从而保证比较高的识别率。而循环识别比较适合于需要始终进行语音监控的场合,或者没有按键等其他设备控制识别开始的场合。而这种状态,识别准确度会有一定下降,在循环识别的过程中,用户的其他说话声音,或者外界的其他声音,都有可能被识别引擎误识别出错误的结果。
3.2 LD3320硬件数据
以下为内部电路的简单逻辑图:
图3.2 LD3320内部逻辑图
(1)电压要求:
表3.1 LD3320的电压要求
类型 说明 范围
VDD 数字电路用电源输入 3.0V—3.3V
VDDIO 数字I/O电路用电源输入 1.65V—VDD
VDDA 模拟电路用电源输入 3.0V—4.0V
本设计中统一使用3.3V电压输入以简化设计,数字电压和模拟电压进行隔离可以使得芯片有更好的效果。
(2)时钟:
芯片必须连接外部时钟,可接受的频率范围是2-34MHz。而芯片内部还有PLL频率合成器,可产生特定的频率供内部模块使用。
(3)复位:
对芯片的复位信号(RSTB*)必须在VDD、VDDIO、VDDA都稳定后进行,无论芯片正在进行何种运算,复位信号都可以使它恢复初始状态,并使各寄存器复位。如果没有后续的指令(对寄存器的设置),复位后芯片将进入休眠状态。此后,一个CSB*信号就可以重新激活芯片进入工作状态。
(4)并行接口:
本芯片可通过并行方式和外部主CPU连接,此时使用8根数据线(P0—P7),4个控制信号(WRB*,RDB*,CS*,A0),以及一个中断返回信号(INTB*)。
(5)串行接口:
串行接口通过SPI协议和外部主CPU连接,首先要将MD接高电平,而将SPIS*接地。此时只使用4个管脚:片选(SCS*)、SPI 时钟(SDCK)、SPI输入(SDI)和SPI 输出(SDO)。
(6)寄存器:
对芯片的设置和命令,包括传送数据和接受数据,都是通过对寄存器的操作来完成的。例如进行语音识别时,设置识别的关键词语列表,设定芯片的识别模式,识别完成后获得识别结果都是通过读/写寄存器来完成。播放声音时,就是将MP3格式的数据循环放入FIFO对应的寄存器。识别结果是通过寄存器返回识别出的关键词语在关键词语列表中的排列序号Index数值,该Index数值是在设置关键词语列表时指定。
3.3 LD3320驱动程序
此芯片的特色是兼有语音识别和MP3播放两项功能,由于芯片只提供一个中断源,必须利用一些作为全局变量的模式和状态标志来合理控制流程。例如程序中设置了芯片模式nLD_Mode和当前运行状态nAsrStatus如表3.2和3.3: STC10L08XE基于语音识别的智能控制系统开发(5):http://www.youerw.com/tongxin/lunwen_9683.html