微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 消费类电子 > 基于USB存储技术的电子语音记录系统的设计方案

基于USB存储技术的电子语音记录系统的设计方案

时间:11-15 来源:中电网 点击:
语音识别技术与嵌入式USB主机系统是目前电子设计领域的新兴技术,其应用十分广泛。本系统结合该两项技术,实现了一个嵌入式USB主机结构的电子语音记录系统。该系统充分利用了凌阳单片机强大的语音识别功能。并通过嵌入式USB主、从控制芯片SL811HS和相应的软件设计,实现了语音信号的智能识别,并以嵌入式主机方式保存到USB存储器。该系统在保证了嵌入式系统的小型化特点的同时又实现了文字的录入功能。它即可以作为一个可灵活更换存储媒体的电子语音记事本,也可以作为一个语音录入器,将记录在USB存储器中的文本文件方便的转移到PC机等其他文字处理设备进行再处理,具有极高的功能可扩展性。

1系统结构与原理

图1是系统的硬件结构框图。系统主要包括语音采集模块、凌阳单16位片机SPCE061A、液晶显示模块、USB主机接口控制器和USB存储器等几个部分。


该系统的功能是通过语音样品采集训练、语音识别和USB存储等三个环节来实现的。语音样品采集时,通过语音数据采集模块内的驻极话筒来采集语音。采集到的语音数据通过SPCE061A的MIC-IN端输入,再经过SPCE061A内部A/D转换器将其转换成数字信号,并调用训练API函数对其进行特征提取,并以样品模板库要求的格式保存到SPCE061A的FLASH中。音样品采集训练时的提示信息和训练结果会在LCD上显示。

语音识别时,采集到的语音数据通过A/D转换后,由语音识别API函数对其进行特征提取,再与样品模板库中的语音样品进行特征匹配。匹配后的结果在LCD上显示的同时,交给USB主机接口控制器,进入下一步的信息保存环节。

在USB主机接口控制器模块和与之配合的USB协议和FAT文件系统的支持下,系统完成对USB设备的枚举。并以文本文件的格式将上一环节所识别出来的信息保存到USB存储器中,最终实现系统的全部功能。

2语音识别

语音识别属于模式识别,它主要包括语音信号预处理、特征提取、语音模板库、测度估计和识别决策等几个模块。与人的认知过程很相似, 语音识别分为训练和识别两个阶段。在训练阶段, 语音识别系统对语音样本进行学习。学习结束后,把学习的内容存储到模板库中。在识别阶段,把当前输入的语音在模板库中查找最相近的结果,并进行相应的处理。语音识别的基本原理框图如图2所示[1]



凌阳SPCE061A单片机具有上述的语音识别技术要求的硬件和软件的全部功能。硬件方面,SPCE061A内部有一个A/D转换的输入通道和自动增益控制电路AGC,能随时跟踪、监视前置放大器输出的音频信号电平,使进入A/D的信号保持在最佳电平。

由于SPCE061A的MIC-IN通道内部做了AGC自动增益和滤波处理,语音的采集只需一个驻极话筒和少量的外围阻容电路即可。相关电路如图3所示。



软件方面,凌阳SPCE061A提供了一组专用的API函数来支持语音识别功能。这组API函数的功能、C语言调用格式、参数和返回值分别表述如下:

(1)训练函数:Train(int WordID,int TrainMode),用于特定人语音识别的模型训练。

C语言调用格式:int BSR_Train(int WordID,int TrainMode)

参数:WordID 命令序号,范围从0x100到0x105,并且对于每组训练语句都是唯一的。

TrainMode:训练次数,要求使用者在应用之前训练一遍或两遍。

返回值:训练成功返回0;没有声音返回-1;训练需要更多的语音数据返回-2;环境太吵返回-3;数据库满返回-4;两次输入命令不同返回-5;序号超出范围返回-6。

(2)语音识别器初始化函数:InitRecognizer(int AudioSource),用于语音识别器初始化。

C语言调用格式:void BSR_InitRecognizer(int AudioSource)

参数:定义语音输入来源。BSR_MIC通过MIC语音输入。

BSR_LINE_IN是LINE_IN电压模拟量输入。

返回值:无。

(3)获取识别结果函数:GetResult(void)用于完成语音识别,并返回语音识别结果。

C语言调用格式:int BSR_GetResult(void)

参数:无。

返回值:无命令识别出来返回0;识别器停止、未初始化或识别未激活返回-1;识别不合格返回-2;识别出命令返回命令的序号[2]。

3 USB主机接口

USB主机接口是整个系统的核心。它由USB主机接口芯片和USB协议以及FAT文件系统等构成。本文主要介绍USB主机接口芯片的功能和电路设计。

USB主机接口芯片采用的是Cypress公司的SL811HS,它是一款嵌入式的USB主、从控制器芯片,它可以实现USB主机结构中的总线接口层的功能。其功能模块框图如图4所示。SL811HS内部的串行接口引擎实现了主机与总线上数据的并串转换任务。USB主机的端点也是这个芯片上的部分寄存器,主机通过向这些端点写数据,就可以将这些数据直接转换为USB总线上的差模二进制数据,或者接收总线上的差模二进制数据,并存入端点寄存器,供主机取用[3]。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top