1、:./.一种基于语音识别的 控制方法侯龙潇张 桦赵 聪雷珊珊(河南省机械设计研究院有限公司河南 郑州)摘要:为了实现操作人员能够通过声音对自动化设备进行操作提出了一种通过语音控制西门子 的方法 首先获取待控制设备所需指令的语音样本对语音样本处理后建立 模型进行训练 然后建立语音样本模型与 寄存器的连接 控制 时将实时语音指令与语音样本模型进行匹配通过语音样本模型与 寄存器的连接修改对应寄存器的值实现控制信号的输出和参数的修改关键词:语音识别 模型可编程逻辑控制器中图分类号:.文献标识码:文章编号:()在工业生产中设备的操作员通常使用按钮、触摸屏、鼠标、键盘等人机交互装置对工业设备进行控制 其原
2、理是通过输入装置进行信号的输入和参数的修改经由可编程逻辑控制器()内部进行逻辑处理后输出指令到外部执行机构从而实现对设备的控制随着工业.时代的到来越来越多的工厂引入自动化设备来代替原有的人工作业从原来的纯手工作业和一人一机器的作业模式转变为一人控制一条生产线的作业模式“机器换人”模式的优点是可以提高工作效率、节约人力成本等但缺点也随之而来 面对越来越复杂的生产工艺为了满足需求工业设备的数量会越增越多操作逻辑也会变得越发繁琐按钮、触摸屏按键等输入装置的数量也会随之增多传统的人机交互方式的复杂程度也会相应增加 操作人员需要从众多的按钮和界面中找到正确的输入装置进行操作不仅浪费时间对操作人员的素质要
3、求也高没有经过系统培训和长时间操作经验的操作员很难胜任工作基于上述问题本文研究了一种通过使用语音指令控制 的方法旨在代替传统的输入装置完成对工业设备的控制降低人机交互的复杂程度缩短操作人员的训练周期 方法概述本文所述方法的流程如图 所示图 方法流程图 语音指令样本处理.语音样本采集为了获取原始的语音样本本文使用 模块对语音样本进行采样 采用 采样帧率、.时长采集单个语音指令样本 为了方便后期模型训练将采集到的原始语音样本以样本分类号加样本序号的方式命名样本分类号和样本序号之间使用符号“”进行分隔以 格式保存语音样本.谱减法去噪原始语音指令样本中噪声的主要构成是环境噪声为了获得纯净的语音样本需要
4、对语音样本进行去噪声处理收稿日期:作者简介:侯龙潇()男工程师硕士主要研究方向为自动化控制、工业机器人.年 月 机械设计与制造工程 .第 卷 第 期 .本文采用谱减法剔除语音样本中的环境噪声谱减法的基本原理是默认混合信号(含噪信号)的前几帧仅包含环境噪声并利用混合信号的前几帧的平均幅度谱作为噪声的幅度谱最后利用混合信号(含噪信号)的幅度谱与估计到的幅度谱相减得到纯净语音信号的幅度谱读取采集到的原始语音样本文件将波形数据转换为数组()对()加汉明窗并分帧则每帧数据为()对第 帧信号进行傅里叶变换至频域即可得到第 帧信号的幅度谱():()()()()式中:为当前帧编号 为时域离散信号的编号 为时域
5、离散信号的点数假设语音样本的前几帧中没有有效的信息成分即前几帧为纯粹的噪声信号则取语音样本的前 帧作为噪声帧估计出噪声帧的平均能量值()为:()()()当语音信号大于噪声的功率时用原始语音减去噪声成分当语音信号小于噪声的功率时则用估计出来的噪声信号表示下限值:()()()()()()()()()式中:()为去噪后语音帧幅度谱()为噪声帧幅度谱之后再将去噪声后的每帧幅度谱信号进行傅里叶逆变换得到时域语音信号将去噪声后的语音样本以 格式进行保存.端点检测每个语音样本的采集时长为.但是真正有意义的音频并不是充满整个采集周期此外由于语音样本经过.节的去噪声处理会使语音样本的起始端和末尾端产生空白段 端
6、点检测就是在一段包含语音的信号中准确地确定语音的起始点和终止点将语音段和非语音段区分开本文采用双门限法对语音指令样本进行端点检测 一段语音信号分为静音区、清音区和浊音区三部分 其中浊音区的短时能量最大取一个较高的短时能量阈值区分浊音区和清音区清音区的能量较低取一个较低的短时能量阈值来判定语音的开始另外由于微小的噪声也有可能超过低阈值但并不是语音的开始这就需要通过短时过零率区分清音区和静音区 流程如下:)取一个较高的短时能量作为阈值 利用这个阈值先分出语音中的浊音区(如图 中的 区间)取一个较低的能量阈值 利用这个阈值从、向两端进行搜索将较低能量清音区也加入到语音段(如图 中的 区间)取一个短时
7、过零率的阈值 利用这个阈值从、继续向两端进行搜索短时过零率大于 倍 的部分则认为是语音的清音部分将该部分加入语言段就是求得的语音段(如图 中的 区间)图 双门限法示意图.计算 在语音识别领域最常用到的语音特征就是梅尔倒谱系数()通过对人类听觉的研究发现人类听觉的敏感度取决于声波的频率其中 的声波频率能最大程度地影响语音的清晰度 此外由于频率较低的声音在内耳蜗基底膜上行波传递的距离大于频率较高的声音因此低音容易掩蔽高音 为此人们在从低频到高频这一段频带内按临界带宽的大小由密到疏安排一组带通滤波器对输入信号进行滤波 将每个梅尔滤波器输出的信号能量作为此信号的 参数对此参数进一步处理组合后作为语音的
8、 特征由于高频语音部分的能量较小为了提升高频部分使信号的频谱变得平坦先对端点检测后的语音信号进行预加重处理:()()()()式中:()为预加重后的数据()为当前帧数据 为预加重系数取值.完成预加重后将信号进行分帧 其中帧长 年第 卷 机械设计与制造工程 帧移 对每一帧数据进行加窗 对加窗后的每帧信号进行快速傅里叶变换:()()()()式中:为帧总数获取每一帧的能量总和:()()式中:为分帧后每一帧的能量总和 将功率谱通过一组梅尔尺度的三角窗滤波器组(共 个)对信号的功率谱滤波 每一个三角窗滤波器覆盖的范围都近似于人耳的一个临界带宽以此来模拟人耳的掩蔽效应 滤波器组的示意图如图 所示图 梅尔滤波
9、器组示意图 滤波器频率响应为:()()()()()()()()()()()()()()()()()()式中:()为通过梅尔滤波器后的响应结果 为第 个三角滤波器的谱线索引号()为各个三角滤波器的中心频率计算每个滤波器组输出的能量:()()()()式中:()为每个滤波器输出的能量值 为滤波器总数为了去除各维信号之间的相关性对能量的对数做离散余弦变换得到 参数其中 为数据的帧号 为第 帧的第 列:()()(.)()式中:()为 参数标准的倒谱参数只反映了语音参数的静态特性语音的动态特性可以用静态特征的差分参数来描述:()()()式中:为第 个一阶差分()、()为当前语音帧的相邻前后帧 参数将一阶差
10、分的结果再代入式()中就可以得到二阶差分的参数 最后将帧能量也加入到 特征中即 特征是由 参数、一阶差分参数、二阶差分参数和帧能量组成的 训练 模型.简介若系统在时间 的状态只与其在时间()的状态相关那么可以将系统构建成一个离散的一阶马尔科夫链()若只考虑独立于时间 的随机过程:()()则该过程为马尔科夫模型 式中 为系统在时间的状态 为系统所有状态分类中的某个状态()为系统相对于时间 处于某个状态的概率为转移概率 在马尔科夫模型中每个状态代表了一个可观察的事件 在实际应用中如果模型所经过的状态序列是未知的只知道状态的概率函数那么该模型是一个双重的随机过程 其中模型的转换状态是隐蔽的可观察事件
11、的随机过程是隐蔽状态转换过程的随机函数混合高斯随机变量的分布非常适合描述语音序列的 特征用 建模声学特征 每一个特征是由一个音素确定的不同特征可以按状态进行聚类假设声学特征的概率()服从正态分布则 就是一个混合高斯模型的下采样值由于在 中音素被表示为隐状态即每一个特征是由某几个状态确定的不同音素特征可以按状态来聚类因此将 整合进 中来拟合基于状态的输出分布.数据准备首先将语音样本集中的每个语音样本组随机抽出 的样本数量作为测试集然后对训练集和测试集中语音样本的 特征和样本序号进行分类标号 年第 期 侯龙潇:一种基于语音识别的 控制方法.模型训练本文使用 框架中的 类建立孤立词识别模型 步骤如下
12、:建立模型组列表对每一个语音指令建立模型设置每个音节的状态数目为 每个音节的特征由 个混合高斯成分的 表示每一个状态由一个对角协方差矩阵表示最大迭代次数为 次每次通过迭代学习更新状态转移概率、每个高斯成分的均值、每个高斯成分协方差以及每个高斯成分的权重模型组建立完成后使用.()函数对训练集样本的特征进行训练流程如下:)对语音信号的每个音素分别使用 进行三状态建模其中 的发射概率使用高斯分布函数建模)初始化对齐 将语音信号的帧平均对应到每个状态)更新模型参数 将统计获得的每个状态的转移次数除以总转移次数获得每个状态的转移概率)使用维特比算法根据上一步得到的转移概率和条件概率重新对语音信号进行状态
13、级别的对齐)重复步骤)和)直至收敛)保存训练完成的模型.模型测试首先使用语音样本组中随机抽出的测试集对训练完成的模型进行测试 将测试集语音样本的 特征放入模型组中使用()函数获取该语音特征在每个语音模型上的得分 然后选取最高得分的模型与测试语音的标签进行比对并统计正确率 关联语音指令与 寄存器数据.西门子 通信协议及数据简介 协议是西门子 通信的核心协议它是一种位于传输层上的通信协议传输层为 协议依赖于网络层的 协议其物理层/数据链路层可以是 总线、总线或者工业以太网 的数据存储通过“变量”的形式与存储区间关联分为输入()、输出()、位存储()和数据块()程序在访问对应的存储区时是通过访问 的
14、过程映像对相应地址进行操作的.简介 是一个基于以太网与 系列的西门子 通讯的开源库封装了 通信的底层协议可使用普通电脑通过编程与西门子 系列 进行通信 支持 系列的 、以及 的以太网通信.与 的连接 作为服务器端基于 协议 端使用 作为客户端进行网络连接 与 需要处于同一网段并且需要将连接的端口设置为 号端口以避免与 连接的其他设备冲突.与 数据寄存器数据的映射关系 所执行命令操作的原理是修改对应寄存器地址中的数据 选择 库中的 模式 模式里提供了读写 存储区的函数:.()和.()为 的地址 为数据块地址编号 为读写字节的起始地址 为读写的数据类型所占字节长度 其中参数 地址类型(十六进制类型
15、)与 存储区的映射关系如表 所示表 参数 与 存储区映射关系 侧 地址 侧数据类型说明 输入存储区 输出存储区 标记存储区/数据块 通过使用 库中的函数.()和.()可对 的输入输出寄存器数据中的数据进行读取和写入 对于 和 存储区则需要使用函数.()和.()对 和 存储区变量进行读写操作其参数与使用方法同读写输入输出寄存器.建立语音标签与 存储区数据的连接语音标签首先匹配 的函数再通过函数对 存储区的数据进行读写从而建立起语音模型到 数据的连接第 节训练完成的语音模型由若干条语音指令组成首先建立语音指令标签标签数量需等于语音指令数目将标签号与语音指令一一对应然后通过语音指令的内容将语音指令的
16、标签按照读、写功能进行第一次分类再按照需要修改的 年第 卷 机械设计与制造工程 存储区位置进行第二次分类经过两次分类可以确定语音指令标签所调用的 函数最后根据 存储区变量的地址确定 函数的参数值 语音指令控制.语音指令采集、预处理、特征提取为了保证语音指令能与语音样本模型达到良好的匹配度语音指令的采集及预处理使用和语音样本一样的设置及处理流程即以 采样帧率、.时长采集单个语音指令使用谱减法去除噪声采用端点检测去除音频两端的空白部分最后计算出 特征.模型匹配创建语音指令特征在模型组中每个语音模型的匹配分数列表加载训练完成的模型组使用()函数获取实时语音特征在每个语音模型上的得分并存入预测分数列表
17、筛选出分数最高的模型得到该模型对应的语音标签.控制 端作为客户端与 建立连接判断语音标签所对应的函数、对应 寄存器的地址和参数根据第 节建立的语音标签与 存储区的连接调用对应的函数对 寄存器数据进行修改实现对 的控制 试验结果与分析.试验准备本文设计了 个语音指令 分别为“”“.输出”“.复位”“绿灯打开”“绿灯关闭”“红灯闪烁 次”“急停”每个语音指令进行 次录音以语音样本加序号进行命名并保存每个语音样本随机抽出 条语音指令作为测试集其余的组成训练集对所有的原始语音样本进行预处理并计算 特征本文试验用 使用西门子 系列的 模块 模块的运行指示灯对应语音指令“”输出 组第 个输出点对应“.”输
18、出 组第 个输出点对应“绿灯”状态输出 组第 个输出点对应“红灯”状态“急停”时 输出组全部复位对采集到的语音指令的 特征建模进行迭代训练并对训练完成的模型进行保存 部分语音模型训练迭代收敛情况如图 所示图 部分语音模型迭代收敛报告 语音指令为“.输出”时 模块 状态如图 所示图 模块 状态图.试验结果试验时按照随机顺序说出语音指令每个指令试验 次观察 执行的动作并记录 表 为试验结果统计表 语音指令控制 试验结果表语音指令 执行正确次数 执行错误次数正确率/.输出.复位绿灯打开绿灯关闭红灯闪烁 次急停.结果分析实时语音指令控制 的试验进行了总计 次测试总体成功率达到.可见本文提出的方法可以满
19、足一些精确度要求不高的 控 年第 期 侯龙潇:一种基于语音识别的 控制方法制要求分析试验结果可知语音指令发音相近的情况下容易出现识别错误主要原因可能是因为起到区分性作用的特征在序列上整体位置比较靠后在模型训练中计算概率是由状态转移概率乘以观测值的概率所以在序列后端计算出的概率就非常小导致区分性不强 在后续的改进中考虑在计算概率时加入正则项以防止出现序列后端概率数值过低的问题 另外考虑增加冗余的语音指令模型组共同对输入的语音指令进行识别以增强语音识别的容错性 结束语针对传统工业领域控制方式引发的问题本文基于 语音模型提出了一种通过语音指令控制 的方法 该方法通过采集语音指令样本对模型加以训练建立
20、语音指令和 寄存器之间的映射将按钮、按键等工业控制手段替换成对操作人员更为友好的语音指令完成对工业设备的控制 相较于传统的控制方式降低了操作的复杂程度为工业控制模式增加了新的方式和思路参考文献:张翠改.基于谱熵的语音端点检测算法的研究.保定:河北大学.周金傲龙华.基于音频特征参数的多语种分类算法.通信技术():.何孝月.基于 的 语音质量评估的研究与实现.长沙:中南大学.何霞.通信信号指纹特征分析技术.南京:东南大学.颜军.基于条件随机场的中文分词研究与应用.武汉:武汉理工大学.李坡王丹.基于 的西门子 以太网客户端开发.江苏高职教育():.张国栋洪荣晶方成刚.智能机器人工作站仿真实时系统构建方法.计算机应用与软件():.(.):.:年第 卷 机械设计与制造工程