首页 > 乐器声学 专利正文
基于机器学习的PLC语音识别方法与流程

时间:2022-02-24 阅读: 作者:专利查询

基于机器学习的PLC语音识别方法与流程
基于机器学习的plc语音识别方法
技术领域
1.本发明涉及机器学习技术领域,特别是一种基于机器学习的plc语音识别方法。


背景技术:

2.在传统的工业控制中,操作员通过使用按钮、触摸屏、鼠标、键盘等设备对plc进行信号的输入或参数的修改,经由plc进行逻辑处理后输出指令到外部,从而对设备进行控制,当面对复杂的生产工艺时,设备为满足工艺要求,操作逻辑会越来越繁琐,按钮、触摸屏按键等输入装置的数量会随之增多,传统的人机交互方式的复杂程度也会随之增加,操作人员需要从众多的按钮和界面中找到正确的输入装置进行输入操作,不仅浪费时间,对操作人员的专业素质要求也高,没有系统的培训和长时间的操作经验的操作员很难在短时间胜任工作。
3.基于上述前提,提供一种自然且方便的人机交互方式就显得尤为重要。


技术实现要素:

4.针对上述情况,为克服现有技术之缺陷,本发明提供一种基于机器学习的plc语音识别方法,通过获取设备所需指令的语音数据,对语音数据处理后建立训练模型,使用时将采集到的指令语音处理后与模型进行匹配,将匹配结果写入plc内部寄存器,实现信号的输出和参数的修改,能够准确的识别操作员发出的语音指令,根据指令设备进行相应的作业。
5.本发明的一种基于机器学习的plc语音识别方法,具体实现步骤如下,a,采集语音信号样本;b,语音信号端点检测、特征提取;c,训练hmm

gmm模型;d,建立语音指令与plc寄存器数据的映射关系;e,采集语音指令;f,对语音指令进行端点检测、特征提取;g,将语音指令的特征与模型进行匹配;h,匹配结果通过与plc寄存器数据的映射关系修改寄存器数据。
6.本发明的有益效果是:基于机器学习,首先采集语音信号样本,并进行语音信号端点检测、特征提取,之后训练出hmm

gmm模型,其次建立语音指令与plc寄存器数据的映射关系,最后采集语音指令,并对语音指令进行端点检测、特征提取,将语音指令的特征与模型进行匹配将匹配结果写入plc内部寄存器,实现信号的输出和参数的修改,能够准确的识别操作员发出的语音指令,也即实现了将按钮、按键等工业控制手段替换成对操作人员更为友好的语音指令,使操作人员不必面对复杂的操作界面,同时也可以实现远程操作设备,为工业控制模式增加了新的方式和思路。
附图说明
7.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
8.图1为本发明的总体步骤流程图。
9.图2为本发明的步骤a流程图。
10.图3为本发明的步骤b中语音信号端点检测的波形图。
11.图4为本发明的步骤d中 d1的对应图。
12.图5为本发明的步骤h流程图。
具体实施方式
13.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
14.实施例一,一种基于机器学习的plc语音识别方法,具体实现步骤如下,a,采集语音信号样本;b,语音信号端点检测、特征提取;c,训练hmm

