0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于增量K均值分段HMM的识别算法在微机器人控制系统中的应用

电子设计 来源:郭婷 作者:电子设计 2018-12-07 08:14 次阅读

引言

据统计,人类日常生活中的沟通大约有75%左右是通过语言来完成的。语言作为人类特有的功能,不但是相互传递信息的主要手段,也是人们最理想的人机交互方式之一。在现代社会机器人这个词语已经不再新鲜。有些机器人已经走进了我们的生活,成为我们生活的组成部分。在下文我们要讲的是基于毫米级全方位无回转半径移动机器人课题。我们微系统配置示意图如图1所示。主要由主机Host(配有图像采集卡)、两个CCD摄像头(其中一个为显微摄像头)、微移动装配平台、微机器人本体和系统控制电路板等组成。计算机和摄像机组用于观察微机器人的方位,控制系统控制微机器人的移动。

基于增量K均值分段HMM的识别算法在微机器人控制系统中的应用

与机器进行语音交流,让机器明白你说什么,这是人们长期以来梦寐以求的事情。语音识别技术就是让机器通过识别和理解过程把语音信号转变为相应的文本或命令的高技术。语音识别技术主要包括特征提取技术、模式匹配准则及模型训练技术三个方面。 本文在系统控制电路中嵌入式实现语音识别算法,通过语音控制微机器人。也就是说可以通过你的话微型机器人做出相应的动作。

微机器人控制系统的资源有限,控制方法比较复杂,并且需要有较高人的实时性,因此本文采用的语音识别算法必须简单、识别率高、占用系统资源少。毕竟微型机器人里面能放的东西有限,放多了东西虽然提高了语音识别率或者工作效率,但是也加大了微型机器人的体积,说不定就不能做有些工作。

隐马尔可夫模型(Hidden Markov Model,HMM)作为一种统计分析模型,创立于20世纪70年代。80年代得到了传播和发展,成为信号处理的一个重要方向,现已成功地用于语音识别,行为识别,文字识别以及故障诊断等领域。HMM(隐马尔可夫模型)的适应性强、识别率高,是当前语音识别的主流算法。使用基于HMM非特定人的语音识别算法虽然借助模板匹配减小了识别所需的资源,但是前期的模板储存工作需要大量的计算和存储空间,因此移植到嵌入式系统还有一定的难度,所以很多嵌入式应用平台的训练部分仍在PC机上实现。

为了使训练和识别都在嵌入式系统上实现,本文给出了一种基于K均值分段HMM模型的实时学习语音识别算法,不仅解决了上述问题,而且做到了智能化,实现了真正意义上的自动语音识别。

1 增量K均值分段HMM的算法及实现

由于语音识别过程中非特定的因素较多,为了提高识别的准确率,针对本系统的特点,采用动态改变识别参数的方法提高系统的识别率。

语音识别方法主要是模式匹配法。 在训练阶段,用户将词汇表中的每一词依次说一遍,并且将其特征矢量作为模板存入模板库。 在识别阶段,将输入语音的特征矢量依次与模板库中的每个模板进行相似度比较,将相似度最高者作为识别结果输出。

训练算法是HMM中运算量最大、最复杂的部分,训练算法的输出是即将存储的模型。目前的语音识别系统大都使用贝斯曼参数的HMM模型,采取最大似然度算法。这些算法通常是批处理函数,所有的训练数据要在识别之前训练好并存储。因此很多嵌入式系统因为资源有限不能达到高识别率和实时输出。

本系统采用了自适应增量K均值分段算法。在每次输入新的语句时都连续地计算而不对前面的数据进行存储,这可以节约大量的时间和成本。输入语句时由系统的识别结果判断输入语句的序号,并对此语句的参数动态地修改,真正做到了实时学习。

K均值分段算法是基于最佳状态序列的理论,因此可以采用Viterbi算法得到最佳状态序列,从而方便地在线修改系统参数,使训练的速度大大提高。

为了达到本系统所需要的功能,对通常的K均值算法作了一定的改进。在系统无人监管的情况下,Viterbi解码计算出最大相似度的语音模型,根据这个假设计算分段K均值算法的输入参数,对此模型进行参数重估。首先按照HMM模型的状态数进行等间隔分段,每个间隔的数据段作为某一状态的训练数据,计算模型的初始参数λ=f(a,A,B)。采用Viterbi的最佳状态序列搜索,得到当前最佳状态序列参数和重估参数θ,其中概率密度函数P(X,S|θ)代替了最大似然度算法中的P(X,θ),在不同的马尔科夫状态和重估之间跳转。基于K均值算法的参数重估流程如下:

基于增量K均值分段HMM的识别算法在微机器人控制系统中的应用

