语音识别芯片LD3320高阶秘籍
LD3320开发手册(1)

2. 串行 SPI 方式 第 46 脚(MD)接高电平,且第 42 腿(SPIS*)接地时按照此方式工作。写 和读的时序图如下:
图 3 SPI 方式写时序 写的时候要先给 SDI 发送一个 “写”指令(04H),然后给 SDI 发送 8 位寄 存器地址,再给 SDI 发送 8 位数据。在这期间,SCS*必须保持在有效(低 电平)。
5
sales@
I
I
I
I
I
I
I
I
I
I
I
I
I
寄存器的详细说明如下:
编号
(16 进制)
01
02
05
06
08
11 17 19 1B
1C
1D 1E 1F 20 21 22 23 24 25 26 27
29
2B
说明
FIFO_DATA 数据口 FIFO 中断允许
第 0 位:允许 FIFO_DATA 中断; 第 2 位:允许 FIFO_EXT 中断; FIFO_EXT 数据口 (只读)FIFO 状态 第 6 位:1 表示忙,不能写所有 FIFO。 第 3 位:1 表示 FIFO_DATA 已满,不能写。 清除 FIFO 内容(清除指定 FIFO 后再写入一次 00H) 第 0 位:写入 1→清除 FIFO_DATA 第 2 位:写入 1→清除 FIFO_EXT 时钟频率设置 1 写 48H 可以激活 DSP; 写 4CH 可以使 DSP 休眠,比较省电。 时钟频率设置 2 时钟频率设置 3 ADC 开关控制 写 00H ADC 不可用 写 0BH 麦克风输入 ADC 通道可用 时钟频率设置 4 ADC 专用控制,应初始化为 00H 软复位(Soft Reset)
19时钟频率设置21b时钟频率设置31cadc开关控制写00hadc不可用写0bh麦克风输入adc通道可用1d时钟频率设置41eadc专用控制应初始化为00h1f软复位softreset先写入01h再写入00h20fifodata上限低8位upperboundary21fifodata上限高8位upperboundary22fifodata下限低8位lowerboundary23fifodata下限高8位lowerboundary24fifodatamcu水线低8位mcuwatermark25fifodatamcu水线高8位mcuwatermark26fifodatadsp水线低8位dspwatermark27fifodatadsp水线高8位dspwatermark29中断允许可读写位
LD3320语音识别模块开发说明SigmaTech_voice_V1.0

西格玛科技语音识别模块用户手册硬件版本: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 个字节的拼音串。
受不同的麦克风灵敏度的影响,使用不同的麦克风可能在识别率和识别距离方面会有不同。
LD3320并行串行读写辅助说明

并行读:
例如,从寄存器 0x06 读取 8 字节数据,时序图如下。
重温一下 LD3320 的并口写时序图:
10
P0~P7
A0 CSB* WRB*
后面还有对延时长度的详细讨论。
#define DELAY_NOP _nop_();_nop_();_nop_(); sbit LD_WR = P3^6; sbit LD_RD = P3^7; sbit LD_CS = P2^6; sbit LD_A0 = P2^0; void LD_WriteReg( unsigned char address, unsigned char dataout ) {
三.串行方式 .................................................................... 12 1. 串行方式—直接读写 (硬件实现 SPI 读写) ..... 12 2. 串行方式—软件模拟时 (软件模拟 SPI 读写) ..... 13 写寄存器 ....................................................................... 13 读寄存器 ....................................................................... 15
P0 = address; LD_A0= 1; LD_CS = 0; LD_WR = 0; DELAY_NOP;
LD332O常见问题

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介绍语音识别芯片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)语音识别用初始化按照以下序列设置寄存器。
基于LD3320的语音识别智能家居控制系统的设计

信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芯片可以用于辅助老年人或残障人士进行日常操作,如打开药瓶、调节音量等,提高他们的生活质量。
在机器人领域,LD3320芯片可以实现机器人的语音交互功能,使得机器人能够更好地理解和执行人类的指令。
语音识别模块LD_3320各语句注释

