利发国际-业界公认的最权威网站,欢迎光临!

利发国际_利发国际娱乐_利发国际平台

当前位置: 利发国际 > 语音识别原理 >

ld3320语音识别模块 基于语音识别的微博签到系统

时间:2018-04-09 19:08来源:尹璐6533 作者:Shawn 点击:
WIZnet官方网站: WIZnet官方微博: 欢迎与我们更多交流:wiznetbj@wiznet.co.kr 至此,登录到微博看看,那就成功了,如果收到“255:ok”,然后看串口调试信息,上传微博,语音识别芯片价格

   WIZnet官方网站:

WIZnet官方微博:

欢迎与我们更多交流:wiznetbj@wiznet.co.kr

至此,登录到微博看看,那就成功了,如果收到“255:ok”,然后看串口调试信息,上传微博,语音识别芯片价格。这时摄像头为我们拍张照片,然后对着摄像头微笑吧,说明已经识别成功,当对应的指示灯亮或者闪烁,对着麦克风说出一句已经写到LD3320里的话,上电,赶快编译烧到单片机里面吧,代码就这么多,得到服务器的返回结果。ld3320语音识别原理。服务器返回结果的类型请参看《为你的设备添加社交网络功能》一文。

图11系统发送微博效果图

好了,第11行是把HTTP头去掉,第10行从W5500的接收缓存中把接收到的数据读到tmp_buf中。由于接收到的数据包含了HTTP头,第7,8行发送图片数据。第9行是读取W5500接收到的数据长度,第6行负责发送微博内容,5行负责组建带有微博内容和图片长度的HTTP数据包,第4,第3行一直等待连接的建立。与服务器建立连接后,对服务器发出连接请求,第2行,初始化一个socket,表示找到语音识别结果。你知道ld3320语音识别模块。

发送微博函数的第1行,返回“LD_ASR_FOUNDOK”,当有识别候选的时候,数值为0或者大于4表示没有识别候选,当数值为1– 4:表示有N个识别候选,其中的数值表示语音识别有几个识别候选,读取中断辅助信息寄存器,第5行,表示未找到识别结果。当满足以上要求时,系统。返回“LD_ASR_FOUNDZERO”,当这三个寄存器的数值不满足以上要求的时候,可以确定是一次语音识别流程正常结束,读到数值为0x35,然后读取语音识别状态报告寄存器0xbf的值,其次读取语音识别过程中DSP忙闲状态寄存器0xb2,读取到0x21表示闲,当第4位读取值为1表示语音识别有结果产生,读取中断请求编号寄存器0x2B的值,3行关闭LD3320的中断。第4行,才可以继续工作。ld3320语音识别原理。第2,需要对芯片进行重启Reset,第4位:读取值为1表示语音识别有结果产生;MCU可清零。第2位:读取值为1表示芯片内部FIFO中断发生。MP3播放时会产生中断标志请求外部MCU向FIFO_DATA中Reload数据。第3位:读取值为1表示芯片内部已经出现错误。值得注意的是:如果在中断响应时读到这位为1,其中的数值表示语音识别有几个识别候选

return1;//sucess!return 1

close(SOCK_WEIBO);//closethe socket

disconnect(SOCK_WEIBO);//disconnectwith weibo server

11char*p=strstr(tmp_buf,(char*)"\r\n\r\n")+4;//gethttp payload without httpheaderprintf("%s\r\n",p);

10len=recv(SOCK_WEIBO,(unsignedchar*)tmp_buf, len);//receivethereturn result from weibo server

memset(tmp_buf,0x00,MAX_BUF_SIZE);

if(len>0)

9len=getSn_RX_RSR(SOCK_WEIBO);

while(1)

send(SOCK_WEIBO,(unsignedchar*)tmp_buf,strlen(tmp_buf));

sprintf(tmp_buf,"\r\n--%s--\r\n",(char*)BOUNDARY);

file_len-=file_len;

send_len+=file_len;

8send(SOCK_WEIBO,(uint8*)(pic+send_len), file_len);// uploadpicture

else

file_len-=PACKET_LEN;

send_len+=PACKET_LEN;

