智能玩具的语音识别系统论文.docx

上传人:b****0 文档编号:17749287 上传时间:2023-08-03 格式:DOCX 页数:38 大小:226.02KB
下载 相关 举报
智能玩具的语音识别系统论文.docx_第1页
第1页 / 共38页
智能玩具的语音识别系统论文.docx_第2页
第2页 / 共38页
智能玩具的语音识别系统论文.docx_第3页
第3页 / 共38页
智能玩具的语音识别系统论文.docx_第4页
第4页 / 共38页
智能玩具的语音识别系统论文.docx_第5页
第5页 / 共38页
智能玩具的语音识别系统论文.docx_第6页
第6页 / 共38页
智能玩具的语音识别系统论文.docx_第7页
第7页 / 共38页
智能玩具的语音识别系统论文.docx_第8页
第8页 / 共38页
智能玩具的语音识别系统论文.docx_第9页
第9页 / 共38页
智能玩具的语音识别系统论文.docx_第10页
第10页 / 共38页
智能玩具的语音识别系统论文.docx_第11页
第11页 / 共38页
智能玩具的语音识别系统论文.docx_第12页
第12页 / 共38页
智能玩具的语音识别系统论文.docx_第13页
第13页 / 共38页
智能玩具的语音识别系统论文.docx_第14页
第14页 / 共38页
智能玩具的语音识别系统论文.docx_第15页
第15页 / 共38页
智能玩具的语音识别系统论文.docx_第16页
第16页 / 共38页
智能玩具的语音识别系统论文.docx_第17页
第17页 / 共38页
智能玩具的语音识别系统论文.docx_第18页
第18页 / 共38页
智能玩具的语音识别系统论文.docx_第19页
第19页 / 共38页
智能玩具的语音识别系统论文.docx_第20页
第20页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

智能玩具的语音识别系统论文.docx

《智能玩具的语音识别系统论文.docx》由会员分享,可在线阅读,更多相关《智能玩具的语音识别系统论文.docx(38页珍藏版)》请在冰点文库上搜索。

智能玩具的语音识别系统论文.docx

智能玩具的语音识别系统论文

摘要

目前,语音这种人类最简单、最方便的信息交换方式,在玩具上的应用还较少。

显然,在玩具系统上增加语音接口,用语音代替键盘输入,并进行人机对话,让玩具能听会说,不仅十分诱人,而且具有广泛的应用前景。

而语音识别技术是近年来十分活跃的研究领域,语音识别系统的实用化研究是语音识别研究的一个主要方向。

用单片机控制语音芯片,再把单片机和语音芯片嵌入到玩具中就可以做成语音播放的玩具了。

本语音识别系统以LD3320语音识别芯片为核心部件,MCU选STC10L08XE。

通过麦克风将声音信息输入到LD3320进行频谱分析,将提取到的语音特征和关键词语进行对比匹配,找出相似度最高的关键词语作为识别结果输出给MCU。

MCU通过读取SPIFlash里的语音数据播放相应的语音作为回应。

本系统由语音识别模块,电源模块,程序下载模块,MCU模块,语音数据储存模块组成。

论文概述了各个模块的工作原理,并对电路的可靠性、程序的可行性进行了论证。

系统给人以比较高的用户体验,能够稳定的工作,该方案结构简单,具有较高的应用价值。

关键词:

语音识别;LD3320;STC10L08XE单片机

 

Abstract

Atpresent,thehumanvoice,thesimplestandthemostconvenientinformationexchangeways,intheapplicationofthetoysisless.Obviously,ifweaddvoiceinterfaceinthetoysystem,insteadofthekeyboard,lettoyscanlistenandsaid,thisisnotonlyveryappealing,butalsohasabroadprospectofapplication.Thespeechrecognitiontechnologyisaveryactivefieldofresearchinrecentyears.Theapplicationofthespeechrecognitionsystemisthemajorresearchdirection.

Withsingle-chipmicrocomputercontrollingvoicechip,andthenputthesingle-chipmicrocomputerandvoicechipembeddedintoyswecanmakespeechbroadcasttoys.ThisspeechrecognitionsystemmakeLD3320speechrecognitionchipsasthecorecomponents,andwechooseSTC10L08XEastheMCU.Throughthemicrophones,soundinputtoLD3320forspectrumanalysis.PhoneticfeatureswillbeextractedandLD3320trystomatchthekeywords,findingoutthesimilarityofthehighestkeywordsasrecognitionresultsandtransmitittoMCU.TheMCUreadsthespeechdataintheSPIFlashtoplayasaresponsetothespeech.

