基于语音识别的微博签到系统
LD_WriteReg(0xBD, 0x00); } 第1行,ADC增益设置,或可以理解为麦克风(MIC)音量。可以设置为00H-7FH。建议设置值为40H-55H:值越大代表MIC音量越大,识别启动越敏感,但可能带来更多误识别;值越小代表MIC音量越小,需要近距离说话才能启动识别功能,好处是对远处的干扰语音没有反应。第6行检查LD3320是否为空闲状态,如果为空闲状态,在第7行向0x37寄存器写入0x06,通知DSP开始语音识别。第8行,向寄存器0x1c写入0x0b,表示麦克风输入ADC通道可用。 LD3320中断处理程序(摘至LDChip.c) voidProcessInt0(void) { uint8nAsrResCount=0; 1 2 3 4 5 6 nAsrStatus=LD_ASR_FOUNDOK; else 7nAsrStatus=LD_ASR_FOUNDZERO; } else { 8 } LD_WriteReg(0x2b,0); LD_WriteReg(0x1C,0); LD_WriteReg(0x29,0); LD_WriteReg(0x02,0); LD_WriteReg(0x2B,0); LD_WriteReg(0xBA,0); LD_WriteReg(0xBC,0); LD_WriteReg(0x08,1); LD_WriteReg(0x08,0); } 中断处理函数的第1行读取中断请求编号寄存器0x2B的值,第4位:读取值为1表示语音识别有结果产生;MCU可清零。第2位:读取值为1表示芯片内部FIFO中断发生。MP3播放时会产生中断标志请求外部MCU向FIFO_DATA中Reload数据。第3位:读取值为1表示芯片内部已经出现错误。值得注意的是:如果在中断响应时读到这位为1,需要对芯片进行重启Reset,才可以继续工作。第2,3行关闭LD3320的中断。第4行,读取中断请求编号寄存器0x2B的值,当第4位读取值为1表示语音识别有结果产生,其次读取语音识别过程中DSP忙闲状态寄存器0xb2,读取到0x21 发送微博程序(摘至weibo.c) unsigned char post_weibo_upload(char* weibo, uint8* pic,uint32 picLen) { unsigned char ret=0; unsignedintlen=0; 1 printf("Socket initialization failed."); return 0; else printf("Connect with Weibo server."); 2 if(ret!=1) printf("Connect Weibo server failed."); return 0; else 3while(getSn_SR(SOCK_WEIBO)!=SOCK_ESTABLISHED); printf("Connected with Weiboserver."); 4 "--%sContent-Disposition:form-data; name="pw"%s" "--%sContent-Disposition:form-data; name="cmd"upload" "--%sContent-Disposition:form-data; name="status"%s" "--%sContent-Disposition:form-data; name="file"; filename="pic.jpg"Content-Type:application/octet-stream",(char*)BOUNDARY,(char*)WEIBO_ID,(char*)BOUNDARY,(char*)WEIBO_PWD,(char*)BOUNDARY,(char*)BOUNDARY,weibo,(char*)BOUNDARY);//"--%s--" 5
语音识别签到系统STM32F103RCT 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)