毕业论文
计算机论文
经济论文
生物论文
数学论文
物理论文
机械论文
新闻传播论文
音乐舞蹈论文
法学论文
文学论文
材料科学
英语论文
日语论文
化学论文
自动化
管理论文
艺术论文
会计论文
土木工程
电子通信
食品科学
教学论文
医学论文
体育论文
论文下载
研究现状
任务书
开题报告
外文文献翻译
文献综述
范文
STC10L08XE基于语音识别的智能控制系统开发(6)
表3.2 芯片模式
nLD_Mode 含义
LD_MODE_IDLE 空白模式
LD_MODE_ASR_RUN 语音识别模式
LD_MODE_MP3 MP3播放模式
表3.3 运行状态
nAsrStatus 含义
LD_ASR_NONE 初始化时
LD_ASR_RUNNING 正在运行
LD_ASR_ERROR 运行错误
LD_ASR_FOUNDOK 有识别结果
LD_ASR_FOUNDZERO 无识别结果
值得注意的是,在编程时一定要把对标志位的改变放在函数的正式运行之前。
3.3.1 涉及到的一般函数说明
(1)读函数:
uint8 LD_ReadReg(uint8 ulAddr);
ulAddr为要读取的寄存器地址,函数返回值为指定寄存器中的存储内容。
(2)写函数:
void LD_WriteReg(uint8 ulAddr,uint8 ucVal);
ulAddr为要写入的寄存器地址,ucVal为要写入的数值。
(3)延时函数:
void delay(unsigned long uldata);
该函数内调用空操作函数_nop_();,delay(1)的延迟约为1ms,在程序中使用目的是为了更稳定地工作。
(4)芯片复位:
void LD_reset();
就是对芯片的第47腿(RSTB*)发送低电平,芯片初始化一般在程序的开始进行。当芯片长时间没有响应时,可能是应用程序的设置不合理或者是电源的电压、电流有比较大的波动造成,这时应使用芯片复位的功能,使芯片重新开始工作。
(5)检测DSP忙闲状态:
uint8 LD_Check_ASRBusyFlag_b2();
该函数在100ms内检测DSP的忙闲状态,如果检测到DSP为闲,则返回值1,允许进行下一步ASR动作。
(6)通用初始化:
void LD_Init_Common();
按照指定序列设置寄存器,由于语音识别和MP3播放这两项功能会使用一些公用的资源,所以为了使芯片稳定地工作,在功能切换的时候,必须从通用初始化开始对芯片进行一系列的设置。
3.3.2 语音识别
语音识别的操作顺序是:通用初始化→语音识别用初始化→写入识别列表→开始识别,并准备好中断响应函数,打开中断允许位。
(1)语音识别用初始化:
void LD_Init_ASR()
{
nLD_Mode=LD_MODE_ASR_RUN;
LD_Init_Common();
……
}
将芯片模式设置为语音识别,并首先进行通用初始化,然后才进行语音识别用初始化的寄存器设置。
(2)写入识别列表:
列表的规则是,每个识别条目对应一个特定的编号(1个字节),不同的识别条目的编号可以相同,而且不用连续,但是数值要小于256(00H—FFH)。对应同一编号的,说这两个词会有相同的结果返回。
芯片最多支持50个识别条目,每个识别条目最大限制为79个字节,是标准普通话的汉语拼音(小写),每2个字(汉语拼音)之间用一个空格间隔。
为某个条目指定编号的操作为宏定义#define string x。写入识别列表的函数为:
uint8 LD_AsrAddFixed();
将编号x和条目string分别存入一个一文数组和一个二文数组,其在数组中的位置要对应。当识别列表写入成功时函数返回值1,写入失败返回0值。
写入识别列表的简单流程图如下图:
共7页:
上一页
1
2
3
4
5
6
7
下一页
上一篇:
HFSS双馈圆极化收发天线单元的研究
下一篇:
无线电引信交会试验仿真分析
认知无线电网络中基于双...
基于TCP/IP技术的转向架振动测试系统设计
基于PM2.5浓度的健康出行路径规划及实现
基于涡旋电磁波的新型雷达成像技术研究
基于相关滤波器的长期跟踪算法研究
基于ZigBee协议轨道交通环...
基于QT的图像处理系统设计
辩护律师的作证义务和保...
谷度酒庄消费者回访调查问卷表
高校网球场馆运营管理初探【1805字】
多元化刑事简易程序构建探讨【9365字】
《醉青春》导演作品阐述
浅谈传统人文精神茬大學...
拉力采集上位机软件开发任务书
浅谈新形势下妇产科护理...
国内外无刷直流电动机研究现状
中国古代秘书擅权的发展和恶变