Thesystemiscomposedofspeechrecognitionmodule,powersupplymodule,theprogramdownloadmodule,MCUmodule,andvoicedatastoragemodule.Thispapersummarizestheprincipleofworkofthemodules,andthereliabilityofthecircuit,andhasprovedthefeasibilityoftheprogram.

Thatthesystemgivesapersonwithhigheruserexperienceanditworksstable,theschemeofsimplestructure,makesithasahighapplicationvalue.

Keywords:

SpeechRecognition;LD3320;STC10L08XESingle-chipComputer

 

 

1绪论

1.1选题意义

(1)课题背景及意义:

让机器听懂人类的语音,这是人们长期以来梦寐以求的事情。

语音识别是一门交叉学科,关系到多学科的研究领域,不同领域上的研究成果都对语音识别的发展作了贡献。

语音识别技术就是让机器通过识别和理解把语音信号转变为相应的文本或命令的高技术。

计算机语音识别过程与人对语音识别处理过程基本上是一致的。

目前主流的语音识别技术是基于统计模式识别的基本理论。

一个完整的语音识别系统可大致分为三部分:

语音特征提取:

目的是从语音波形中提取随时间变化的语音特征序列。

声学模型与模式匹配(识别算法):

声学模型是识别系统的底层模型,并且是语音识别系统中最关键的一部分。

声学模型通常由获取的语音特征通过训练产生,目的是为每个发音建立发音模板。

在识别时将未知的语音特征同声学模型(模式)进行匹配与比较,计算未知语音的特征矢量序列和每个发音模板之间的距离。

声学模型的设计和语言发音特点密切相关。

声学模型单元大小(字发音模型、半音节模型或音素模型)对语音训练数据量大小、系统识别率,以及灵活性有较大影响。

语义理解:

计算机对识别结果进行语法、语义分析。

明白语言的意义以便做出相应的反应。

通常是通过语言模型来实现。

语音识别过程实际上是种认识过程。

就像人们听语音时,并不把语音和语言的语法结构、语义结构分开来,因为当语音发音模糊时人们可以用这些知识来指导对语言的理解过程。

对机器来说,识别系统也要利用这些方面的知识,只是鉴于语音信号的多变性、动态性、瞬时性,语音识别技术与人类的大脑还有定的差距。

因此在语言识别技术选择,其应用模式和系统开发上,都需要专业的设计和调试,以实现最好的应用效果。

(2)目前市场上的语音识别产品基本可分为:

特定人/非特定人:

是按照声学模型建立的方式来划分。

特定人识别的声学模型是针对某特定用户训练的。

一般说用户需要先训练系统,然后才能识别该用户的发音。

而非特定人识别的声学模型是针对某一种特定的语言来训练的,发音人不需要训练既可使用。

中铸在建立模型时需要大量的语料,对用户来说却提供了更大方便,他们甚至不需要了解该过程。

(3)语音识别的应用场合:

目前,语音识别技术已经在生活中的诸多方而有了广泛的应用,而这方丽的例子已经屡见不鲜,其主要的应用场合如下:

声控应用

在很多场合与特定环境中,使用声控系统可以大大提高生活质量和便利程度。

比如司机通过语音进行电话拨号,可以减少交通事故的发生率,而很多行动不便的人通过声控系统更是可以将生活质量提高。

数据库检索

在不少行业部门当中都需要对庞大的数据进行检索和查词,这是项非常复杂的事。

语音识别的引入可以大大的减少劳动量,既方便又节约人力成本。

语音听写机

用口述来代替人工输入文档,提高了输入速度,而且更加方便,可以为办公自动化带来革命性的变化。

比如IBM出品的ViaVoice系列产品就是这个方面典型的应用。

自动口译

将语音识别应用于自动口语翻译是未来的一大趋势,不仅可以节省大量的人力。

同时也让翻译工作变得更加轻松简单。

一些发达国家在自动口译方面的研究己经取得了一定的进展。

(4)语音识别所面临的难题:

虽然在过去的几十年语音识别技术已经取得了长足的发展,但是现在的技术还不足以让电脑像人样随意交谈具体说来,主要有以下几个方面:

首先,语音识别系统的稳定性不够强,对环境的依赖程度过高。