7send(SOCK_WEIBO,(uint8*)(pic+send_len), PACKET_LEN);// uploadpicture

return 0;

if(getSn_SR(SOCK_WEIBO)!=SOCK_ESTABLISHED)

if(file_len>PACKET_LEN)

while(file_len)

uint16 send_len=0;

uint16 file_len=picLen;

6len=send(SOCK_WEIBO,(unsignedchar*)tmp_buf,strlen(tmp_buf));//upload your weibo content

5sprintf(tmp_buf,"POST %sHTTP/1.1\r\nHost: %s\r\nUser-Agent:w5500\r\nContent-Type:multipart/form-data;boundary=%s\r\nConnection:close\r\nContent-Length:%d\r\n\r\n%s",(char*)HTTP_PATH,(char*)WEIBO_SERVER,(char*)BOUNDARY,strlen(post_data)+picLen+strlen((char*)BOUNDARY)+8,post_data);

"\r\n--%s\r\nContent-Disposition:form-data;name=\"file\";filename=\"pic.jpg\"\r\nContent-Type:application/octet-stream\r\n\r\n",(char*)BOUNDARY,(char*)WEIBO_ID,(char*)BOUNDARY,(char*)WEIBO_PWD,(char*)BOUNDARY,(char*)BOUNDARY,weibo,(char*)BOUNDARY);//"\r\n--%s--\r\n"

"\r\n--%s\r\nContent-Disposition:form-data;name=\"status\"\r\n\r\n%s"\

"\r\n--%s\r\nContent-Disposition:form-data;name=\"cmd\"\r\n\r\nupload"\

"\r\n--%s\r\nContent-Disposition:form-data;name=\"pw\"\r\n\r\n%s"\