gmm模型;d,建立语音指令与plc寄存器数据的映射关系;e,采集语音指令;f,对语音指令进行端点检测、特征提取(语音指令的采集、端点检测和特征提取方式同语音信号样本的采集、端点检测和特征提取);g,将语音指令的特征与模型进行匹配;h,匹配结果通过与plc寄存器数据的映射关系修改寄存器数据,结合映射关系和语音指令预测结果,使用sanp7连接目标plc,完成对应地址的寄存器数据修改。
15.实施例二,在实施例一的基础上,所述步骤a中采集语音信号样本的步骤如下,a1,设置每个语音信号样本采集次数;a2,设置语音信号样本的保存路径;a3,设置格式为pyaudio.paint16,声道数为1,采样率16000,单个语音信号录音时长为2.5s;a4,使用pyaudio模块进行语音的采集;a5,使用wave模块对采集的语音信号样本进行保存;a6,使用谱减法对语音信号样本进行去噪;a7,循环执行直至达到设置的采集次数。
16.实施例三,在实施例一的基础上,所述步骤b中语音信号端点检测,端点检测就是在一段包含语音的信号中,准确地确定语音的起始点和终止点,将语音段和非语音段区分开,本发明采用双门限法进行语音的端点检测。双门限法有三个阈值,前两个是语音能量的阈值,最后一个是语音过零率的阈值。浊音的能量高于清音,清音的过零率高于无声部分,先利用能量,将浊音部分区分出来,再利用过零率,将清音也提取出来,完成端点检测,具体
的步骤如下,bj1,取一个较高的短时能量作为阈值mh,利用这个阈值,先分出语音中的浊音部分,a1到a2区间;bj2,取一个较低的能量阈值ml,利用这个阈值,从a1,a2,向两端进行搜索,将较低能量段的语音部分也加入到语音段,进一步扩大语音段范围,b1

b2之间还是语音段;bj3,利用短时过零率区分辅音、静音,短时过零率的阈值为zs,将利用短时能量区分完的语音段继续向两端进行搜索,短时过零率大于3倍zs的部分,则认为是语音的清音部分,将该部分加入语言段,就是求得的语音段,c1

c2之间是语音段。
17.实施例四,在实施例一的基础上,所述步骤b中语音信号特征提取的步骤如下,bt1,先对语音进行预加重、分帧和加窗;bt2,对每一个短时分析窗,通过fft得到对应的频谱;bt3,将上面的频谱通过mel滤波器组得到mel频谱(人的听觉系统是一个特殊的非线性系统,它响应不同频率信号的灵敏度是不同的。在语音特征的提取上,人类听觉系统做得非常好,它不仅能提取出语义信息, 而且能提取出说话人的个人特征,这些都是现有的语音识别系统所望尘莫及的。如果在语音识别系统中能模拟人类听觉感知处理特点,就有可能提高语音的识别率,梅尔频率倒谱系数(mel frequency cepstrum coefficient, mfcc)考虑到了人类的听觉特征,先将线性频谱映射到基于听觉感知的mel非线性频谱中,然后转换到倒谱上);bt4,在mel频谱上面进行倒谱分析,取对数,做逆变换,实际逆变换一般是通过dct离散余弦变换来实现,取dct后的第2个到第13个系数作为mfcc系数,获得mel频率倒谱系数mfcc,这个mfcc就是这帧语音的特征。
18.实施例五,在实施例一的基础上,所述步骤c训练hmm

gmm模型的步骤如下,c1,对语音信号的音素分别使用hmm