在某一种环境下训练的语音识别系统换了一种环境之后性能就会下降。

其次,语音识别对于外部噪声特别敏感。

这不仅是因为外部噪声会导致语音信号发生变化,而且由于嘈杂的环境下人的音调,语速以及音盘都会改变,因此识别难度也更大。

再次,语音的随机性很强。

就算是同个人在不同的时刻,由于身心状态的差异,导致语音的特征也会不一样。

最后,由于目前对人类的听觉理解、知识积累和神经系统的机理等方丽的研究水平不足,限制了语音识别的发展。

为了解决上述问题,研究者们想出了各种方法,比如自适应训练、神经网络等。

这些做法虽然都取得了定的成绩,然而,如果要让语音识别系统的性能得到大幅的提高,还有大量的工作要做。

1.2设计方案

1.2.1本课题主要研究内容

基本要求:

简单语音对话交流

本项目旨在开发一个将语音识别技术,传感器技术等技术引用其中,并集性、娱乐性和互动性于一体的智能玩具控制系统。

1.2.2实现方法

本语音识别系统以LD3320语音识别芯片核心部件,制作了一个语音识别控制系统。

本系统主控MCU选用STC10L08XE。

主控MCU通过控制LD3320内部寄存器以及SPIflash实现语音识别语音对话。

通过MIC将声音信息输入LD3320进行频谱分析,分析后将提取到的语音特征和关键词语列表中的关键词语进行对比匹配,找出得分最高的关键词语作为识别结果输出给MCU。

MCU针对不同的语音输入情况同通过继电器对语音命令所对应的电器实现控制。

同时也可以通过对寄存器语音片段的调用,实现人机对话,该系统框架图如下图1.1所示

图1.1系统框架图

2总体硬件设计方案

2.1电源模块

本系统采用3.3V供电,主要控制及识别部分采用LM1117-3.3稳压芯片,语音播放及继电器部分采用7812为其提供稳定的电流电压电源模块电路图如图2.1所示

(1)参数特性

LM1117-3.3参数特性:

输入电压(V)4.75~12

输出电流(A)1

输出电压(V)3.3

压差(V)1.3

(2)封装

类型:

SOT-223

引脚:

3

体宽:

6.30~6.71mm

长度:

3.30~3.71mm

引脚间距:

2.29mm

图2.1电源模块电路图

2.2寄存器模块

本系统采用一片华邦SPIFlash芯片W2SQ40AVSNIG,大小为512Kbyte。

用于存储人机对话时的声音素材。

寄存器模块电路图如图2.2所示

用闪存的理由:

(1)能够减少微处理器的封装管脚数目。

(2)线路板(PCB)可以更小,更简单。

(3)能够减少系统电路切换噪声。

(4)能够降低系统功能及制造成本。

图2.2SPIFlash存储器

2.3控制单元模块

STC10L08XE是高速低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051。

但速度快8-12倍,内部集成高可靠复位电路,针对高速通信、智能控制、强干扰场合11/10XX系列单片机的定时器0/定时器1串行口与传统8051兼容,增加了独立波特率发生器,省去了定时器2。

与传统的8051相比指令执行速度全面提速,最快的指令快24倍,最慢的指令快3倍。

工作电压:

STC11F系列工作电压5.5V-4.1V/3.7V(5V单片机)。

STC11F系列工作电压3.6V-2.4V/2.1V(3V单片机)。

STC10FXX系列工作电压5.5V-3.8V/3.3V(5V单片机)。

STC10LXX系列工作电压3.6V-2.4V/2.1V(3V单片机)。

工作频率范围0--35MHZ。

采用STC10L08XE单片机作为系统的主控制单元。

STC10L08XE系列单片机具有强大的数据处理功能,且I/O口控制灵活。

控制单元模块电路图如图2.3所示:

2.4语音识别模块

LD3320芯片是一款“语音识别”专用芯片,由ICRoute公司设计生产。

该芯片集成了语音识别处理器和一些外部电路,包括AD、DA转换器、麦克风接口、声音输出接口等。

本芯片在设计上注重节能与高效,不需要外接任何的辅助芯片如Flash、RAM等,直接集成在现有的产品中即可以实现语音识别/声控/人机对话功能。

并且,识别的关键词语列表是可以任意动态编辑的。

功能介绍:

通过ICRoute公司特有的快速而稳定的优化算法,完成非特定人语音识别。

不需要用户事先训练和录音,识别准确率95%。

图2.3MCU模块

不需要外接任何辅助的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.4.1电路说明

(1)电压要求:

VDD数字电路用电源输入3.0V-3.3V

VDDIO数字1/0电路用电源输入1.65V-VDD

VDDA模拟电路用电源输入3.0V-4.0V

建议用统一的3.3V电压输入以简化设计。

数字电压和模拟电压进行隔离可以使得芯片有更好的效果。

因此,开发者需要保证自己使用的主控MCU同样工作在3.3v,保证主控MCU向LD3320的管脚输出的高电压不超过3.3V。

(2)时钟(Clock)

芯片必须连接外部时钟,可接受的频率范围是4-48MHz;而芯片内部还有PLL频率合成器,可产生特定的频率供内部模块使用

(3)复位

对芯片的复位信号(RSTB*)必须在VDD/VDDA/VDDIO都稳定后进行。

无论芯片正在进行何种运算,复位信号都可以使它恢复初始状态,并使各寄存器复位。

如果没有后续的指令(对寄存器的设置),复位后芯片将进入休眠状态。

此后,一个CSB*信号就可以重新激活芯片进入工作状态。

(4)并行接口

本芯片可通过并行方式和外部主CPU连接,此时使用8根数据线(P0-P7),4个控制信号(WRB*,RDB*,CS,AO),以及一个中断返回信号(INTB*)。

(5)串行接口

串行接口通过SPI协议和外部主CPU连接,首先要将MD接高电平,而将(SPIS)接地。

此时只使用4个管脚:

片选(SCS)、SPI时钟(SDCK)、SPI输入(SDI)和SPI输出(SDO)。

(6)寄存器

对芯片的设置和命令,包括传送数据和接受数据,都是通过对寄存器的操作来完成的。

例如进行语音识别时,设置识别的关键词语列表,设定芯片的识别模式,识别完成后获得识别结果都是通过读/写寄存器来完成。

播放声音时,就是将MP3格式的数据循环放入FIFO对应的寄存器。

(识别结果是通过寄存器返回识别出的关键词语在关键词语列表中的排列序号Index数值,该Index数值是在设置关键词语列表时指定)。

(7)喇叭音量的外部控制

除了特定寄存器来控制音量以外,芯片外部的电路可以控制喇叭的音量增益。

使用的是EPI、EP2、EP3对应的管脚。

2.4.2芯片模式选择

用户可以通过编程,设置两种不同的用户使用模式“触发识别模式”和“循环识别模式”。

(1)触发识别模式

系统的主控MCU在接受到外界一个触发后(比如用户按动某个按键),启动LD3320芯片的一个定时识别过程(比如5秒钟),要求用户在这个定时过程中说出要识别的语音关键词语。

过了这个过程后,需要用户再次触发才能再次启动一个识别过程。

(2)循环识别模式

系统的主控MCU反复启动识别过程。

如果没有人说话没有识别结果,则每次识别过程的定时到时后再启动一个识到过程。

如果有识别结果,则根据识别作相应处理后(比如播放某个声音作为回答)再启动一个识别过程。

一般来说,触发识别适合识别精度要求比较高的场合。

外界触发后,产品可以播放提示音或者其他方式来提示用户在接下来的几秒钟内说出要识别的内容,这样来引导用户在规定的时间内只说出要识别的内容,从而保证比较高的识别率。

2.4.3吸收错误识别

在设定好要识别的关键词语后,为了进一步降低误识别率,可以再添加一些其他的任意词汇进识别列表,用来吸收错误识别,从而达到降低误识别率的目的。

可以把这些关键词语称之为“垃圾关键词语”。

比如,某个应用场景中,需要识别的关键词语是4条,“前进”,“后退”,“开门”“关门”。

在把这4个关键词语设置进LD3320后,可以再另外设置一些词语进LD3320,比如“前门”“后门”等等。

只有识别结果是4个关键词语之内的,才认为识别有效。

如果识别结果是“垃圾关键词语”,则说明是其他的声音导致的误识别,产品应该重新开始一次识别过程。

2.4.4关键词的ID及其设置

在把关键词语设置进LD3320时,是把关键词语的拼音串传入LD3320,并同时传入一个ID,用来代表这个关键词语。

LD3320的识别结果,也是把识别出的关键词的ID作为结果输出。