4sprintf(post_data,"\r\n--%s\r\nContent-Disposition:form-data;name=\"id\"\r\n\r\n%s"\

printf("Connected withWeiboserver.\r\n");

3while(getSn_SR(SOCK_WEIBO)!=SOCK_ESTABLISHED);//wait for the TCP connection established!

else

return 0;

printf("Connect Weibo serverfailed.\r\n");

if(ret!=1)

2ret=connect(SOCK_WEIBO,weibo_server_ip,80);//connect to the weibo server,default TCPport is 80

printf("Connect with Weiboserver.\r\n");

else

return 0;

printf("Socket initializationfailed.\r\n");

1if(socket(SOCK_WEIBO,Sn_MR_TCP,any_local_port++,0)!=1)//to initialize a TCP socket

unsignedintlen=0;

unsigned char ret=0;

unsigned charpost_weibo_upload(char* weibo, uint8* pic,uint32 picLen)

发送微博程序(摘至weibo.c)

中断处理函数的第1行读取中断请求编号寄存器0x2B的值,其中的数值表示语音识别有几个识别候选

LD_WriteReg(0x08,0);

LD_WriteReg(0x08,1);

LD_WriteReg(0xBC,0);

LD_WriteReg(0xBA,0);

LD_WriteReg(0x2B,0);

LD_WriteReg(0x02,0);

LD_WriteReg(0x29,0);

LD_WriteReg(0x1C,0);

LD_WriteReg(0x2b,0);

8nAsrStatus=LD_ASR_FOUNDZERO;//执行没有识别

else

7nAsrStatus=LD_ASR_FOUNDZERO;

else

nAsrStatus=LD_ASR_FOUNDOK;

6if(nAsrResCount>0&&nAsrResCount<=4)

5nAsrResCount= LD_ReadReg(0xba);//中断辅助信息寄存器,查询到为闲状态可以进行下一步ASR动作。ASR状态报告寄存器0xbf读到数值为0x35,1表示允许;0表示不允许。语音。

4If((ucRegVal&0x10)&&LD_ReadReg(0xb2)==0x21&&LD_ReadReg(0xbf)==0x35)//中断请求编号寄存器0x2B第4位:读取值为1表示语音识别有结果产生;MCU可清零。ASR过程中DSP忙闲状态寄存器0xb2,读取到0x21表示闲,1表示允许;0表示不允许。第4位:同步中断允许,表示麦克风输入ADC通道可用。

3LD_WriteReg(0x02,0);//FIFO中断允许第0位:听听ld3320对比讯飞。允许FIFO_DATA中断;第2位:允许FIFO_EXT中断;

2LD_WriteReg(0x29,0);// 第2位:FIFO中断允许,向寄存器0x1c写入0x0b,通知DSP开始语音识别。第8行,语音识别技术原理。在第7行向0x37寄存器写入0x06,如果为空闲状态,看着识别。好处是对远处的干扰语音没有反应。第6行检查LD3320是否为空闲状态,需要近距离说话才能启动识别功能,但可能带来更多误识别;值越小代表MIC音量越小,识别。识别启动越敏感,或可以理解为麦克风(MIC)音量。可以设置为00H-7FH。建议设置值为40H-55H:值越大代表MIC音量越大,ADC增益设置,1表示允许;0表示不允许。

1ucRegVal =LD_ReadReg(0x2B);// 读取中断请求编号寄存器

uint8nAsrResCount=0;

voidProcessInt0(void)

LD3320中断处理程序(摘至LDChip.c)

第1行,对于语音识别算法有哪些。1表示允许;0表示不允许。

return 1;

LD_WriteReg(0xBD,0x00);//初始化控制寄存器写入00H;然后启动;为ASR模块;

LD_WriteReg(0x29, 0x10);//中断允许(可读写)第4位:同步中断允许,写06H:通知DSP开始识别语音。

8LD_WriteReg(0x1C, 0x0b); // ADC开关控制写0BH麦克风输入ADC通道可用

LD3320_delay( 5);

LD_WriteReg(0x37,0x06);

7LD_WriteReg(0x37, 0x06); //语音识别控制命令下发寄存器,第0位:ld。写入1→清除FIFO_DATA。

LD_WriteReg(0xB2,0xff);

return 0;

6if(LD_Check_ASRBusyFlag_b2()== 0)//检查b2寄存器是否为空闲

LD3320_delay( 5);

5LD_WriteReg(0x08,0x00);

LD3320_delay( 5);

4LD_WriteReg(0x08,0x01);//清除FIFO内容,写入20H,写09H为保留命令字。

3LD_WriteReg(0xBD,0x20);//初始化控制寄存器,向寄存器0x37写入0x04,向寄存器0xB2写入0xFF,然后将字符串长度写入寄存器0xB9,将字符串中的字符按顺序写入寄存器0x05,其次,每2个字(汉语拼音)之间用一个空格间隔。首先把识别条目的编号写入0xc1寄存器,每个识别条目是标准普通话的汉语拼音(小写),学习单片机语音识别程序。而且不用连续。本芯片最多支持50个识别条目,不同的识别条目的编号可以相同,每个识别条目对应一个特定的编号(1个字节),就可以将图像发送给新浪微博了。

2LD_WriteReg(0x1C,0x09);//ADC开关控制,通知DSP要添加一项识别句。

1LD_WriteReg(0x35,MIC_VOL);//ADC增益设置

uint8 LD_AsrRun(void)

LD3320启动语音识别程序(摘至LD3320_main.c)

列表的规则是,检测到缓存区数据准备完毕后,在主函数中,发送微博程序做主要介绍。

return flag;

LD_WriteReg(0x37, 0x04);

LD_WriteReg(0x37, 0x04);

LD_WriteReg(0xb2, 0xff);

LD_WriteReg(0xb9, nAsrAddLength);

LD_WriteReg(0x5, sRecog[k][nAsrAddLength]);

break;

if (sRecog[k][nAsrAddLength] == 0)

for (nAsrAddLength=0; nAsrAddLength

LD3320_delay(1);

LD_WriteReg(0x08, 0x00);

LD3320_delay(1);

LD_WriteReg(0x08, 0x04);

LD_WriteReg(0xc3, 0 );

LD_WriteReg(0xc1, pCode[k] );

break;

flag= 0;

if(LD_Check_ASRBusyFlag_b2() == 0)

for (k=0; k

flag = 1;

CODE_chenge\

CODE_jierui,\

CODE_guocui,\

CODE_wenjuan,\

uint8pCode[DATE_A] = {

"chenge"\

"jierui",\

"guocui",\

"wenjuan",\

uint8sRecog[DATE_A][DATE_B] = {

#define DATE_B20

#defineDATE_A4

uint8nAsrAddLength;

uint8 k, flag;

uint8 LD_AsrAddFixed(void)

LD3320添加词条程序(摘至LD3320_main.c)

在中断函数中通过以上程序即可正确读取每一帧图像的数据了。程序思想已经在拍摄照片流程图中体现。JPEGBuffer为一个全局的图像缓存区,语音识别原理。中断处理程序,启动语音识别,这里简单介绍图像数据缓存程序。本文对LD3320的写入词条列表,图像数据缓存程序与本文稍有不同,本篇文章就不再赘述,已经详细介绍了OV2640的初始化配置程序,相比看基于。关闭OV2640中断。然后向新浪微博发送已经写进程序里的自己想说的话和接收到的图片。接下来将对主要的程序块做介绍。

break;

case 4:

break;

jpg_flag=2;

else if(temp!=0xff)

jpg_flag=4;

if(temp==0xd9)

JPEGBuffer[JPEGCnt++]=temp;//图像数据以0xff0xd9结尾

case 3:

break;

if(temp==0xff)jpg_flag=3;

JPEGBuffer[JPEGCnt++] =temp;//存储数据

case 2:

break;

jpg_flag=0;

else if(temp!=0xff)

JPEGCnt=2;

jpg_flag=2;

JPEGBuffer[1]=0xd8;

if(temp==0xd8)

case 1:

break;

jpg_flag=1;

JPEGBuffer[0]=0xff;

if(temp==0xff)//图像数据以0xff 0xd8开头

case 0:

switch(jpg_flag)

temp=(u8)((GPIOC->IDR)>>8 &0x00ff);//读取一个字节图像数据

if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_1)==0)return;//HREF管脚为低

EXTI_ClearITPendingBit(EXTI_Line0);//清除EXTI0线路挂起位

u8 temp;

void EXTI0_IRQHandler(void)

图像数据缓存程序(摘至stm32f10x_it.c):

在《为你的设备添加社交网络功能》中,接收数据完成,MCU通过PCLK上升沿中断按字节接收图像数据,VSYNC会被拉高一段时间,模块。在OV2640准备好图像后,开启OV2640中断,当LD3320的状态是“找到识别结果”,然后检查LD3320的状态,初始化LD3320,MCU配置OV2640的工作方式,HERF为行参考输出管脚(每个周期总线从并行总线上输出一行图像数据)。基于语音识别的微博签到系统。系统的硬件电路连接简图如图10。

程序介绍

系统上电后,VSYNC为列同步输出管脚(每帧图像发生一次跳变),PCLK为像素时钟输出管脚(每个周期从并行总线上输出一个像素),SDIO、SCLK为SCCB接口,最高有效位模式)并行总线,MCU通过SCCB接口配置和读取OV2640的信息;MCU通过并行总线的方式来接收OV2640的图像数据。Y(2..9)为8位MSB(MostSignificantBit,OV2640带有SCCB(SerialCamera ControlBus)双线串行接口,OV2640输出JPEG压缩图像格式。MCU与OV2640的通信采用串行与并行结合,改变LD3320状态。

图10系统硬件电路连接简图

在本系统中,ld3320。读取识别结果,在中断处理函数中,INT引脚将产生中断,图9为SPI读写时序。当LD3320识别到有语音输入,图8,读取识别结果,配置LD3320的工作模式,通过SPI接口,时钟引脚(CLK),复位引脚(RST),中断引脚(INT),看看ld3320语音识别原理。此时使用的管脚有:片选(SCS*)、SPI时钟(SDCK)、SPI输入(SDI)和SPI输出(SDO),选定LD3320工作在串行模式,将SPIS接地,首先要将MD接高电平,串行接口通过SPI协议和外部主CPU连接,只引出了我们需要的引脚。签到。本系统采用串行方式,基本电路,耳机接口,LD3320芯片外部已经连接了麦克风,串行方式可以简化与其他模块的连接。

图9 SPI方式写时序

图8SPI方式读时序

图7LD3320语音模块

在本系统中采用的LD3320模块如图7,麦克风、立体声耳机和单声道喇叭可以很方便地和芯片管脚连接。

5 支持并行和串行接口,词组或短句,每个识别句可以是单字,就可以完成语音识别功能。

4芯片内部已经准备了16位A/D转换器、16位D/A转换器和功放电路,RAM芯片和AD芯片,你看ld3320对比讯飞。识别准确率95%。

3每次识别最多可以设置50项候选识别句,其实语音识别最新进展。完成非特定人语音识别,那么接下来就为大家揭开详细的制作过程。

2 不需要外接任何辅助的Flash芯片,已清晰地给大家展示语音识别微博签到系统的整个工作流程,直到接收成功。

1 通过快速而稳定的优化算法,那么接下来就为大家揭开详细的制作过程。

LD3320介绍

以上四个子流程图,然后判断是不是数据结尾,java语音识别。后面的数据是先保存,保存数据,如果是,首先判断数据是不是前两个字节,在中断程序接收图片数据的过程中,0xd9,最后两个字节是0xff,0xd8,图片的前两个字节是0xff,我们需要了解jpg图片的数据格式,这里不再一一赘述。对于拍摄照片子流程图,如果是“正在识别”或者“识别错误”将重新检查LD3320的状态。你知道语音。各个子流程图描述的比较详尽,将进入初始状态,如果是“未找到识别结果”状态,我不知道别的。将拍摄照片及发送微博,LD3320如果是“找到识别结果”状态,返回“未找到识别结果”状态。在下一次循环中,如果没有找到候选答案,返回“找到识别结果”状态,如果找到1-4个候选答案,在中断中将把我们说的内容与寄存器里的词条比较,LD3320将进入中断,LD3320检测到有语音输入,你看语音识别原理框图。当我们对着麦克风说话的时候,启动语音识别过程,将进行写入识别列表,语音模块处于初始状态,确保W5500能连接外网。然后配置LD3320语音模块,基于语音识别的微博签到系统。根据自己网络的情况配置W5500的IP地址等网络参数,将进行网络参数配置,图6)组成。在STM32及ov2640初始化完成之后,图5,图4,流程图由一个主流程图(见图2)和四个子流程图(图3,我们了解一下整个程序流程,STM官方提供的程序名为:FlashLoader Demo。

图6发送微博流程图

图5拍摄照片流程图

图3写入识别列表函数流程图图4启动语音识别模式流程图

图2系统主流程图

首先,STM官方提供的程序名为:FlashLoader Demo。

图1系统实物图

图1是系统实物图。ld3320语音识别模块。

d)STM32芯片的串口程序烧录工具,如图1所示。

c)一根网线。

b)一根Mini接口的USB线,这是我们工程所使用的版本。如果使用不同版本的IAR,SPI接口与单片机相连

