- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
语音识别主要分为“训练”和“识别”两个阶段。在训练阶段,单片机对采集到的语音样本进行分析处理,从中提取出语音特征信息,建立一个特征模型。在识别阶段,单片机仍然对采集到的语音样本进行同样的分析处理,提取出语音的特征信息。然后将这个特征信息与已有的特征模型进行对比,如果二者达到了一定的匹配度,则输入的语音被识别。同语音播放类似,SPCE061A的语音识别功能也是通过相应的函数库来实现的。其中,特定人语音连续识别函数库是免费开放的。它包括训练函数和识别函数,还可以将训练好的特征模型导入和导出等。受RAM空间的限制,最多可同时识别7条语音命令。如果其它程序占用了较多RAM(如语音播放程序等),同时可以识别的语音命令数会相应减少。特定人语音识别的训练过程和识别过程中,语音样本采集都是在中断服务程序中进行的。下面我们一步步创建一个语音识别程序。程序将对两条语音命令进行训练和识别,在训练和识别过程中有语音提示当前状态。首先编写一个语音播放程序,用来播放提示语音。注意,语音播放和语音识别不能同时开启,所以在语音播放程序的首尾加上停止和开启语音识别的函数。初始化识别器的函数BSR_InitRecognizer的参数BSR_MIC表示语音是通过MIC采样输入的。如果语音是通过ADC通道1输入的,那么这个参数可以改写成BSR_LINE_1。然后编写训练函数。BSR_Train函数就是实现“训练”的。它有两个参数,WordID是用户为每条语音命令指定的一个编号,它的范围从0x0001到0x0fff,此后,就可以利用这个编号区分每条语音命令了;另一个参数BSR_TRAIN_TWICE表示该条语音命令将训练两次,也可选择BSR_TRAIN_ONCE,只训练一次,但识别的准确度将大大降低。如果第一次训练成功,BSR_Train()将返回-2,第二次训练成功将返回0。如果BSR_Train()函数返回了-2和0以外的数,表明训练失败,需要重新训练该条命令。这里在主函数中完成识别过程。在训练之前,首先要执行BSR_DeleteSDGroup(0),对RAM初始化,这是因为训练得到的特征模型是保存在RAM中的,所以要预先准备好RAM空间。训练函数的参数CMD1_ID和CMD2_ID是预先定义的命令编号。当两条命令都训练成功后就可以开始识别了。识别之前要执行BSR_InitRecognizer()函数,初始化识别器。识别的过程是通过循环执行BSR_GetResult()函数实现的,当这个函数返回值与预设的语音命令编号相同时,表示识别出了该条语音命令。语音识别和语音播放都是使用的FIQ_TMA中断服务程序。把两个中断服务函数一起写进FIQ_TimerA中即可。最后还要在Resource.asm加入语音播放的索引表T_SACM_S480_SpeechTable。BSR_EnableCPUIndicator()可用来判断识别过程中CPU运算速度是否满足识别要求。如果得到的不是上述方波,说明识别的同时CPU执行的其他任务已经影响到了语音识别的准确性。SunplusSPCE061A微控制器语音识别语音识别 一、语音识别概述 二、特定人语音识别程序示例 三、其他特定人识别函数 四、小结和注意事项 五、疑难解答一、语音识别概述语音识别概述根据对说话人的依赖程度,分为:特定人语音识别(SD)只能辨认特定使用者的语音,训练-使用非特定人语音识别(SI)可辨认任何人的语音,无须训练根据对说话方式的要求,分为:孤立词识别每次只能识别单个词汇连续语音识别用者以正常语速说话,即可识别其中的语句语音识别原理SPCE061A实现语音识别硬件条件专用MIC接口,用于实现语音录制16位定时器/计数器用于控制采样频率最高49MHz时钟频率,内置硬件乘法器和内积运算,保证识别算法的运行软件条件提供语音识别函数库,只需几条语句即可实现语音识别功能特定人语音识别函数库SPCE061A的语音识别函数库特定人连续语音识别包含特定人语音训练、识别,语音特征模型的导入、导出函数等。可支持每组7条语音命令的识别在IDE安装目录的Example-IntExa-ex9_Recognise文件夹下可以找到函数库bsrv222SDL.lib。二、特定人语音识别程序示例特定人语音识别程序流程特定人语音识别程序示例特定人语音识别程序示例新建工程复制语音识别、语音播放需要的支持文件到工程所在文件夹。语音识别函数库bsrv222SDL.lib语音识别头文件bsrSD.inc,bsrSD.h语音播放支持文件Sacmv26e.lib,Hardware.asm,Hardware.inc特定人语音识别程序示例
文档评论(0)