为了使参数能更快地收敛,在每帧观察语音最佳状态序列的计算结束后,加入一个重估过程,以求更快地响应速度。

基于增量K均值分段HMM的识别算法在微机器人控制系统中的应用

可以看到,增量K均值算法的特点为:在每次计算完观察值最佳状态序列后,插入一个重估过程。随时调整参数以识别下一个句子。

由于采用混合高斯密度函数作为输出概率分布可以达到较好的识别效果,因此本文采用M的混合度对数据进行训练。

对λ重估,并比较收敛性,最终得到HMM模型参数训练结果。

可见,用K均值法在线修改时,一次数据输入会有多次重估过程,这使系统使用最近的模型估计后续语句的最佳状态序列成为可能。但是对于在线修改参数要求,快速收敛是很重要的。为了得到更好的Viterbi序列,最佳状态序列使用了渐增的算法模型,即快速收敛算法。

语音识别的具体实现过程为:数字语音信号通过预处理和特征向量的提取,用户通过按键选择学习或者识别模式;如果程序进入训练过程,即用户选择进行新词条的学习,则用分段K均值法对数据进行训练得到模板;如果进入识别模式,则从Flash中调出声音特征向量,进行HMM算法识别。在识别出结果后,立即将识别结果作为正确结果与前一次的状态做比较,得到本词条更好的模板,同时通过LED数字显示和语音输出结果。系统软件流程如图2所示。

基于增量K均值分段HMM的识别算法在微机器人控制系统中的应用

对采集到的语音进行16kHz、12位量化,并对数字语音信号进行预加重:

基于增量K均值分段HMM的识别算法在微机器人控制系统中的应用

L选择为320个点,用短时平均能量和平均过零率判断起始点,去除不必要的信息。

对数据进行FFT运算,得到能量谱,通过24通道的带通滤波输出X(k),然后再通过DCT运算,提取12个MFCC系数和一阶二阶对数能量,提取38个参数可以使系统识别率得到提高。

为了进行连接词识别,需要由训练数据得到单个词条的模型。方法为:首先从连接词中分离出每个孤立的词条,然后再进行孤立词条的模型训练。对于本系统不定长词条的情况,每个词条需要有一套初始的模型参数,然后按照分层构筑的HMM算法将所有词串分成孤立的词条。对每个词条进行参数的重估,判断是否收敛。如果差异小于某个域值就判断为收敛;否则将得到的参数作为新的初始参数再进行重估,直到收敛。

当然本系统还要对语音进行前端处理工作。主要是指在特征提取之前,先对原始语音进行处理,部分消除噪声和不同说话人带来的影响,使处理后的信号更能反映语音的本质特征。最常用的前端处理有端点检测和语音增强。端点检测是指在语音信号中将语音和非语音信号时段区分开来,准确地确定出语音信号的起始点。经过端点检测后,后续处理就可以只对语音信号进行,这对提高模型的精确度和识别正确率有重要作用。语音增强的主要任务就是消除环境噪声对语音的影响。目前通用的方法是采用维纳滤波,该方法在噪声较大的情况下效果好于其它滤波器

2 实验结果

实验采用30个人(15男,15女)的声音模型进行识别。首先由10人(5男,5女)对5个命令词(前进、后退、左移、右移、快速)分别进行初始数据训练,每人每词训练10次,得到训练模板。然后再由这30人随机进行非特定人语音识别。采用6状态的HMM模型,高斯混合度选为14,得到图3的实验结果。

基于增量K均值分段HMM的识别算法在微机器人控制系统中的应用

逐步增加高斯混合度数目,可以得到图4的实验结果。可见高斯混合度在18的时候达到较好的识别效果,混合度太高识别率反而会有所下降,这是由于嵌入式系统的资源有限,运算复杂度的增长超过了嵌入式设备的限制所造成的。

基于增量K均值分段HMM的识别算法在微机器人控制系统中的应用

为了使微机器人能够正确地执行人的声音指令,本文将语音识别的过程嵌入微机器人的控制系统中,根据微机器人控制系统资源有限、对实时性要求高的特点,使用增量K均值分段HMM的算法,简化计算节省了所需的硬件资源,实现了实时学习的语音识别,能方便地对微机器人进行控制。

本系统的识别率达到了较高的标准,又由于加入了智能化的用户选择部分,用户可随时选择学习新的语句,使其有更广阔的应用前景。

结论