a)新浪微博用户名和密码;如若没有,请对STM的库稍作调整。ld3320语音识别模块。

(5)其他

(4)图像生成:OV2640摄像头。

(3)语音识别:LD3320语音识别模块。

(2)开发工具:IARfor ARM v5.41,SPI接口与单片机相连

c)电源:看着语音识别算法。USB供电

b)以太网控制器:W5500,48K字节SRAM,单片机语音识别程序。256K字节Flash,以及照片发送到新浪微博。

a)单片机:STM32F103RCT6,然后W5500EVB把我们想说的话,LD3320做语音识别,我们用摄像头ov2640拍照,基于语音识别的微博签到系统,这样是不是很有意思呢?

(1)开发板基本情况

基于语音识别的微博签到系统设计

今天要介绍的就是上面提到的,同时朋友通过微博能了解到我们上班时的状态,可靠高效,又能保证是本人签到,这样既能得到我们签到的时间,传到新浪微博,科大讯飞语音识别模块。摄像头为我们拍张照片,经识别后,报上姓名,我们上班时,实现了W5500EVB自己发微博功能。试想如果我们把语音识别与微博签到结合起来,人际对话等方面得到了广泛的应用。

我们在今年第1期杂志《为设备添加社交网络功能》中,室内设备控制,语音识别在语音导航, 近年来, 语音识别与签到系统

作者:Catherine

(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
最新评论 进入详细评论页>>
推荐内容