您的位置 首页 电路

根据嵌入式Linux的语音识别系统硬软件设计具体解说教程

基于嵌入式Linux的语音识别系统硬软件设计详细讲解教程-该设计运用三星公司的S3C2440,结合ICRoute公司的高性能语音识别芯片LD3320,进行了语音识别系统的硬件和软件设计。在嵌入式Linux操作系统下,运用多进程机制完成了对语音识别芯片、超声波测距和云台的控制,并将语音识别技术应用于多角度超声波测距系统中。

该规划运用三星公司的S3C2440,结合ICRoute公司的高性能语音辨认芯片LD3320,进行了语音辨认体系的硬件和软件规划。在嵌入式Linux操作体系下,运用多进程机制完结了对语音辨认芯片、超声波测距和云台的操控,并将语音辨认技能运用于多视点超声波测距体系中。经过测验,体系能够经过辨认语音指令操控丈量方向,无需手动干涉,最终将丈量成果经过语音播映出来。

1.导言

言语是人类传达信息的重要手法,语音辨认则是完结语音操控的关键技能。选用嵌入式语音辨认技能使得设备具有功耗低、运用简洁、灵敏等长处,摆脱了杂乱按键和按钮的困扰,在服务机器人、智能家居及消费电子等范畴发挥着重要作用。

2.体系构成与原理

语音辨认首要包含两个阶段:练习阶段和辨认阶段。在练习或辨认进程中,都有必要对输入语音进行预处理和特征提取。练习阶段经过用户输入的若干次练习语音,经过预处理和特征提取后得到特征参数,最终经过特征参数建模,然后树立练习语音的参阅模型库。而辨认阶段是将输入语音的特征矢量参数和参阅模型库中的参阅模型进行类似性衡量,然后把类似度最高的输入特征矢量作为辨认成果输出,然后到达语音辨认意图,如图1所示。

依据嵌入式Linux的语音辨认体系硬软件规划具体解说教程

语音辨认技能可分为:特定人辨认和非特定人辨认两种。特定人辨认是指需求对待辨认人的语音进行收集练习,辨认目标为专门的人;非特定人辨认是指辨认目标为大多数用户,一般要收集多个人的语音进行录音、练习和学习,然后到达较高的辨认率。

在实践运用中,现代技能开发嵌入式语音辨认有两种完结方法:调入嵌入式语音开发包和外扩语音辨认芯片。本文的语音辨认体系计划是以嵌入式处理器S3C2440为中心,外扩非特定人语音辨认芯片LD3320,并将超声波测距模块和云台相结合作为体系的机械执行机构。体系丈量进程如下:首要依据语音指令操控两自由度云台的位姿,使超声波探测器指向特定方向,然后敞开超声波探测器,丈量出前方障碍物间隔,最终将丈量成果转化为能够播映的二进制数据流,经过LD3320的播映功用完结数据的播映。

3.硬件电路规划计划

硬件电路首要包含语音辨认部分、主控部分、超声波测距部分和舵机操控部分,如图2所示。处理器为三星公司的S3C2440,体系主频最高可达533MHz,支撑SPI、I2C、UART等接口,能够满意操控体系的需求。主控芯片S3C2440经过SPI总线完结对语音辨认模块的读写操作,超声波测距部分和舵机操控部分由处理器的GPIO进行一致操控。

依据嵌入式Linux的语音辨认体系硬软件规划具体解说教程

3.1语音辨认电路规划

为了使体系能够辨认操作人员宣布的语音指令,规划中选用了由ICRoute公司规划出产的非特定人语音辨认芯片LD3320,它集成了语音辨认处理电路和一些外部电路,包含AD、DA转换器、麦克风接口、声响输出接口等,不需求外接任何的辅佐芯片如Flash、RAM。在主操控器的操控下,能够辨认出预先添加到辨认列表中的内容。规划中参阅了ICRoute发布的LD3320数据手册,图中LD3320的P0、P1、P2引脚经过SPI接口与嵌入式处理器相接,操控信号WRB、CSB、RSTB以及中止回来信号引脚INTB与处理器S3C2440直接相连,如图3所示。

依据嵌入式Linux的语音辨认体系硬软件规划具体解说教程

3.2超声波测距和舵机操控电路规划

超声波测距原理相对比较老练,体系中选用超声波测距模块HC-SR04。该模块有两个TTL电平通讯引脚,兼容3.3V电平。其间,操控端口Trig发一个10us以上的高电平,接纳端口Echo将输出与间隔成正比的高电平信号。当Echo有高电平输出时就敞开处理器守时器,当端口电平跳变为低电平时封闭守时器,依据守时器的值可核算得到障碍物的间隔。其间,操控端口Trig和接纳端口Echo别离接至处理器的GPG9、GPG6引脚。