#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保留命令字,具体使用按照给出的参考程序代码使用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二、 增添“垃圾关键词语”——吸收错误识别
在设定好要识别的关键词语后,为了进一步降低误识别率,可以再添加一 些其他的任意词汇进识别列表,用来吸收错误识别,从而达到降低误识别率的 目的。 可以把这些关键词语称之为“垃圾关键词语”。 比如,某个应用场景中,需要识别的关键词语是 4 条,“前进”,“后 退”,“开门”,“关门”。在把这 4 个关键词语设置进 LD3320 后,可以再另 外设置 10~30 个词语进 LD3320,比如“前门”,“后门”,“阿阿阿”,“呜 呜”等等。
八、 调节语音结束后得到识别结果的反应时间
LD3320 芯片内部是通过 VAD(端点检测)机制来判断人是否说完语音,并 给出识别结果。关于 VAD 以及获得识别结果机制的详细说明,请阅读网页的介 绍:/web_cn/LD332X_principle.html 根据 VAD 机制,语音识别芯片监测出有一段连续的背景噪音后,认为用户 已经说完了语音识别命令,然后再给出识别结果。 默认设置是监测到在人声开始后有连续的 600 毫秒的不说话时,才会给出 识别结果。 也就是说,根据默认设置,从人说话结束,到语音识别芯片主动送出结果 中断,至少要有 600 毫秒的间隔,如果用户希望调节这个反应间隔,可以从以 下几方面入手: 1. 改变使用方式 采用类似于步话机的方式,每次人按键后,按下不放,开始说命令,说完 命令后,松开按键,每次检测到松开按键时,主控的单片机通过设置 BC 寄存 器来立即获得识别结果。(BC 寄存器见“开发手册”的说明)
第
6
页
info@ 2. 修改 VAD 判断的寄存器 B5 寄存器 ASR: Vad Silence End 在语音检测到语音数据段以后,又检测到了背 景噪音段,连续检测到多长时间的背景噪音段才可以确认为是真正的语音结 束。每 1 单位,10 毫秒。Default:60,相当于 600 毫秒数值范围: 20~200 (相当于 200~2000 毫秒) 但是这个修改会导致,如果这个时间过短,导致用户在说话时的说话停顿 也会造成 VAD 检测认为说话结束,从而降低某些用户的识别率。 3. 修改麦克风音量寄存器 修改麦克风的音量,35 寄存器,(建议调整范围在 40H~58H 之间),看哪 个录音增益适合使用的麦克风,以及使用的环境。 4. 修改 B8 寄存器 修改 B8 寄存器。 比如修改为 2, 那么这意味着,无论如何,在每次识别开始后 2 秒钟的时 间内,必然会停止识别给出一个识别结果。(这个设置不影响 VAD 检测)。 如果 b8 值特别小,比如设置:1,2,3,就需要在开始识别前,给用户一 个很明确的提示,要开始识别了。免得用户还没有准备就识别时间过去了。 但这个间隔设置的过短,也必然会引起一些可能存在的误识别,比如语音 命令比较长,那么这个时间设置的太小,就会造成比较长的语音命令无法在特 定时间内完整念完引起误识别。 所以当这个数值设置比较小的时候,一般建议使用“触发识别”的用户界 面,避免使用“循环识别”的用户界面。 5.使用环境 改变使用环境,或许在某些环境中的噪声或者回声会影响到判断说话结 束。 以及说话人自己的音量,如果声音很低,也会导致判断人说话是否结束比 较困难。 改变命令词语内容,比较好念,开口音响亮等,方便使用者连续清晰念出 语音命令。
第
2
页
info@
简介:
基于语音识别芯片 LD3320 开发产品,可参考《LD3320 开发手册》。为了 提高终端用户对于语音识别的主观体验,本文总结了一些高阶的方法和窍门, 集结成文,与大家共享。 本文档会不定期更新,及时汇总实战中的经验。敬请期待。
一、 在识别精度要求高的场景中,使用“触发识 别”模式
五、 工作电压
LD3320 有三路电源输入, VDD 数字电路用电源输入 3.0 V – 3.3 V VDDIO 数字 I/O 电路用电源输入 1.65 V – VDD VDDA 模拟电路用电源输入 3.0 V – 4.0 V 但是在实际设计时,可以采用统一送入 3.3v 的工作电压给这三路电源。最 低工作电压是 3.0v,当输入电压低于这个数值时,芯片会无法启动工作。 这样可以简化电路设计。 如果条件允许,可以把模拟电源和数字电源隔离开,避免干扰,以取得最 佳的电源管理效果。
三、 口令触发模式
在一些应用场合,希望识别精度高,但是又无法要求用户每次都用手按键 来“触发识别”。此时,可以采用“口令触发模式”。 产品定义一句短语,作为触发口令。比如,可以定义“芝麻开门”作为触 发口令。 产品在等待用户触发时,启动一个“循环识别”模式,把触发口令“芝麻 开门”和其他几十个用来吸收错误的词汇设置进 LD3320。只有当检测到识别出 的结果是触发口令时,才认为是终端用户叫了这个口令。此时,给出提示音, 并启动一个“触发识别模式”,并且把相应的识别列表设置进 LD3320,提示用 户在提示音后几秒钟内说出要执行的操作。 在等待用户的过程时,如果识别的结果是那些用来吸收错误的词汇,则认 为是误识别,或者其他的声音干扰,而不进行任何的处理,直接再次进入“循 环识别”模式。 这种口令触发模式,融合了其他两种模式的优点,并且结合第二节提到的 “垃圾关键词语”的方法,可以为产品提供更加方便实用的语音操作特性。
info@
语音识别芯片 LD3320 高阶秘籍
Update@2011 年 04 月 20 日 语音识别芯片/声控芯片 单芯片/非特定人/动态编辑识别列表 语音识别解决方案
用声音去沟通 VUI (Voice User Interface)
ICRoute 用声音去沟通 VUI (Voice User Interface) Web : Tel : 021-68546025 Mail: info@
第
3
页
info@ 只有识别结果是 4 个关键词语之内的,才认为识别有效。如果识别结果是 “垃圾关键词语”,则说明是其他的声音导致的误识别,产品应该重新开始一 次识别过程。 这样,可以非常非常有效地降低误识别率。极大地提高终端用户的主观使 用体验。 “垃圾关键词语”的选取,最好可以选择一些字数和关键词语一样的词 语,用来吸收可能发生的错误识别。 需要说明的是:这一方法,即可以应用在“触发识别”模式中,也可以应 用在“循环识别”模式中。 这样作的原理如下: 非特定人语音识别技术 ASR,是一个基于关键词语列表的匹配识别技术, 算法本质是在提取输入声音的特征后,在关键词语列表中寻找一个相似度最高 的 词 语 作 为 识 别 结 果 。 (/web_cn/LD332X_principle.html ) 因此,任何的声音输入进语音识别芯片,都会去和关键词语列表中的词语 进行匹配对比,并且也都会依次打分。这样,其他人在随意聊天,或者任意说 一个不在关键词语列表中的命令,或者是其他毫无联系的说话声音,都可能会 匹配到某一个关键词语并作为结果输出。从而造成误识别。 虽然算法设计中有一定的算法来避免出现这样的误识别,但还是不可完全 避免。产品开发者可以在芯片外部针对性的处理以降低误识别率。本节提供的 方法,是非常有效的一种方法,在实际应用中具有非常重要的地位。
七、 对于同一关键词 ID 设置多个习惯发音
终端用户在说语音指令时,可能对同一个词汇有不同的发音习惯。 例如,“打开电灯”,用户可能会说“开灯”,“打开灯”,“打开电 灯”,“把灯打开”等等。 充分利用 LD3320 的 50 条可动态编辑的关键识别条目的特性,开发者可以 把这些习惯发音都设置进芯片,这样无论用户怎么说,都会被正确识别出来, 进一步增加终端用户的良好体验。 同时,可以结合第四条秘籍“巧妙利用关键词语的 ID”,在编程中可以很 方便地处理这些多个习惯发音。 值得注意的是:如果用来进行控制工作,需要加入一些垃圾关键词吸收错误以 降低误识率。见第二节“增添“垃圾关键词语”——吸收错误识别”。
第5Βιβλιοθήκη 页info@ two - tu three - si rui 例如,有些场合需要识别一些纯方言发音的词汇,也可以用拼音标注: 上海话的“晚”发音是“ya”,那么“晚报”这个词汇,用普通话标注是 “ wan bao ”,如果要标注成上海话发音,就是“ ya bao ”,这样上海话说的 “晚报”也就可以被识别了。 值得注意的是:LD3320 支持的是中文普通话,有些外文或者方言发音无法 用拼音描述,所以 LD3320 不一定能够完成所有需要的外文或者方言任务。
六、 用拼音标注外文或者方言
语音识别,识别的是“语音”。对于非特定人语音识别来说,在描述关键 词语时,是用音标标注出要识别的关键词语。 对于目前 LD3320 支持的中文识别来说,就是用拼音来描述出关键词语。 也就是说,只要是拼音可以拼出的发音,都是可以输入芯片并进行识别 的。 因此,在某些场合需要识别一些简单的外文或者纯方言发音的时候,可以 用拼音标注的方法来实现。 例如,有些场合需要识别一些简单的英文单词,可以用拼音标注: one - wan
第
4
页
info@
四、 巧妙运用关键词语的 ID
在把关键词语设置进 LD3320 时,是把关键词语的拼音串传入 LD3320,并 同时传入一个 ID,用来代表这个关键词语。 LD3320 的识别结果,也是把识别出的关键词语的 ID 作为结果输出。 在 LD3320 芯片,不同的关键词语是可以对应同一个 ID。而且 ID 不需要是 连续的。这样就为产品开发者提供了很方便的编程手段。 例如:“北京”,“首都”,可以设置为同一个 ID,进行后续处理。 例如:在使用第二节提到的“垃圾关键词语”时,可以把添加的这些用来 吸收错误的关键词语的 ID 都标记成一个值,或者把它们标注为比较特殊的 ID 值,如大于 200。在程序中就比较简单,很容易处理误识别,避免了添加进很 多关键词语后,写程序中需要为这些关键词语的处理增加过多的程序分支。
第
1
页
info@
简介:...................................................................................................................... 3 一、 在识别精度要求高的场景中,使用“触发识 别”模式................................................................................................................ 3 二、 增添“垃圾关键词语”——吸收错误识别........ 3 三、 口令触发模式................................................................................ 4 四、 巧妙运用关键词语的 ID...................................................... 5 五、 工作电压............................................................................................ 5 六、 用拼音标注外文或者方言.................................................. 5 七、 对于同一关键词 ID 设置多个习惯发音 ................ 6 八、 调节语音结束后得到识别结果的反应时间........ 6 九、 麦克风,相关寄存器设置与识别效果和距离.. 7 十、 语音识别用户使用模式详析............................................ 9