语音识别芯片LD3320高阶秘籍
- 格式:pdf
- 大小:251.37 KB
- 文档页数:12
西格玛科技语音识别模块用户手册硬件版本:Voice_V1.0By hixusir2014年8月21日前言及声明感谢您购置西格玛科技开发的SigmaTech_voice_V1.0非特定人语音识别模块(以下简称语音模块)。
本用户手册针对软、硬件应用开发工程师编写,包含硬件接口示意图、管脚定义、学习例程等内容。
为了确保应用开发顺利进行,在进行学习之前请仔细阅读手册。
我们已尽最大努力以保证本手册的准确性。
然而,如您有任何疑问或发现错误,可直接与我们联系,我们将十分感激。
本文件包含西格玛科技的私有信息,在没有西格玛科技书面许可的情况下,第三方不得使用或随意泄露;当然,任何在没有授权、特殊条件、限制或告知的情况下对此信息的复制和擅自修改都是侵权行为。
本店承接毕业设计、中小项目开发,价格公道。
目前已经有二十几个成功案例,擅长领域:zigebee无线传感网络,labview上位机开发,语音识别,GSM发短信打电话,单片机开发,matlab等。
本店另有大学生宿舍神器酷毙灯、智能插座、定时插座、蓝牙防丢器、智能家居红外控制器等成品在售。
技术支持: 阿里旺旺:xu12316;QQ交流群:371191587;邮箱:hixusir@,淘宝店地址是 本模块的供电电压是3.3V,切记!利用USB转TTL下载板下载程序时请选择3.3V档。
因上电烧毁,您需要支付材料费用和运费维修。
1.概述非特定人语音识别模块以LD3320 语音识别芯片为核心。
LD3320 芯片是一款“语音识别”专用芯片。
该芯片高度集成化,外围只需要增加少量的器件就可以构成完整的语音识别方案。
该芯片是基于非特定人语音识别,任何人只要说出的正确的识别语句,都可被识别,而不需要事先进行训练。
识别语句以汉语拼音字符串的形式送入芯片进行识别。
每条识别语句可以由单字、词组、短句组成。
每条识别语句最多支持10 个汉字或79 个字节的拼音串。
受不同的麦克风灵敏度的影响,使用不同的麦克风可能在识别率和识别距离方面会有不同。
1. 1. 如何用目前的如何用目前的LD3320实现简单的外文单词识别实现简单的外文单词识别??目前推出的LD3320支持的是非特定人中文语音识别。
有很多开发者询问是否可以支持简单的外文单词的识别,或者是一些纯方言发音的词汇的识别。
在没有正式推出其他语种的语音识别芯片之前,开发者可以用LD3320来部分满足这一需求:用拼音标注的办法来标出所要识别的外文单词或者是存方言发音的词汇。
就如同刚刚学英语时在课本上用拼音来标注英文单词读音一样。
具体的描述可以参考语音识别芯片LD3320高阶秘籍.pdf 中第六项”用拼音标注外文或者方言“。
3. 3. 用用LD3320语音识别芯片开发产品语音识别芯片开发产品,,需要购买或者使用其他软件或者工具么需要购买或者使用其他软件或者工具么?? 开发者不需要其他任何附加的软件或者工具,只需要在自己产品的主控MCU 中进行编程,就可以完成对LD3320的开发。
主控MCU 对于LD3320的控制,是通过读写LD3320的寄存器来完成。
具体的寄存器说明见“LD332X LD332X 开发手册开发手册开发手册.pdf .pdf ”。
开始时是设置寄存器对LD3320进行初始化。
然后是通过设置寄存器,把要识别的关键词语的拼音串传入LD3320芯片。
再通过设置寄存器控制LD3320开始启动一次识别过程,AD 开始工作采集用户声音,在得到识别结果后,以中断的形式通知主控MCU。
此时可以从特定寄存器中读取到识别结果。
开发者只需要熟悉自己产品的主控MCU 编程,就可以完成语音识别功能的设计和使用。
不再需要其他任何的软件,工具,或者是和语音识别算法相关的采集语音数据训练语音数据等工作。
这样,可以协助开发者以最快的速度把语音识别功能集成进产品中,并取得良好的识别效果。
4. 4. 是否有语音识别模块供快速开发验证使用是否有语音识别模块供快速开发验证使用是否有语音识别模块供快速开发验证使用??为了方便开发者快速开发使用LD3320语音识别芯片,ICRoute 推出语音识别模块M -LD3320。
语音识别芯片LD3320介绍语音识别芯片LD3320驱动程序1、芯片复位复位就是对LD3320芯片的第47腿(RSTB*)发送低电平,然后需要对片选CS做一次拉低→拉高的操作,以激活内部DSP。
按照以下顺序:void LD_reset(){RSTB=1;delay(1);RSTB=0;delay(1);RSTB=1;delay(1);CSB=0;delay(1);CSB=1;delay(1);}delay(1)是为了更稳定地工作。
初始化一般在程序的开始进行,如果有时芯片的反应不太正常,也可用这个方法恢复芯片初始状态。
2、语音识别语音识别的操作顺序是:语音识别用初始化(包括通用初始化)→写入识别列表→开始识别,并准备好中断响应函数,打开中断允许位。
这里需要说明一下,如果不用中断方式,也可以通过查询方式工作。
在“开始识别”后,读取寄存器B2H的值,如果为21H就表示有识别结果产生。
在此之后读取候选项等操作与中断方式相同。
(1)通用初始化按照以下序列设置寄存器。
void LD_Init_Common(){bMp3Play=0;LD_ReadReg(0x06);LD_WriteReg(0x17,0x35);delay(10);LD_ReadReg(0x06);LD_WriteReg(0x89,0x03);delay(5);LD_WriteReg(0xCF,0x43);delay(5);LD_WriteReg(0xCB,0x02);/*PLL setting*/LD_WriteReg(0x11,LD_PLL_11);if(nLD_Mode==LD_MODE_MP3){LD_WriteReg(0x1E,0x00);//!!注意,下面三个寄存器,会随晶振频率变化而设置不同//!!注意,请根据使用的晶振频率修改参考程序中的CLK_INLD_WriteReg(0x19,LD_PLL_MP3_19);LD_WriteReg(0x1B,LD_PLL_MP3_1B);LD_WriteReg(0x1D,LD_PLL_MP3_1D);}else{LD_WriteReg(0x1E,0x00);//!!注意,下面三个寄存器,会随晶振频率变化而设置不同//!!注意,请根据使用的晶振频率修改参考程序中的CLK_INLD_WriteReg(0x19,LD_PLL_ASR_19);LD_WriteReg(0x1B,LD_PLL_ASR_1B);LD_WriteReg(0x1D,LD_PLL_ASR_1D);}LD_WriteReg(0xCD,0x04);LD_WriteReg(0x17,0x4c);delay(5); LD_WriteReg(0xB9,0x00);LD_WriteReg(0xCF,0x4f);LD_WriteReg(0x6F,0xFF);}(2)语音识别用初始化按照以下序列设置寄存器。
信19与电10China Computer&Communication 较件看茨与惑用2020年第20期基于LD3320的语音识别智能家居控制系统的设计宋朝霞舒瑞康(武昌工学院,湖北武汉430065)摘要:本文采用LD3320模块进行语音识别和处理,基于STM32提出一种语音识别智能家居控制系统,实现对家居的控制.该设计不需要借助互联网、移动设备,即可在无负担的情况下通过语音操控家中的各种常用家居,不仅能够为家庭安全提供全面保障,还能为残障人士提供方便.关键词:LD3320;语音识别;智能家居控制中图分类号:TN912.34;TP273;TU855文献标识码:A文章编号:1003-9767(2020)20-105-02 Design of Smart Home Control System Based on LD3320Speech RecognitionSong Zhaoxia,Shu Ruikang(Wuchang Institute of Technology,Wuhan Hubei430065,China)Abstract:In this paper,LD3320module is used for speech recognition and processing,and a speech recognition intelligent home control system based on STM32is proposed to realize the control of home.The design does not need the help of the Internet and mobile devices.It can control all kinds of common home in the home through voice without burden.It can not only provide comprehensive protection for family safety,but also provide convenience for the disabled.Key words:LD3320;speech recognition;smart home control0引言随着生活水平的不断提高,人们对家庭的家居需求提出了更高的要求,一个安全舒适的居住环境已经成为很多人的追求。
基于LD3320语音识别专用芯片实现的语音控制一、本文概述随着科技的快速发展,与物联网技术的结合使得语音识别技术成为了当今社会的热门话题。
在各种智能设备中,语音识别技术使得人机交互变得更加直观和便捷。
LD3320作为一款专为语音识别设计的芯片,凭借其高性能、低功耗和易于集成的特点,被广泛应用于各类智能语音控制系统中。
本文旨在探讨基于LD3320语音识别专用芯片实现的语音控制技术的原理、设计、实现及应用。
我们将首先介绍LD3320芯片的基本特性和工作原理,然后详细阐述如何利用该芯片实现语音信号的采集、预处理、特征提取以及识别等关键步骤,最后通过实例展示LD3320在语音控制领域的应用及其性能表现。
本文旨在为读者提供一个全面而深入的理解,以期推动LD3320语音识别专用芯片在更多领域的应用和发展。
二、LD3320语音识别专用芯片概述LD3320是一款专为语音识别设计的专用芯片,以其高效、稳定和可靠的性能,在语音控制领域得到了广泛的应用。
该芯片内置了先进的声学模型和算法,使得它能够快速准确地识别出人的语音指令,并将其转化为机器可识别的信号,从而实现对各种设备的控制。
LD3320芯片具有多种优点。
它的识别准确率高,能够准确识别出各种口音和语速的语音指令。
该芯片的功耗低,能够在保证性能的同时,实现更长的待机时间。
LD3320还具有良好的抗干扰能力,能够在嘈杂的环境中稳定工作,确保语音识别的准确性。
LD3320芯片的应用范围广泛,可用于智能家居、医疗护理、机器人等领域。
在智能家居领域,通过LD3320芯片实现的语音控制,用户可以轻松控制家中的各种设备,如灯光、空调、电视等,提升生活的便捷性。
在医疗护理领域,LD3320芯片可以用于辅助老年人或残障人士进行日常操作,如打开药瓶、调节音量等,提高他们的生活质量。
在机器人领域,LD3320芯片可以实现机器人的语音交互功能,使得机器人能够更好地理解和执行人类的指令。
#define uint unsigned int#define uchar unsigned char#define DELAY_NOP _nop_();_nop_();_nop_();#define CLK_IN 22.1184 /* user need modify this value according to clock in */#define LD_PLL_11 (uchar)((CLK_IN/2.0)-1)#define LD_PLL_ASR_19 (uchar)(CLK_IN*32.0/(LD_PLL_11+1) - 0.51)#define LD_PLL_ASR_1B 0x48#define LD_PLL_ASR_1D 0x1f#define MIC_VOL 0x43sbit SCS = P2^6; // 芯片片选信号sbit SDCK = P0^2; // SPI 时钟信号sbit SDI = P0^0; // SPI 数据输入sbit SDO = P0^1; // SPI 数据输出sbit SPIS = P3^6; // SPI模式设置:低有效sbit LD_INT = P3^2; // 中断信号,芯片收到声音会产生下降沿sbit LD_MD = P1^0; // 1:SPI 0:并行可以电路直接焊死sbit LD_RST = P3^3; // 复位信号,低电平有效/************************** 初始化并选择硬件并行方式 *********************/ void mcu_init(){IT0 = 1; // 下降沿触发,边沿触发相应中断后标志位IE0会自动清零EA = 1; // 开总中断EX0 = 1; // 开外部中断1LD_MD = 1; // 选择并行模式,那么久别焊死。
若是焊死,这不需要这句语句SCS = 1;SDCK = 1;SDO = 0;SCS = 1;SPIS = 1;}void LD_WriteReg(uchar addr,uchar data){uchar command = 4;uchar i = 0;SPIS = 0;SCS = 0;DELAY_NOP;for(i=0;i<8;i++){if((command & 0x80)){SDI = 1;}else{SDI = 0;}DELAY_NOP;SDCK = 0;command = (command << 1);DELAY_NOP;SDCK = 1;}for(i=0;i<8;i++){if((addr & 0x80)){SDI = 1;}else{SDI = 0;}DELAY_NOP;SDCK = 0;addr = (addr << 1);DELAY_NOP;SDCK = 1;}for(i=0;i<8;i++){if((data & 0x80)){SDI = 1;}else{SDI = 0;}DELAY_NOP;SDCK = 0;data = (data << 1);DELAY_NOP;SDCK = 1;}DELAY_NOP;SCS = 1;}uchar LD_ReadReg(uchar addr){uchar i = 0;uchar command = 0x05;uchar datain = 0;uchar temp = 0;SPIS = 0;SCS = 0;DELAY_NOP;for(i=0;i<8;i++){if((command & 0x80)){SDI = 1;}else{SDI = 0;}DELAY_NOP;SDCK = 0;command = (command << 1);DELAY_NOP;SDCK = 1;}for(i=0;i<8;i++){if((addr & 0x80)){SDI = 1;}else{SDI = 0;}DELAY_NOP;SDCK = 0;addr = (addr << 1);DELAY_NOP;SDCK = 1;}for(i=0;i<8;i++){datain = (datain << 1);temp = SDO;DELAY_NOP;SDCK = 0;if(temp){datain = datain | 0x01;}DELAY_NOP;SDCK = 1;}DELAY_NOP;SCS = 1;return datain;}/********************************* 复位函数 ********************************/ void LD_reset(){LD_RST=1;delay(1);LD_RST=0; // 复位delay(1); // 等待复位完成LD_RST=1; // 完成复位delay(1);LD_CS=0;delay(1); // 使得工作稳定LD_CS=1; // 激活内部DSPdelay(1);}/******************************** 模块通用初始化 ***************************/ void LD_Init_Common(){LD_ReadReg(0x06); // 读06寄存器,激活芯片LD_WriteReg(0x17, 0x35); // 写35H对LD3320进行软复位(Soft Reset) delay(10); // 等待复位完成,芯片稳定LD_ReadReg(0x06); // 读06寄存器,激活芯片LD_WriteReg(0x89, 0x03); // 模拟电路控制,初始化时写03Hdelay(5);LD_WriteReg(0xCF, 0x43); // 内部省电模式设置 ,初始化时写入43Hdelay(5);LD_WriteReg(0xCB, 0x02); // 读取ASR结果(候补 4)/*PLL setting*/LD_WriteReg(0x11, LD_PLL_11); // 时钟频率设置1LD_WriteReg(0x1E,0x00); // ADC专用控制,应初始化为00H,采集和播放声音需要LD_WriteReg(0x19, LD_PLL_ASR_19); // 时钟频率设置2LD_WriteReg(0x1B, LD_PLL_ASR_1B); // 时钟频率设置3LD_WriteReg(0x1D, LD_PLL_ASR_1D); // 时钟频率设置4delay(10);LD_WriteReg(0xCD, 0x04); // 初始化时写入04H,允许DSP休眠LD_WriteReg(0x17, 0x4C); // 4c使DSP休眠delay(5);LD_WriteReg(0xB9, 0x00); // 添加识别语句的字符串长度,初始化写入0 LD_WriteReg(0xCF, 0x4F); // 内部省电模式,MP3初始化和ASR初始化时写入4FHLD_WriteReg(0x6F, 0xFF); // 对芯片初始化时写入FF}/********************************* 语音识别初始化 **************************/ void LD_Init_ASR(){LD_Init_Common();LD_WriteReg(0xBD, 0x00); // 初始化控制寄存器,写入00H;然后启动;为ASR模块LD_WriteReg(0x17, 0x48); // 写48H可以激活DSP;delay(10);LD_WriteReg(0x3C, 0x80); // 语音识别添加关键词用FIFO缓存器FIFO_EXT下限低8位(LowerBoundary L)LD_WriteReg(0x3E, 0x07); // 语音识别添加关键词用FIFO缓存器FIFO_EXT下限高8位(LowerBoundary H)LD_WriteReg(0x38, 0xff); // 语音识别添加关键词用FIFO缓存器FIFO_EXT上限低8位(UpperBoundary L)LD_WriteReg(0x3A, 0x07); // 语音识别添加关键词用FIFO缓存器FIFO_EXT上限高8位(UpperBoundary H)LD_WriteReg(0x40, 0); // FIFO_EXT MCU水线低8位(MCU water mark L)LD_WriteReg(0x42, 8); // FIFO_EXT MCU水线高8位(MCU water mark H)LD_WriteReg(0x44, 0); // FIFO_EXT DSP水线低8位(DSP water mark L)LD_WriteReg(0x46, 8); // FIFO_EXT DSP水线高8位(DSP water mark H)delay(1);}/******************************* 检查模块是否忙碌 *************************/// 1:不忙碌 0:忙碌uchar LD_Check_ASRBusyFlag_b2(){uchar j;uchar flag = 0;for (j=0; j<10; j++){if (LD_ReadReg(0xb2) == 0x21) // 0x21表示闲,查询到为闲状态可以进行下一步ASR 动作{flag = 1;break;}delay(10);}return flag;}/****************************** 设置模块并开始识别 *************************/// Return 1: success.uchar LD_AsrRun(){LD_WriteReg(0x35, MIC_VOL); // ADC增益,或可以理解为麦克风(MIC)音量LD_WriteReg(0x1C, 0x09); // ADC开关控制,写 09H Reserve 保留命令字,具体使用按照给出的参考程序代码使用LD_WriteReg(0xBD, 0x20); // 初始化控制寄存器,写入20H;Reserve保留命令字,具体使用按照给出的参考程序代码使用。
LD3320介绍LD3320是一颗功能强大的语音识别芯片,能够实现语音识别、语音合成和语音控制等功能。
该芯片采用了数字信号处理技术和嵌入式系统设计思想,具有高性能、低功耗和易于使用的特点。
接下来,我将详细介绍LD3320芯片的特点、应用领域和工作原理。
首先,LD3320芯片具有多种特点。
首先,该芯片集成了数字信号处理器(DSP),具有良好的信号处理能力和高性能。
其次,LD3320芯片采用了低功耗设计,能够满足低功耗应用的需求。
第三,该芯片支持多种语音格式的识别和合成,具有较高的语音识别精度和语音合成质量。
此外,LD3320还支持语音控制功能,可以通过语音指令来控制外部设备的运行。
LD3320芯片适用于多种场景和应用领域。
首先,它可广泛应用于智能家居领域,实现语音控制家电设备的功能,如通过语音指令控制灯光开关、调节温度等。
其次,LD3320芯片可以用于智能穿戴设备,如智能手表、智能眼镜等,实现语音交互、语音助手等功能。
此外,该芯片还可应用于教育领域,例如语音学习机、语音教具等,帮助儿童提高语言表达和听力能力。
总之,LD3320在智能化时代的各个领域都具有广阔的应用前景。
LD3320芯片的工作原理如下。
首先,通过麦克风采集声音信号,并进行预处理,包括信号增益调整、噪声抑制等操作。
然后,将预处理后的声音信号传输给LD3320芯片。
LD3320芯片内部的DSP通过提取音频特征、信号分析等算法对声音进行处理,并将处理后的音频信号与存储在芯片内的语音数据库进行匹配。
最后,LD3320芯片将识别出的语音结果输出给目标设备,如处理器或控制器。
在实际应用中,使用LD3320芯片还需要相应的开发工具和软件支持。
目前,市面上有一些基于LD3320芯片的开发板和开发套件,可以提供给开发者进行开发。
此外,LD3320芯片还需要配合相应的软件库和SDK进行编程和调试。
开发者可以根据具体的需求选择适合的开发工具和软件平台,来实现针对LD3320芯片的语音识别和语音控制应用。
安然之家智能电子LD3320模块使用说明
1.模块引脚图
2.使用说明
按照模块引脚图与RS232-TTL连接可直接和计算机通信,上位机运行LP_COMM2.23,确定COM口,其他设置如图:
接上MIC,通电,对着MIC说“左转”,软件上会显示“04”,其他语音控
3.代码修改
步骤1:双击“KEIL UV3”运行软件,找到LD3320识别源码并打开:
步骤2:找“asritem.h”文件,如下图。
”#define STR_00”至”#define STR_49”表示的是待识别的内容,用中文全拼表示,每句最长为79个字母(包括空格).编辑其中的语句,可以设置识别内容.例如,修改#define STR_14 的内容为“z ai jian”,则可以语音指令”再见”.
另注:用Keil UV2软件打开工程可通过“文件”->“打开文件”->找到源码就能看到“asritem.h”。
步骤3:按“F7”编译,生成.hex即可。
第一次使用Keil软件无法正常生成hex,这里需要做些设置,“Poject(工程)”->“O ptions for Target……”打开设置对话框,
如图:
4.下载程序
步骤1:双击STC ISP运行程序,设置如图:
注意:一定要选定“外部晶体或时钟”,否则下载完程序模块也不工作的。
步骤2:点“DownLoad/下载”,断电再上电,就可以了。