1、LD3320芯片LD3320芯片(图4-1)是一款“语音识别”专用芯片,基于ICRoute公司设计生产。该芯片集成了语音识别处理器和部分外设电路,包括麦克风接口、AD、DA转换器、声音输出接口等。本芯片高效与节能,不需要外接任何如Flash、RAM等的存储芯片,直接集成在功能所需的器件即可以实现语音识别声控人机对话功能。另外,可以任意动态编辑识别的关键词语列表.图4-14.2功能介绍 通过ICRoute公司特有的快速而稳定的优化算法,完成非特定人语音识别。不需用户事先训练和录音,识别准确率95%。 不需要外接任何辅助的Flash芯片,RAM芯片和AD芯片,就可以完成语音识别功能真正提供了单芯片
2、语音识别解决方案。 每次识别最多可以设置50项候选识别句,每个识别句可以是单字,词组或短句,度为不超过10个汉字或者79个字节的拼音串。另一方面,识别句内容可以动态编辑修改,因此可由一个系统支持多种场景。 芯片内部已经准备了16位A/D转换器、16位D/A转换器和功放电路,麦克风、立体声耳机和单声道喇叭可以很方便地和芯片管脚连接。立体声耳机接口的输幽功率为20mW,而喇叭接口的输出功率为550mW,能产生清晰响亮的声音。 支持并行和串行接口,串行方式可以简化与其他模块的连接。可设置为休眠状态,而且可以方便地激活。 支持MP3播放功能,无需外围辅助器件,主控MCU将MP3数据依次送入LD3320
3、芯片内部就可以从芯片的相应PIN输出声音。产品设计可以选择从立体声的耳机或者单声道喇叭来获得声音输出。支持MPEGI(ISO/IEC11172-3), MPEG2(ISO/IEC13818-3)和MPEG 2.5 layer 3等格式。 工作供电为3. 3V,如果用于便携式系统,使用3节AA电池就可以满足供电需要。4.3内部电路的简单逻辑图图4-2电压要求:VDD 数字电路用电源输入 3. 0 V - 3. 3 VVDDIO 数字1/0电路用电源输入 1. 65 V - VDDVDDA 模拟电路用电源输入 3. 0 V - 4. 0 V为简化设计,可统一使用3. 3v电压输入供电。 时钟(Cl
4、ock)芯片必须连接外部时钟电路,频率范围可以是4-48MHz;而芯片内部配备PLL频率合成器,可产生特定的频率供内部模块使用。 复位对芯片的进行复位(高电平)必须在VDDA/VDD/ VDDIO电压都稳定后进行。无论芯片在进行任何运算,复位信号都可以复位芯片为初始状态,并使各寄存器恢复默认值。如果没有设定指令(对寄存器的设置),复位后芯片将进入休眠状态。此后,一个CSB:高电平,片选信号就重新激活芯片进入工作状态。 并行接口本芯片可通过并行方式和外部主CPU连接,此时使用8根数据线(PO-P7),4个控制信号(WRB#,RDB#,CS冰,AO),以及一个中断返回信号(INTB#)。 串行接口
5、串行接口通过SPI协议和外部主CPU连接,首先要将MD接高电平,而将(SPIS:1:)接地。此时只使用4个管脚:片选(SCS冰)、SPI时钟(SDCK)、SPI输入(SDI)和SPI输出(SDO)。 */void LD_Init_ASR()LD_Init_Common();LD_WriteReg(0xBD, 0x00);LD_WriteReg(0x17, 0x48);delay( 10 );LD_WriteReg(0x3C, 0x80);LD_WriteReg(0x3E, 0x07);LD_WriteReg(0x38, 0xff);LD_WriteReg(0x3A, 0x07);LD_Writ
6、eReg(0x40, 0);LD_WriteReg(0x42, 8);LD_WriteReg(0x44, 0);LD_WriteReg(0x46, 8);delay( 1 );/*功能描述: 中断处理函数入口参数: none返 回 值: none其他说明: 当LD模块接收到音频信号时,将进入该函数,判断识别是否有结果,如果没有从新配置寄存器准备下一次的识别。*/void ProcessInt0(void)uint8 nAsrResCount=0;EX0=0;ucRegVal = LD_ReadReg(0x2B);LD_WriteReg(0x29,0) ;LD_WriteReg(0x02,0)
7、;if(ucRegVal & 0x10) &LD_ReadReg(0xb2)=0x21 &LD_ReadReg(0xbf)=0x35) /*识别成功*/ nAsrResCount = LD_ReadReg(0xba);if(nAsrResCount0 & nAsrResCount启动成功, 0启动失败其他说明: 识别顺序如下:1、RunASR()函数实现了一次完整的ASR语音识别流程2、LD_AsrStart() 函数实现了ASR初始化3、LD_AsrAddFixed() 函数实现了添加关键词语到LD3320芯片中4、LD_AsrRun() 函数启动了一次ASR语音识别流程 任何一次ASR识别
8、流程,都需要按照这个顺序,从初始化开始 */uint8 RunASR(void)uint8 i=0;uint8 asrflag=0;for (i=0; i 空闲其他说明: none*/uint8 LD_Check_ASRBusyFlag_b2()uint8 j;uint8 flag = 0;for (j=0; j10; j+)if (LD_ReadReg(0xb2) = 0x21)flag = 1;break;delay(10); return flag;/*功能描述: 启动ASR入口参数: none返 回 值: none其他说明: none*/void LD_AsrStart()LD_Ini
9、t_ASR();uint8 LD_AsrRun()EX0=0;LD_WriteReg(0x35, MIC_VOL);LD_WriteReg(0x1C, 0x09);LD_WriteReg(0xBD, 0x20);LD_WriteReg(0x08, 0x01);delay( 1 );LD_WriteReg(0x08, 0x00);delay( 1 );if(LD_Check_ASRBusyFlag_b2() = 0) /检测LD模块是否空闲return 0;/ LD_WriteReg(0xB6, 0xa); /识别时间 1S/ LD_WriteReg(0xB5, 0x1E); /背景音段时间 3
10、00ms/ LD_WriteReg(0xB8, 10); /结束时间/ LD_WriteReg(0x1C, 0x07); /配置双通道音频信号做为输入信号LD_WriteReg(0x1C, 0x0b); /配置麦克风做为输入信号LD_WriteReg(0xB2, 0xff);delay( 1); LD_WriteReg(0x37, 0x06);delay( 1 );LD_WriteReg(0x37, 0x06);delay( 5 );LD_WriteReg(0x29, 0x10);LD_WriteReg(0xBD, 0x00);EX0=1;return 1;uint8 LD_AsrAddFix
11、ed()uint8 k, flag;uint8 nAsrAddLength;#define DATE_A 5 /*数组二维数值*/#define DATE_B 20 /*数组一维数值*/uint8 code sRecogDATE_ADATE_B = xiao jie, ruo deng,qiang deng,quan mie,liu shui deng,; /*添加关键词,用户修改*/uint8 code pCodeDATE_A = CODE_CMD,CODE_RD,CODE_QD,CODE_QM,CODE_LSD,; /*添加识别码,用户修改*/ flag = 1;for (k=0; kDA
12、TE_A; k+)if(LD_Check_ASRBusyFlag_b2() = 0)flag = 0;break;LD_WriteReg(0xc1, pCodek );LD_WriteReg(0xc3, 0 );LD_WriteReg(0x08, 0x04);delay(1);LD_WriteReg(0x08, 0x00);delay(1);for (nAsrAddLength=0; nAsrAddLengthDATE_B; nAsrAddLength+)if (sRecogknAsrAddLength = 0)break;LD_WriteReg(0x5, sRecogknAsrAddLength);LD_WriteReg(0xb9, nAsrAddLength);LD_WriteReg(0xb2, 0xff);LD_WriteReg(0x37, 0x04);return flag;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1