在LD3320芯片,不同的关键词语是可以对应同一个ID。

而且ID不需要是连续的,这样就为产品开发者提供了很方便的编程手段。

例如"北京",首都",可以设置为同个ID,进行后续处理。

终端用户在说语音指令时,可能对同一个词汇有不同的发音习惯。

例如,“打开电灯”,用户可能会说“开灯”,“打开灯”,“打开电灯气”“把灯打开”。

充分利用LD3320的50条可动态编辑的关键识别条目的特性,开发者可以把这些习惯发音都设置进芯片,这样无论用户怎么说,都会被正确识别出来,进一步增加终端用户的良好体验。

3系统软件设计

3.1系统程序流程图

电路虽然是几个部分组成的,但是整个运行过程是一个并行的过程,主函数进行程序当前状态的判断,而中断处理函数则负责识别产生的中断、语音播放产生的中断,在中断的基础上去产生各种反应,比如驱动扬声器播放声音,通过控制继电器去控制其它的电路。

由于只有了一块芯片去实现播放声音和识别语音,两种功能都用到了一些公用的存储器,而每种功能都有各自的初始化,所以在每种功能实现之前都在分别进行各自的初始化。

系统流程图如图3.1所示。

 

图3.1系统流程图

3.2系统各模块程序设计

3.2.1单片机初始化

主要是进行并行还是串行模式的设置和开中断。

voidMCU_init()

{

P1M0|=1;

P3M0|=8;

P4SW=0xFF;

LED0=0;

LED1=0;

P0=0xff;

P1=0xff;

P2=0xff;

P3=0xf7;

P4=0x3f;

#ifdefined(SOFT_SPI_PORT)//软件模拟SPI读写

LD_MODE=1;//设置MD管脚为高,为高时是串行方式

#elifdefined(HARD_SPI_PORT)//硬件实现SPI读写

LD_MODE=1;//设置MD管脚为高

#else//并行读写(硬件实现或者软件模拟)

LD_MODE=0;//设置MD管脚为低,为低时是并行方式

#endif

IP=0;

IPH=0;

PX0=1;

PT0=1;

PS=1;

IPH|=1;

EX0=0;

EX1=0;

EA=1;

}

3.2.2芯片复位程序

就是对芯片的第47腿(RSTB*)发送低电平,然后需要对片选CS做一次拉低拉高的操作,以激活内部DSP。

可按照以下顺序

voidLD_reset()//芯片复位

{

RSTB=1;

delay

(1);

RSTB=0;

delay

(1);

RSTB=1;

delay

(1);

CSB=0;

delay

(1);

CSB=1;

delay

(1);

}

3.2.3主程序

主函数是个死循环,不断进行芯片当前状态的判断。

voidmain()

{

uint8idatanAsrRes;

FlashLED(3);

MCU_init();

UART_init();

LD_reset();

nAsrStatus=LD_ASR_NONE;//初始状态:

没有在作ASR

PlaySound(0);//播放提示音:

为第一条声音

while

(1)

{

if(bMp3Play!

=0)//如果还在播放MP3中,则等待,直到MP3播放完毕即bMp3Play==0

continue;//bMp3Play是定义的一个全局变量用来记录MP3播放的状态,不是LD3320芯片内部的寄存器

switch(nAsrStatus)

{

caseLD_ASR_RUNING:

caseLD_ASR_ERROR:

break;

caseLD_ASR_NONE:

{

FlashLED(4);

nAsrStatus=LD_ASR_RUNING;

if(RunASR()==0)//启动一次ASR识别流程:

ASR初始化,ASR添加关键词语,启动ASR运算

{

nAsrStatus=LD_ASR_ERROR;

LED0=0;

LED1=0;

}

break;

}

caseLD_ASR_FOUNDOK:

{

FlashLED

(2);

nAsrRes=LD_GetResult();//一次ASR识别流程结束,去取ASR识别结果

OutputIO(nAsrRes);//根据识别结果,在相应的IO管脚上输出1秒钟左右的低电平,开发者可以通过IO管脚输出到其他设备进行声控

PlaySound(nAsrRes);

nAsrStatus=LD_ASR_NONE;

break;

}

caseLD_ASR_FOUNDZERO:

default:

{

FlashLED

(1);

//PlaySound(0);

nAsrStatus=LD_ASR_NONE;

break;

}

}//switch

}//while

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2