gmm(hidden markov model:一个有隐节点unobservable和可见节点visible的马尔科夫过程,gaussian mixture model: 高斯混合模型可以看作是由 k 个单高斯模型组合而成的模型,这 k 个子模型是混合模型的隐变量hidden variable,一般来说,一个混合模型可以使用任何概率分布,这里使用高斯混合模型是因为高斯分布具备很好的数学性质以及良好的计算性能,语音识别就分为三步:第一步,把帧识别成状态,由gmm完成;第二步,把状态组合成音素,由hmm完成;第三步,把音素组合成单词,由hmm完成;可以理解为整个hmm

gmm网络其实主要是为了hmm网络服务的,对于语音识别需要解决的问题,就是把mfcc特征正确的识别成对应hmm 状态,这个过程涉及两个概率需要计算,一是把当前帧的特征识别为这个状态的概率,也就是通常hmm中说的likelihood ,也是gmm中的均值向量和协方差矩阵,即gmm网络是为了获得当前状态概率的;二是上个状态转化为当前状态的概率也就是状态转移概率,这个过程是hmm中说的decoding,一个序列转化为另一个序列理论上有指数级种转化方式,所以每一个帧只取概率最高的那个状态,这样的路线选择方法被称为维特比算法)建模,使用3状态建模,其中hmm的发射概率使用高斯分布函数建模;c2,初始化对齐,将语音信号的帧平均对应到每个状态;c3,更新模型参数,统计获得每个状态的转移的次数,除以总转移次数,获得每种状态的转移概率,计算状态的mfcc特征的均值向量和协方差矩阵,即发射概率;
c4,使用维特比算法,根据上一步得到的转移概率和发射概率,重新对语音信号进行状态级别的对齐;c5,重复步骤c2,步骤c3,直至收敛;c6,保存训练完成的模型。
19.实施例六,在实施例一的基础上,所述步骤d中建立语音指令与plc寄存器数据的映射关系的步骤如下,d1,plc的数据存储通过tag的形式与存储区间关联,分为输入(i)、输出(o)、位存储(m)和数据块(db),程序在访问对应(i/o)tag时,是通过访问cpu的process image out对相应地址进行操作的,具体对应关系如下图4所示;d2,使用snap7建立pc与plc寄存器的链接,snap7 是一个基于以太网与s7系列的西门子plc通讯的开源库,支持包括s7系列的s7

200、s7

200 smart、s7

300、s7

400、s7

1200以及s7

1500的以太网通信,通信步骤为:1,实例化snap7;设置链接端口号,2,调用snap7的api:connect,3,参数需要目标plc的ip地址,机架号和插槽号,4,在操作完成后调用api:disconnect断开链接;d3,语音指令与plc数据寄存器数据的映射, plc所执行命令操作的原理是修改对应寄存器地址中的数据,通过snap7的api:client.write_area和client.read_area可以实现对plc寄存器数据的写入和读取。参数需要操作类型地址,寄存器地址,起始位和数据,此项操作可以完成i/o点的输入输出;对于v区和m区,则需要调用api:client.db_write和client.db_read对v和m变量进行读写操作,参数需要寄存器地址,起始位和读取数据的字节数(其中字节数据为1,字和整数为2,双整形和浮点为4),此项操作可以完成对变量数据的写入和读取;语音信号代替实体按钮或触摸屏上的按键,对指定的寄存器地址写入能够实现功能的数据,完成语音信号和plc寄存器数据的映射,例如语音信号为“1号电机启动”,假设输出点q0.1置位时1号电机启动,则在程序中对应client.write_area(0x82,0,0,struck.unpack('b',2))语句。
20.实施例七,在实施例一的基础上,所述步骤g中将语音指令的特征与模型进行匹配,导入由hmm

gmm语音信号样本的每个音素建立的模型组,将语音指令的特征与模型组的每个模型进行匹配,取得最高匹配率的语音样本,具体步骤如下,g1,导入训练完成的模型组;g2,创建预测分数列表;g3,将输入的语音和模型组的每个模型进行匹配;g4,计算匹配得分,并存入预测分数列表;g5,筛选出的分最高的模型;g6,输出该模型对应的语音信号标志。
21.本发明具体使用时,基于机器学习,训练语音指令模型,通过pc端程序连接plc,将按钮、按键等工业控制手段替换成对操作人员更为友好的语音指令,使操作人员不必面对复杂的操作界面,同时也可以实现远程操作设备,为工业控制模式增加了新的方式和思路,具体实现步骤如下,a,采集语音信号样本;
b,语音信号端点检测、特征提取;c,训练hmm

gmm模型;d,建立语音指令与plc寄存器数据的映射关系;e,采集语音指令;f,对语音指令进行端点检测、特征提取(语音指令的采集、端点检测和特征提取方式同语音信号样本的采集、端点检测和特征提取);g,将语音指令的特征与模型进行匹配;h,匹配结果通过与plc寄存器数据的映射关系修改寄存器数据,结合映射关系和语音指令预测结果,使用sanp7连接目标plc,完成对应地址的寄存器数据修改。
22.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。