超声波测距模块的感应视点小于15°,为了扩展测距的感应视点规模,将超声波测距模块安装在两自由度云台上,其间,舵机为SG90(9G),旋转视点为180°。处理器经过GPB0和GPB1别离操控两个舵机以完结云台的旋转,以丈量不同方向的障碍物,如图4所示。

依据嵌入式Linux的语音辨认体系硬软件规划具体解说教程

4.软件规划计划

体系软件依据嵌入式Linux操作体系,完结了语音辨认、语音播映、超声波测距和舵机操控等使命,运用fock机制为每项使命分配独立的进程,使体系能够进行多使命处理。针对不同功用模块编写了相应的底层驱动程序,为上层运用程序供给了调用接口。

体系作业流程如下:处理器经过SPI总线对语音辨认芯片LD3320进行通用初始化,使语音辨认芯片进入循环辨认形式,体系处理器重复发动语音辨认进程。如果有辨认成果,则依据辨认作相应处理后(比方播映某个声响作为应对)再发动下一个辨认进程。处理器经过SPI总线读取C5寄存器的辨认成果并剖析,将语音指令转换为超声波测距和舵机的操控信号,完结多方位测距使命,如图5所示。

依据嵌入式Linux的语音辨认体系硬软件规划具体解说教程

4.1语音辨认功用程序规划

语音辨认芯片LD3320的特征是兼有语音辨认和MP3播映的两项功用,在功用切换的时分,有必要进行通用初始化,对芯片进行一系列的设置。

语音辨认功用的驱动程序作业流程为通用初始化à语音辨认用初始化→写入辨认列表→开端辨认→呼应辨认中止。为了进步辨认成功率,在辨认列表中增加了“废物关键词”以吸收过错的辨认。上层运用程序为语音辨认功用分配了独自的进程,经过ioctl()函数操控LD3320的作业状况,read()函数能够读取辨认成果。程序中运用select机制完结read()函数的非堵塞拜访。一起,设定select监控超时时刻,在超时后,从头初始化语音辨认芯片LD3320,为下一次语音辨认做准备,如图6所示。

依据嵌入式Linux的语音辨认体系硬软件规划具体解说教程

4.2语音播映功用程序规划

LD3320支撑MP3数据播映,程序中操作次序为:通用初始化à播映形式初始化à音量调理à开端播映,并准备好中止呼应函数,翻开中止答应位。在程序中,首要将数字0~9、“十”、“百”、“点”的语音MP3数据别离转换为规范C言语数组格式文件,将该文件添加到工程中进行一致编译。然后把需求播映的间隔数据进行拆分,并对每一位进行查表操作,得到相应的语音数据。例如,将间隔数据12.5拆分为:“1”、“十”、“2”、“点”、“5”。最终将查表得到的语音数据按从左到右的次序组合,并存储到LD3320的播映数据存储器,在行将播映结束时,芯片会宣布中止请求,在中止呼应函数中接连写入播映数据,直到声响数据播映结束。

4.3超声波测距和云台操控程序规划

超声波测距功用的驱动程序归于Linux字符型驱动,运用ioctl()函数对相应GPIO进行时序操控,完结超声波的发射和接纳。在接纳端口输出高电平脉冲信号时,触发体系中止并运用守时器核算得到高电平持续时刻△T,依据公式(1)完结间隔S的丈量。式中V为超声波的传达速度,常温下超声波在空气中的传达速度是340米/秒。在运用程序中,能够经过read()函数读取到所丈量的间隔值。

S=VXΔT/2(1)

两自由度云台由两个舵机组成,别离操控云台水平缓笔直方向的旋转视点。在驱动程序中,首要翻开守时器PWM功用并设置守时周期,然后映射守时器中止函数,最终使能守时器,使守时器开端运转。程序中依据试验者宣布的语音指令,运用ioctl()函数操控守时器输出两路PWM信号,别离操控两个舵机的旋转视点,最终将运动合成为云台的位姿。

5.结语

本文介绍了嵌入式语音辨认技能在超声波测距体系中的一种运用以及完结方法,试验人员能够经过预先界说好的语音指令(例如:“开端丈量”、“左上方”、“前方”)完结对体系的操控,并运用超声波进行间隔丈量。丈量完结后,体系经过语音播映的方法将丈量成果反馈给试验人员,完结人机交互,进步了用户体会度。本体系具有易扩展的长处,能够将其运用到其它嵌入式操控体系中。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/dianlu/102198.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部