语音模块YS_LDV7源码分析

本文主要分析了YS_LDV7语音模块的文件结构,包括main.c中主函数及中断处理,LDchip.c和LDchip.h中的语音识别流程。还详细介绍了如何修改语音口令,涉及LD_AsrAddFixed()函数中关键词的拼音表示和识别码的宏定义更新,以及main.c中User_handle()函数的串口输出调整。
摘要由CSDN通过智能技术生成

一、文件结构

main.c —— Main.c主函数、LED灯测试、单片机初始化、延时函数、
                     中断函数(调用LDChip.c中的中断函数)、
                     用户执行函数(对识别到的结果进行相应的串口输出)

config.h —— 包含的头文件

LDchip.c 、LDchip.h —— LD模块的复位、命令初始化、功能初始化
                     中断函数(当接收到音频信号,进入该函数,判断识别是否有结果)
                     运行识别流程(初始化、添加关键词、启动语音识别)
                     检测LD模块是否空闲、获取识别结果

Reg_Rw.c Reg_Rw.h —— 寄存器的读写操作

二、分析代码(从main.c函数出发)

	Led_test()  LED灯测试(闪烁三次)
	MCU_init()单片机初始化 
	LD_Reset() 复位LD模块
	UartIni()   串口初始化
	nAsrStatus 表示程序运行的状态,初始化为0(使用宏LD_ASR_NONE来表示0),共有4种状态

	#ifdef TEST  表示若有定义该宏则执行该范围代码,无该宏则不执行
	#endif

	switch(nAsrStatus)判断程序运行状态
	1. LD_ASR_RUNING 表示正在识别中
	2. LD_ASR_ERROR  表示芯片内部出现错误
		以上两种情况不执行代码
	3. LD_ASR_NONE   表示没有在识别
		执行代码:
主要器件介绍———LD3320 LD3320芯片是一款“语音识别”专用芯片,由ICRoute公司设计生产。该芯片集成了语音识别处理器和一些外部电路,包括AD、DA转换器、麦克风接口、声音输出接口等。本芯片在设计上注重节能与高效,不需要外接任何的辅助芯片如Flash、RAM等,直接集成在现有的产品中即可以实现语音识别/声控/人机对话功能。并且,识别的关键词语列表是可以任意动态编辑的。 功能介绍 通过ICRoute公司特有的快速而稳定的优化算法,完成非特定人语音识别。不需要用户事先训练和录音,识别准确率95%。 不需要外接任何辅助的Flash芯片,RAM芯片和AD芯片,就可以完成语音识别功能。真正提供了单芯片语音识别解决方案。 每次识别最多可以设置50项候选识别句,每个识别句可以是单字,词组或短句,长度为不超过10个汉字或者79个字节的拼音串。另一方面,识别句内容可以动态编辑修改,因此可由一个系统支持多种场景。 芯片内部已经准备了16位A/D转换器、16位D/A转换器和功放电路,麦克风、立体声耳机和单声道喇叭可以很方便地和芯片管脚连接。立体声耳机接口的输幽功率为20mW,而喇叭接口的输出功率为550mW,能产生清晰响亮的声音。 支持并行和串行接口,串行方式可以简化与其他模块的连接。 可设置为休眠状态,而且可以方便地激活。 支持MP3播放功能,无需外围辅助器件,主控MCU将MP3数据依次送入LD3320芯片内部就可以从芯片的相应PIN输出声音。产品设计可以选择从立体声的耳机或者单声道喇叭来获得声音输出。支持MPEGI(ISO/IEC11172-3),MPEG2(ISO/IEC13818-3)和MPEG2.5layer3等格式。 工作供电为3.3V,如果用于便携式系统,使用3节AA电池就可以满足供电需要。 电路说明 以下为内部电路的简单逻辑图(图2—3): 详细说明如下: 电压要求:VDD数字电路用电源输入3.0V-3.3V VDDIO数字1/0电路用电源输入1.65V-VDD VDDA模拟电路用电源输入3.0V-4.0V 建议用户可以用统一的3.3v电压输入以简化设计。数字电压和模拟电压进 行隔离可以使得芯片有更好的效果。 芯片管脚输入电压范围:高电压(逻辑“1”):0.7;lcVDDIO'VDDIO 低电压(逻辑“0”):0'0.3~VDDIO 因此,开发者需要保证自己使用的主控MCU同样工作在3.3v,保证主控MCU向LD3320的管脚输出的高电压不超过3.3V。 时钟(Clock) 芯片必须连接外部时钟,可接受的频率范围是4-48MHz;而芯片内部还有PLL频率合成器,可产生特定的频率供内部模块使用。 复位 对芯片的复位信号(RSTB:1:)必须在VDD/VDDA/VDDIO都稳定后进行。无论芯片正在进行何种运算,复位信号都可以使它恢复初始状态,并使各寄存器复位。如果没有后续的指令(对寄存器的设置),复位后芯片将进入休眠状态。此后,一个CSB:1:信号就可以重新激活芯片进入工作状态。 并行接口 本芯片可通过并行方式和外部主CPU连接,此时使用8根数据线(PO-P7),4个控制信号(WRB#,RDB#,CS冰,AO),以及一个中断返回信号(INTB#)。 串行接口 串行接口通过SPI协议和外部主CPU连接,首先要将MD接高电平,而将(SPIS:1:)接地。此时只使用4个管脚:片选(SCS冰)、SPI时钟(SDCK)、SPI输入(SDI)和SPI输出(SDO)。 寄存器 对芯片的设置和命令,包括传送数据和接受数据,都是通过对寄存器的操作来完成的。例如进行语音识别时,设置识别的关键词语列表,设定芯片的识别模式,谀别完成后获得识别结果都是通过读/写寄存器来完成。播放声音时,就是将MP3格式的数据循环放入FIFO对应的寄存器。(识别结果是通过寄存器返回识别出的关键词语在关键词语列表中的排列序号Index数值,该Index数值是在设置关键词语列表时指定)。 喇叭音量的外部控制 除了特定寄存器来控制音量以外,芯片外部的电路可以控制喇叭的音量增益。使用的是EPI、EP2、EP3对应的管脚。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值