本文介绍了一种应用于微机器人控制平台的语音识别算法,可实现简单命令词语的识别,控制微机器人的移动。利用K均值分段法,在每次计算完观察值最佳状态序列后,插入一个重估过程,随时调整参数以识别下一个句子。实验结果表明,这种实时学习的语音识别算法适合嵌入式应用。当然由于嵌入式平台受到处理速度、存储空间的限制,所以能够对微机器人发出的指令十分有限,识别率还有待提高。因此,研究语音识别算法,比较各种算法的优缺点,进而在嵌入式微机器人控制系统上实现大词汇量非特定人的语音识别,实现真正意义上的人机交流是今后进一步的工作。相信在科学技术的发展迅速社会背景下,这个语音控制微型机器人的技术会逐渐发展起来,最终达到人机交流与人人交流一般。让微型机器人的应用更加广泛。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制系统
    +关注

    关注

    41

    文章

    5960

    浏览量

    108674
  • 机器人
    +关注

    关注

    206

    文章

    27015

    浏览量

    201357
  • 摄像头
    +关注

    关注

    59

    文章

    4606

    浏览量

    92866
收藏 人收藏

    评论

    相关推荐

    LabVIEW的六轴工业机器人运动控制系统

    LabVIEW开发六轴工业机器人运动控制系统 本项目开发了一个高效的工业机器人控制系统,重点关注于运动学算法和轨迹规划
    发表于 12-21 20:03

    高动态人形机器人“夸父”通过OpenHarmony 3.2 Release版本兼容性测评

    深圳开鸿数字产业发展有限公司(以下简称”深开鸿“)OpenHarmony生态建设能力和在新兴行业领域的技术创新实力,也标志着OpenHarmony新兴行业领域又向前迈进了一步。 夸父人形机器人由深开
    发表于 12-20 09:31

    理疗机器人控制系统设计图

    电子发烧友网站提供《理疗机器人控制系统设计图.pdf》资料免费下载
    发表于 12-18 10:47 0次下载

    ROS让机器人开发更便捷,基于RK3568J+Debian系统发布!

    领域的集大成者,主要应用于机器人控制领域,如AGV工业机器人控制器、智能机械臂控制器、机器人导航
    发表于 11-30 16:01

    搭建机器人关节力控制系统步骤

    算法。一个常用的算法是PID控制算法。PID控制算法基于误差信号,它通过比较实际位置和期望位置之
    的头像 发表于 11-08 17:45 491次阅读

    使用Arduino和PAJ7620手势传感器制作手势控制机器人

    使用Arduino和PAJ7620手势传感器制作手势控制机器人,简单程序即可实现。小小的传感器可以识别各种手势。它采用内置的空间传感器,可以感知接近和离开的对象。
    发表于 09-27 06:17

    教你做个PID控制巡线机器人

    本项目中,我们将学习如何使用带PID控制器的线跟随机器人使用Arduino Nano来解决迷宫。
    发表于 09-25 06:54

    ai人工智能机器人

    的进行监控管理。 智能电话机器人的另一个优势是不知疲倦,不需要休息和喝水,不需要休息。人在工作时就会有各种各样的脾气,但智能电话机器人不会,永远都以最严谨、最周到的态度和客户进行沟通。 科技高速发展
    发表于 09-21 11:09

    【IoT毕设】机智云平台+STM32+树莓派的草莓采摘机器人控制系统

    利用深度学习算法实现草莓的识别与定位,将采摘信息以及采摘机器人的状态使用物联网技术传输到云端,实现草莓采摘机器人的自主采摘和云端监测,最终完成一整套稳定
    发表于 08-16 17:35

    1原型聚类 k均值算法(2)#大数据机器人

    机器人
    未来加油dz
    发布于 :2023年07月10日 20:22:55

    1原型聚类 k均值算法(1)#大数据机器人

    机器人
    未来加油dz
    发布于 :2023年07月10日 20:22:16

    【科普】干货!带你从0了解移动机器人(四) ——移动机器人导航技术

    移动机器人导航是指移动机器人确定自己地图参考系的位置后,自动规划出通往地图参考系某个目标位置路径并沿着该路径到达目标位置点的能力,是移
    发表于 06-28 09:52

    【科普】干货!带你从0了解移动机器人(三) ——自主导航系统及上位机软件设计与实现

    发展。在前两篇文章,我们介绍了移动机器人的基本概念和硬件组成。本文继续深入探讨移动机器人的自主导航系统及上位机软件****设计与实现。 01移动
    发表于 06-28 09:36

    机器人控制算法简述

    随着机器人技术的不断进步,机器人控制算法也越来越复杂和精细。机器人控制
    的头像 发表于 05-19 16:27 2674次阅读
    <b class='flag-5'>机器人</b><b class='flag-5'>控制</b><b class='flag-5'>算法</b>简述

    浅谈儿童陪护机器人

    儿童陪护机器人中得到了广泛应用。 儿童陪护机器人中,步进电机芯片主要用于转动控制。在此过程控制
    发表于 05-11 15:12