毕业论文

打赏
当前位置: 毕业论文 > 电子通信 >

STC10L08XE基于语音识别的智能控制系统开发(7)

时间:2017-06-22 19:29来源:毕业论文
图3.3 写入识别列表流程图 (3)开始识别: 设置几个相关的寄存器,就可以控制LD3320芯片开始语音识别。 uint8 LD_AsrRun() { nAsrStatus=LD_ASR_RUNNING; } 设置芯片当


 
图3.3 写入识别列表流程图
   (3)开始识别:
    设置几个相关的寄存器,就可以控制LD3320芯片开始语音识别。
    uint8 LD_AsrRun()
    {
      nAsrStatus=LD_ASR_RUNNING;
      ……
    }
    设置芯片当前状态为正在运行,该函数运行成功返回值1。
    在函数uint8 RunASR();中调用语音识别用初始化函数,并且如果写入识别列表和ASR运行均成功,返回asrflag=1。
   (4)响应中断:
    如果麦克风采集到声音,不管是否识别出正常结果,都会产生一个中断信号:
    void ExtInt0Handler(void) interrupt 0
    {
      nInt0Flag = 1;
    }
    void ProcessInt0()
    {
      ……
    }
    主函数中判断:
    if (nInt0Flag)
    {
      ProcessInt0();
      continue;
    }
    中断程序要根据寄存器的值分析结果。读取BA寄存器的值,可以知道有几个候选答案,LD_ReadReg(0xba)的值1-4说明有对应数量的正确识别结果,0或者大于4表示没有识别候选。而C5寄存器里存储的是得分最高、最可能正确的答案的编号。在目前的程序中,只读取了最优候选。在其他使用场合,如果需要其他候选,可以通过编程读取寄存器0xc7、0xc9、0xcb实现。
    uint8 LD_GetResult()
    {
      return LD_ReadReg(0xc5);
    }
    以下为中断响应的简单流程图:
 
图3.4 语音识别响应中断流程图
3.3.3  声音播放
    播放声音的操作顺序是:通用初始化→MP3播放用初始化→调节播放音量→开始播放声音,并准备好中断响应函数,打开中断允许位。 STC10L08XE基于语音识别的智能控制系统开发(7):http://www.youerw.com/tongxin/lunwen_9683.html
------分隔线----------------------------
推荐内容