CN103810998A - 基于移动终端设备的离线语音识别方法以及实现方法 - Google Patents
基于移动终端设备的离线语音识别方法以及实现方法 Download PDFInfo
- Publication number
- CN103810998A CN103810998A CN201310652535.2A CN201310652535A CN103810998A CN 103810998 A CN103810998 A CN 103810998A CN 201310652535 A CN201310652535 A CN 201310652535A CN 103810998 A CN103810998 A CN 103810998A
- Authority
- CN
- China
- Prior art keywords
- character string
- field
- mobile terminal
- terminal device
- dictionary
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Machine Translation (AREA)
Abstract
本发明提供一种基于移动终端设备的离线语音识别方法,包括:获取语音信号并提取语音信号对应的语音特征向量;基于移动终端设备中预置的声学模型对语音特征向量进行匹配,获得语音特征向量相应的语言字符串;并基于移动终端设备中预置的语言模型和字典对语言字符串进行匹配,获得语音特征向量相应的匹配文本数据;计算语音特征向量在声学模型中的输出概率,并基于输出概率中最大的输出概率,获取对应语音特征向量相应的匹配文本数据,得到语音信号的最终识别结果。本发明利用移动终端设备中预置的声学模型、语言模型和字典实现针对特定领域的语音信号的匹配,将语音信号转化为文本数据,得到最终识别结果,最终实现离线语音识别。
Description
技术领域
本发明涉及移动终端的语音识别领域,尤其是提供一种基于移动终端设备的离线语音识别方法及基于移动终端设备离线语音识别的实现方法。
背景技术
基于移动终端的野外数据采集程序是指运行在移动智能设备(平板、智能手机、便携式电脑等)上,为野外调查工作提供计算机技术支持的嵌入式应用程序。为简化外业数据的采集方式,缩短数据采集周期,增强数据录入标准化程度以及数据录入、管理效率,目前存在着许多野外数据采集程序,在农业、林业、气象学、地质学、昆虫学、生态学等众多行业应用广泛。
野外数据采集程序构建与应用研究开始于20世纪90年代,现在的野外采集***一般都采用利用键盘输入的方式录入数据,但是智能手机的键盘比较小,人的手指头比较大,输入数据时经常出现按错键的情况,而且录入数据时双手都被占用,这样就导致录入数据的效率比较低,这样就影响了野外数据采集***的进一步广泛应用。语音识别技术的应用,将会成为打破制约传统键盘输入数据效率低下的有力武器。
语音识别技术是一门涉及信号处理、模式识别、概率论和信息论、发声听觉机理、人工智能等等的交叉学科,其目标是将人类语音中的词汇内容转换为计算机可读的输入,从而达到更自然地人机交互的目标。目前比较主流的语音识别软件都是基于互联网云端处理的技术,即客户端输入语音,服务器端语音识别,识别结果返回给客户端,这种技术的优点是能够利用服务器端的强大语音处理能力;节省了客户端存储语言模型、声学模型以及字典的空间;可以识别大量通用词汇量语音,但是它不能识别出特定应用行业的生僻词汇,而且需要连网,在网络型号不好时不能保证处理速度,所以不适合在环境条件不是太好的野外使用的野外采集***,因此需要一种基于离线的语音识别技术来支持野外采集***显得极为重要和迫切。
发明内容
(一)要解决的技术问题
本发明的目的是,提供一种基于移动终端设备的离线语音识别方法,从而实现在离线的情况下实现语音识别。
(二)技术方案
为解决上述技术问题,本发明提供一种基于移动终端设备的离线语音识别方法,包括:
获取语音信号并提取所述语音信号对应的语音特征向量;
基于所述移动终端设备中预置的声学模型对所述语音特征向量进行匹配,获得所述语音特征向量相应的语言字符串;并基于所述移动终端设备中预置的语言模型和字典对所述语言字符串进行匹配,获得所述语音特征向量相应的匹配文本数据;
计算所述语音特征向量在所述声学模型中的输出概率,并基于所述输出概率中最大的输出概率,获取对应语音特征向量相应的匹配文本数据,得到所述语音信号的最终识别结果。
其中,所述基于移动终端设备的语音识别方法还包括:对所述最终识别结果进行分词。
具体的,对所述最终识别结果进行分词包括:
S501、设置一个分词字典中最大词条包含的汉字数n;其中,所述最终识别结果对应的匹配文本数据为中文字符串;
S502、取所述中文字符串序列中的前n个字符作为匹配字段,查找所述分词字典;
若所述分词字典中存有与所述匹配字段对应的字词,则匹配成功,所述匹配字段作为一个词被切分出来,并被存入另一个字符串newString,且通过间隔符与其他词分开;
若所述分词字典中找不到与所述匹配字段对应的一个字词,则匹配失败,进入步骤S503;
S503、将n变成n-1,然后将步骤S502取出的用于匹配的匹配字段去掉最后一个汉字,作为新的匹配字段,查找所述分词字典,如果所述分词字典中存有与新匹配字段对应的字词,则匹配成功,所述新匹配字段作为一个词被切分出来,并被存入字符串newString中;
如果匹配失败,则重复步骤S502-S503,至到所述新匹配字段被匹配成功为止;
S504、重复步骤S503,直至所述中文字符串中所有带匹配字段的字符被匹配成功,完成对所述中文字符串的分词。
其中,所述基于移动终端设备的语音识别方法还包括:将所述最终识别结果显示到界面二维表。
具体的,将所述最终识别结果显示到界面二维表包括:
S601、确定所述界面二维表需要采集的字段,并且把这些采集地字段存到字符串数组KeyWordString中;
S602、把分词后的字符串,利用split函数以间隔符为标志分割成多个字段,存入字符串数组InputString中;
S603、从字符串数组InputString中取出一个字段,与KeyWordString中的字段逐项比较,如果有匹配的,把该字段在数组InputString中对应的下标i存贮数组PointKeyWord中;如果不匹配,则不进行任何操作;其中,1=<i<=n,n为字符串数组InputString中字段的个数,i、n均为正整数;
S604、从InputString中取出下一个字段,与keyWordString中的字段逐项进行比较,如果匹配成功,则把该字段在InputString中对应的下标i+1存入PointKeyWord中,把数组ValueString[i]设置为空,如果不匹配,则把ValueString[i]的值设置为该字段;
S605、重复步骤S603和步骤S604,至到InputString中的所有字段都匹配完毕;
S606、把匹配的结果以键值对的方式存贮Hashmap中,利用键值对的Key与二维表的表头进行比较,并将键值对中的value存入界面的二维表。
具体的,所述基于移动终端设备的语音识别方法通过维比特算法对所述语音特征向量进行匹配。
具体的,所述基于移动终端设备的语音识别方法通过NGram算法对所述语言字符串进行匹配。
为解决上述技术问题,本发明还提供一种基于移动终端设备离线语音识别的实现方法,包括:
采集项目词汇;
基于所述项目词汇利用HMM模型训练声学模型数据和语言模型数据;
基于完成训练的声学模型数据建立声学模型,基于完成训练的语言模型数据建立语言模型,并利用文本编辑器创建字典;
将所述声学模型、语言模型和字典存贮在所述移动终端设备。
其中,所述声学模型数据是基于分段K均值算法的HMM参数优化算法训练的。
其中,所述语言模型数据是基于NGram算法训练的。
(三)有益效果
区别于背景技术,本发明主要原理是将语音信号转化为文本数据,得到最终识别结果,其主要实现过程是利用移动终端设备中预置的声学模型、语言模型和字典实现针对特定领域的语音信号的匹配,最终实现离线语音识别。进一步的,本发明实现了在采集特定领域的信息数据时,不需要手动输入就可以完成信息数据的采集,极大地提高了采集效率,降低了采集数据的成本。
附图说明
图1是实施例一中基于移动终端设备离线语音识别的实现方法流程示意图;
图2是图1所示实施例中基于分段K均值算法的HMM参数训练流程图;
图3是本发明基于移动终端设备的离线语音识别方法的总体流程示意图;
图4是实施例二中基于移动终端设备的离线语音识别方法流程示意图;
图5是图4所示实施例中中文分词流程示意图;
图6是图4所示实施例中中文分词后结果回显到***界面二维表的流程示意图;
图7为本发明实施例三基于移动终端设备离线语音识别的实现***录制声音波形图;
图8为本发明实施例三基于移动终端设备离线语音识别的实现***声学分析图;
图9为本发明实施例三基于移动终端设备离线语音识别的实现***analysis.conf配置文件图;
图10为本发明实施例三基于移动终端设备离线语音识别的实现***HMM原型文件图;
图11为本发明实施例三基于移动终端设备离线语音识别的实现***HMM训练过程图;
图12为本发明实施例三基于移动终端设备离线语音识别的实现***HTK工具架构图;
图13为本发明实施例三基于移动终端设备离线语音识别的实现***HTK语音处理流程图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
实施例一
本实施例提供一种基于移动终端设备离线语音识别的实现方法,该方法起始于步骤101,采集项目词汇,在这里项目词汇为针对特定领域的专业用语、针对特定领域的常用词语和短语。
在步骤102,基于所述项目词汇利用基于概率统计的隐马尔可夫HMM模型训练声学模型数据和语言模型数据。所述声学模型数据是基于分段K均值算法的HMM参数优化算法训练的。所述语言模型数据是基于NGram算法训练的。
NGram算法主要是基于这样一种假设,第N个词的出现只与前面N-1个词相关,而与其它任何词都不相关,整句的概率就是各个词出现概率的乘积。这些概率可以通过直接从语料中统计N个词同时出现的次数得到。常用的是二元的Bi-Gram和三元的Tri-Gram。计算公式如下:P(wn|w1,w2,…,wn-1)=C(w1,w2,…,wn)/C(w1,w2,…,wn-1),即根据大数定理,在前N-1个词出现的情况下,第N个词出现的概率为这N个词同时出现的频率除以N-1个词同时出现的频率。以推广前景为例,就是计算推广前已经出现的情况下,景出现的概率,即P(景|推,广,前)=C(推,广,前,景)/C(推,广,前)。利用NGram算法训练语音数据就是根据上下文训练字典中每个字其他字同时出现的情况下出现的概率,然后把训练的结果存贮到语音模型中。
HMM模型参数的质量直接影响语音识别的效果,在HMM模型M={A,B,π}的三个参数中,状态转移概率矩阵A和初始状态概率集合π对语音识别率影响不大,通常设置为均匀分布值或非零随机值。参数B的初值设置比A和π要困难,同时也至关重要。在本实发明中,针对Baum-Welch经典算法的缺点,总结了三种改进算法,即可通过HMM模型训练三种改进算法实现训练声学模型数据和语言模型数据,下面分别具体介绍这三种改进算法。
第一种:基于分段K均值算法的HMM参数优化算法
请参阅图2,在步骤201,预置HMM模型参数初值,初值可以通过等分划分状态法或者经验得到;
预置最大迭代次数I和收敛阈值ζ;
在步骤202,用Viterbi算法对输入的训练语音数据进行状态分割;
在步骤203,用分段K均值算法对模型中B参数进行重新估计。分为两种情况:
离散型***:
bji=状态Sj中标号i的语音帧出现次数/状态Sj下全部语音帧个数;
连续型***:
每个状态的概率密度函数是由M个正态分布函数叠加而成。
混合系数ωji=状态j中类i语音帧个数/状态j中语音帧个数;
样本均值μji:状态j中类i的样本均值;
样本协方差矩阵:υji=状态j中类i样本协方差矩阵;
利用上述参数计算模型参数M*。
在步骤204,用M*作为初值,利用Baum-Welch算法对HMM参数重估;
在步骤205,转到步骤202,直到迭代次数>I或者满足收敛条件。
如图2所示,分段K均值算法是基于状态优化的最大似然判据,可以大大加快模型的收敛速度,同时还可以在训练中提供一些附加信息。
第二种:基于遗传算法的HMM参数训练改进算法
(1)预置HMM模型参数初值,初值可以均匀设置或者通过经验得到;
(2)预置最大进化次数I和收敛阈值ζ;
(3)选择最优基因:在每一代中,按照适应值从高到低,依照一定的比例选取最优基因,其中适应值高的选取比例相应要高,适应值计算公式:
(4)杂交和变异:杂交即两个父代的相应部分发生互换产生子代,相当于一个局部区域的搜索,变异即对父代的部分区域进行增删改产生变异后代,使子代跳出当前的局部搜索区域,避免过早陷于局部优化。
(5)更新模型参数;
(6)若进化次数>I或者满足收敛条件,训练完毕,否则转到(3)。
第三种:基于松弛算法的HMM参数训练改进算法。
(1)预置HMM模型参数初值,初值可以均匀设置或者通过经验得到;
(2)预置最大迭代次数I和收敛阈值ζ;
(3)令Tm=T0×f(m),f(m)=Km,其中m取值为0,1,2...I,K<1;
(4)生成N×M个相互独立的正态随机变量X的实例,均值EX=0,方差DX=Tm;
(5)利用经典Baum-Welch算法得到bij参数,令bij*=bij+x(x为上面X的取值),1≤i≤N,1≤j≤M;如果bij*出现负值,取值设为零,同时进行归一化处理;
(6)若m>I或者满足收敛条件,训练完毕,否则转到(3)。
但在本实施例中,只利用了前面三种优化算法中的第一种即基于分段K均值算法的HMM参数优化算法,该算法主要是用于加快模型的训练速度,把相似的音节进行聚类,缩短识别时的解码空间;而后两种改进算法主要是用于提高精度,对于我们基于离线的语音识别,主要是针对特定行业应用训练一些词汇,这样模型中词汇量不大,不同词的相似率很低,使用这两种算法的效果不明显,因此只选择使用了第一种优化算法。
在步骤103,基于完成训练的声学模型数据建立声学模型,基于完成训练的语言模型数据建立语言模型,并利用文本编辑器创建字典。其中,字典和语言模型的创建过程如下:利用文本编辑器根据应用***需要手动创建text文件,把需要采集的字段信息的汉字以及对应的拼音写入文本文件中,然后利用lmtool工具自动生成分词字典和语言模型。
在步骤104,将所述声学模型、语言模型和字典存贮在所述移动终端设备。
经过上述过程后,针对特定领域的专业用语、针对特定领域的常用词语和短语建立了声学模型、语言模型和字典,其中,声学模型对所述语音特征向量进行匹配,语言模型和字典对经声学模型匹配后的字符串进行匹配,能够通过上述声学模型、语言模型和字典实现针对特定领域的离线语音识别,在采集特定领域的信息数据时,不需要手动输入就可以完成信息数据的采集,极大地提高了采集效率,降低了采集数据的成本,解决了背景技术中提到的技术问题。
实施例二
请参阅图3及图4,本实施例提供了一种基于移动终端设备的离线语音识别方法,该方法是基于实施一所建立的声学模型、语言模型和字典完成的语音识别方法,起始于步骤401,获取语音信号并提取所述语音信号对应的语音特征向量。
在步骤402,基于所述移动终端设备中预置的声学模型对所述语音特征向量进行匹配,获得所述语音特征向量相应的语言字符串;并基于所述移动终端设备中预置的语言模型和字典对所述语言字符串进行匹配,获得所述语音特征向量相应的匹配文本数据。具体的,所述基于移动终端设备的语音识别方法通过HMM模型中的维比特算法对所述语音特征向量进行匹配。所述基于移动终端设备的语音识别方法通过NGram算法对所述语言字符串进行匹配。
在步骤403,计算所述语音特征向量在所述声学模型中的输出概率,并基于所述输出概率中最大的输出概率,获取对应语音特征向量相应的匹配文本数据,得到所述语音信号的最终识别结果。
经过上述描述不难看出,本实施例的主要原理是将语音信号转化为文本数据,得到最终识别结果,其主要实现过程是利用移动终端设备中预置的声学模型、语言模型和字典实现针对特定领域的语音信号的匹配,最终实现离线语音识别。进一步的,本实施例实现了在采集特定领域的信息数据时,不需要手动输入就可以完成信息数据的采集,极大地提高了采集效率,降低了采集数据的成本。
请参阅图5及图6,为能使用户进一步理解经本实施例处理后的最终识别结果,本实施例基于移动终端设备的语音识别方法在得到所述最终识别结果之后还包括:
对所述最终识别结果进行分词;
并对分词后的结果显示到界面二维表。
经过上述步骤后,将分词后最终结果准确无误的显示到***界面二维表中采集字段相对应的位置,用户可以以文字形式直接查看自己采集的语音信号。通过这种方式,用户只输入一次数据就可以完成采集一条数据,而不是每次输入数据只能完成一个字段的信息采集,极大的提高了数据采集的效率,节省了到野外信息采集的时间成本和人力成本。
图5为对最终识别结果进行分词的流程示意图,在本实施例中,以最终识别结果对应的匹配文本数据为中文字符串为例进行解释。具体的,对所述最终识别结果进行分词包括:
S501、设置一个分词字典中最大词条包含的汉字数n;其中,所述最终识别结果对应的匹配文本数据为中文字符串;其中,分词字典的创建过程如下:利用文本编辑器根据应用***需要手动创建text文件,把需要采集的字段信息的汉字以及对应的拼音写入文本文件中,然后利用lmtool工具自动生成分词字典。
S502、取所述中文字符串序列中的前n个字符作为匹配字段,查找所述分词字典。
若所述分词字典中存有与所述匹配字段对应的字词,则匹配成功,所述匹配字段作为一个词被切分出来,并被存入另一个字符串newString,且通过间隔符与其他词分开。
若所述分词字典中找不到与所述匹配字段对应的一个字词,则匹配失败,进入步骤S503。
S503、将n变成n-1,然后将步骤S502取出的用于匹配的匹配字段去掉最后一个汉字,作为新的匹配字段,查找所述分词字典,如果所述分词字典中存有与新匹配字段对应的字词,则匹配成功,所述新匹配字段作为一个词被切分出来,并被存入字符串newString中。
如果匹配失败,则重复步骤S503,至到所述新匹配字段被匹配成功为止。
S504、重复步骤S502-S503,直至所述中文字符串中所有带匹配字段的字符被匹配成功,完成对所述中文字符串的分词。
请参阅图6,图6是把经对中文字符串进行分词后的结果回显到***界面二维表的流程示意图,具体的,将所述最终识别结果(即分词后的结果)显示到界面二维表包括:
S601、确定所述界面二维表需要采集的字段,并且把这些采集地字段存到字符串数组KeyWordString中;其中,这些采集的字段为界面二维表需要显示的字段,包括但不仅限于经上述分词后的所有字段。
S602、把分词后的字符串,利用split函数以间隔符为标志分割成多个字段,存入字符串数组InputString中。
S603、从字符串数组InputString中取出一个字段,与KeyWordString中的字段逐项比较,如果有匹配的,把该字段在数组InputString中对应的下标i存贮数组PointKeyWord中;如果不匹配,则不进行任何操作;其中,1=<i<=n,n为字符串数组InputString中字段的个数,i、n均为正整数。
S604、从InputString中取出下一个字段,与keyWordString中的字段逐项进行比较,如果匹配成功,则把该字段在InputString中对应的下标i+1存入PointKeyWord中,把数组ValueString[i]设置为空,如果不匹配,则把ValueString[i]的值设置为该字段。
S605、重复步骤S603和步骤S604,至到InputString中的所有字段都匹配完毕。
S606、把匹配的结果以键值对的方式存贮Hashmap中,利用键值对的Key与二维表的表头进行比较,并将键值对中的value存入界面的二维表。
实施例三
请参阅图7-13,本实施例移动终端设备离线语音识别的实现***是基于Android***平台的,数据库用的是目前免费的小型移动端数据库SQLite。本实施例移动终端设备语音识别的实现***分为离线语音识别模块,分词模块,将分词模块分词结果显示到页面二维表的回显模块,和数据处理四个模块。离线语音识别模块主要完成语音模型数据(包括声学模型数据和语言模型数据)训练,语言模型、声学模型和字典的创建,离线语音识别的主要原理是把语音信号转化成文本信号;分词模块主要负责把离线语音识别模块识别出的字符串文字根据字符串匹配法转化成一个个词组并且用如逗号和或/空格等间隔符隔开连接成一个字符串;回显模块主要实现把经分词模块处理后的字符串,根据与界面二维表表头匹配的方式准确的显示到二维表中;数据处理模块主要完成对二维表中数据的操作以及将移动终端设备中数据库数据与服务器中数据实现同步。下面介绍上述各模块的具体实现过程。
1、离线语音识别模块
在本***的语音识别模块,只利用了实施例一所述三种优化算法中的第一种即基于分段K均值算法的HMM参数优化算法对声学模型数据的训练,该算法主要是用于加快模型的训练速度,把相似的音节进行聚类,缩短识别时的解码空间;而后两种改进算法主要是用于提高精度,对于我们基于离线的语音识别,主要是针对特定行业应用训练一些词汇,这样模型中词汇量不大,不同词的相似率很低,使用这两种算法的效果不明显,因此只选择使用了第一种优化算法。
在离线语音识别的数据准备,数据训练,语音识别和结果分析,我们都用HTK工具完成。HTK的软件架构如图12所示,HTK语音处理流程如图13所示:
1.1、建立存储语音识别所需材料的文件夹。
建立文件夹data,此文件夹用于存储训练和测试数据,在data下建立两个子目录data/train和data/test,在train下继续建立两个子目录,data/train/sig(用以存储录制的训练语音数据)和data/train/mfcc(用来存储训练数据转化后的mfcc参数);data/test用来存储测试数据。建立model文件夹,用于存储识别***的模型的相关文件。建立def文件夹,用于存储语言模型及字典。
1.2、创建训练集。
在该阶段,我们需要利用HTK工具HSLab完成项目词汇的语音信号的录制,然后利用该工具为每个语音信号写上标签,即关联一个文本来描述语音的内容。利用该工具完成此工作的DOS命令为:HSLabname.sig,其中name为具体的词汇拼音。
1.2.1、录音
按下Rec按钮开始录制语音信号,按下Stop时停止录音,缺省采样频率为16KHZ,图7为数字5的一个录制波形。
1.2.2、标注信号
首先按下Mark按钮,然后选择你要打开标签的区域。当区域标注之后,按下Labelas,输入标签名称,然后按下回车键Enter。对于每个信号,我们需要标注三个连续的区域:开始停顿标记为sil,录音单词标记为项目词汇name,技术停顿标记为sil。这三个区域不能重叠,即使他们之间的间隙很小。这三个标注完成后,按下Save按钮,标签文件name.lab被创建成功。下面为数字5的标签文件:41712509229375sil922937515043750name1504375020430625sil,其中数字代表每个标签的开始和结束采样点。这样的文件可以进行手工修改,比如调整标签的开始或者结束点。
1.3、声学分析
语音识别工具不能直接处理波形语音,需要通过更加简洁有效的方法来表示波形语音,这就需要利用HCopy工具进行声学分析,如图8所示,其DOS命令为HCopy-A-D-C analysis.conf-S targetlist.txt.其中-A为显示命令的参数,-D为显示配置设置,-C制定配置文件,-S为指定源目标文件路劲,analysis.conf为抽取参数配置文件(#后面为注释),设置声学系数提取参数,我们使用MFCC作为特征提取参数,所有参数包括:12个MFCC系数[c1,...,c12](因为NUMCEPS=12);1个MFCC系数c0,与帧的总能量成正比(在TARGETKIND中,后缀_0);13个Delta coefficients,由[c0,c1,...,c12]派生(在TARGETKIND中,后缀_D);13个Acceleration coefficients,(在TARGETKIND中,后缀_A)。targetlist.txt用于指定用于处理的每个波形文件的名称和存放位置,以及目标系数文件的名称和存放位置。analysis.conf配置如图9所示
1.4、HMM原型定义
建立文件hmm_yi.hmm,保存在htk/model/proto下。Hmm_yi.hmm内容如图10所示,其他词汇的HMM模型有着相同的内容,只要~h yi中yi改为相应的词汇拼音即可。~h"yi"<BeginHMM>...<EndHMM>,封装对HMM模型的描述。
1.5、HMM训练
HMM完整模型训练如图11所示,包括初始化和训练两个部分
1.5.1初始化
利用下面的命令行使用Viterbi算法对HMM模型进行初始化:Hinit-A-D-S trainlist.txt-M model/hmm1–H model/proto/hmm0label–Lnameofhmmnameofhmm是要进行初始化的HMM模型的名称。trainlist.txt给出完的.mfcc文件列表。label用来标示哪个标签段用于训练集中。model/hmm1是初始化HMM模型描述结果输出的目录名称(必须提前创建好)。这个过程对每个模型重复执行。
1.5.2、训练
利用HTK工具HRest的一次再估计迭代,估计HMM模型参数的最佳值,命令为:HRest trainlist.txt-M model/hmmi-Hmodel/hmmi-1/hmmfile-l label-L nameofhmm其中nameofhmm是要训练的HMM模型的名称。hmmfile是名为nameofhmm的HMM模型的描述文件。trainlist.txt给出构成训练集的.mfcc文件的完整列表(存储在data/train/mfcc/)label指示训练数据中使用的标签。model/hmmi,输出目录,i表示当前迭代次数。对于每个要训练的HMM模型,这个过程要重复许多次。停止条件:每次HRest迭代后通过change量度标示收敛性并显示在屏幕上。一旦这个量度值不再减少(绝对值),过程就该停止了,然后把相应的训练结果统一放到hmm_result文件夹下。其他词汇类似训练。
1.6、任务定义
把与任务相关的每个文件都应该存储在专用的def/目录
1.6.1建立语法规则和字典
建立语法规则文件gram.txt(在def文件夹下),内容为:*Taskgrammar
$WORD=YI|ER|...|SIL;
({SIL}[$WORD]{SIL})
用括号{}括住SIL表示其可不存在或者重复多次(允许在单词之前或之后长时间的停顿,或者根本没有停顿)。括号[]括住$WORD表示零个或一次出现(如果没有单词,可能只是识别停顿)。
1.6.2建立字典文件
dict.txt(在def文件夹下),内容为:
2YI[1]yi
3ER[2]er
…
SIL[sil]sil
1.7、建立网络任务
任务语法(在gram.txt中描述)使用HParse工具进行编译,生成任务网络,DOS命令为:
HParsedef/gram.txt def/net.slf
为确保语法没有错误,可使用HSGen工具来测试,DOS命令为:
HSGen-s def/net.slfdef/dict.txt
1.8、语音识别
利用是HTK中的Hvite进行语音识别。利用先前准备好的词典,语法结构文件,已训练好的声学模型,对语音数据依照识别概率大小输出相应的语句,并且对输出的结果利用HTK的HResults工具进行分析。
1.9结果分析
结果分析主要对语音识别的准确率和识别速度进行评估,是语音识别中重要的一环。HTK中的结果分析工具是HResults,它将识别测试结果和与已完成的HMM标注文件进行配对比较分析,输出相应的正确率与准确率(准确率在正确率的基础上考虑了***错误)。
2、中文分词
本发明***的中文分词,采用了基于字符串匹配中的最大匹配方式对语音识别的字符串进行中文分词。根据数据字典中的词汇,把语音识别出的字符串通过与数据字典中的词汇匹配,匹配成功后,把识别的结果用空格分隔成一组词组成的字符串,具体在实施例二已经阐述,在此不再赘述。
3、分词结果回显界面
本发明***在字符串回显的过程中,首先利用split函数把分词后的字符串以空格为标志,分割以后存入到一个字符串数组中,然后通过与二维表的表头字段进行比较,匹配成功的表头的数据存入键值对主键中,把对应的值得数据存入键值对value中,最后通过键值对主键查询方式,把键值对中的值一条一条的***到二维表中,具体在实施例二已经阐述,在此不再赘述。
4、数据处理
本实施例***数据处理采用的是先把采集到***界面二维表中的数据存入移动终端本地的SQLite数据库中,在移动终端联网的情况下可以把本地数据库中未同步的数据同步都服务器数据库中。数据同步时,本发明***既可以采集完立即同步刚采集的数据,也可以集中统一一起同步所有采集的数据。在数据同步时,本发明***采用的时把需要同步的数据封装到一起,转化成XML文件,通过TCP/IP网络协议,利用HTTP连接,把XML文件传输到Web服务器端,解析XML文件后把数据更新到服务端的数据库中。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种基于移动终端设备的离线语音识别方法,其特征在于,包括:
获取语音信号并提取所述语音信号对应的语音特征向量;
基于所述移动终端设备中预置的声学模型对所述语音特征向量进行匹配,获得所述语音特征向量相应的语言字符串;并基于所述移动终端设备中预置的语言模型和字典对所述语言字符串进行匹配,获得所述语音特征向量相应的匹配文本数据;
计算所述语音特征向量在所述声学模型中的输出概率,并基于所述输出概率中最大的输出概率,获取对应语音特征向量相应的匹配文本数据,得到所述语音信号的最终识别结果。
2.根据权利要求1所述的离线语音识别方法,其特征在于,还包括:对所述最终识别结果进行中文分词。
3.根据权利要求2所述的离线语音识别方法,其特征在于,对所述最终识别结果进行分词包括:
S501、设置一个分词字典中最大词条包含的汉字数n;其中,所述最终识别结果对应的匹配文本数据为中文字符串;
S502、取所述中文字符串序列中的前n个字符作为匹配字段,查找所述分词字典;
若所述分词字典中存有与所述匹配字段对应的字词,则匹配成功,所述匹配字段作为一个词被切分出来,并被存入另一个字符串newString,且通过间隔符与其他词分开;
若所述分词字典中找不到与所述匹配字段对应的一个字词,则匹配失败,进入步骤S503;
S503、将n变成n-1,然后将步骤S502取出的用于匹配的匹配字段去掉最后一个汉字,作为新的匹配字段,查找所述分词字典,如果所述分词字典中存有与新匹配字段对应的字词,则匹配成功,所述新匹配字段作为一个词被切分出来,并被存入字符串newString中;
如果匹配失败,则重复步骤S503,至到所述新匹配字段被匹配成功为止;
S504、重复步骤S502-S503,直至所述中文字符串中所有带匹配字段的字符被匹配成功,完成对所述中文字符串的分词。
4.根据权利要求2所述的离线语音识别方法,其特征在于,还包括:将所述最终识别结果显示到界面二维表。
5.根据权利要求4所述的离线语音识别方法,其特征在于,所述将所述最终识别结果显示到界面二维表包括:
S601、确定所述界面二维表需要采集的字段,并且把这些采集地字段存到字符串数组KeyWordString中;
S602、把分词后的字符串,利用split函数以间隔符为标志分割成多个字段,存入字符串数组InputString中;
S603、从字符串数组InputString中取出一个字段,与KeyWordString中的字段逐项比较,如果有匹配的,把该字段在数组InputString中对应的下标i存贮数组PointKeyWord中;如果不匹配,则不进行任何操作;其中,0=<i<=n-1,n为字符串数组InputString中字段的个数,i、为整数;
S604、从InputString中取出下一个字段,与keyWordString中的字段逐项进行比较,如果匹配成功,则把该字段在InputString中对应的下标i+1存入PointKeyWord中,把数组ValueString[i]设置为空,如果不匹配,则把ValueString[i]的值设置为该字段;
S605、重复步骤S603和步骤S604,至到InputString中的所有字段都匹配完毕;
S606、把匹配的结果以键值对的方式存贮Hashmap中,利用键值对的Key与二维表的表头进行比较,并将键值对中的value存入界面的二维表。
6.根据权利要求1所述的离线语音识别方法,其特征在于:通过维比特算法对所述语音特征向量进行匹配。
7.根据权利要求1所述的离线语音识别方法,其特征在于:通过NGram算法对所述语言字符串进行匹配。
8.一种基于移动终端设备离线语音识别的实现方法,其特征在于,包括:
采集项目词汇;
基于所述项目词汇利用HMM模型训练声学模型数据和语言模型数据;
基于完成训练的声学模型数据建立声学模型,基于完成训练的语言模型数据建立语言模型,并利用文本编辑器创建字典;
将所述声学模型、语言模型和字典存贮在所述移动终端设备。
9.根据权利要求8所述的实现方法,其特征在于,所述声学模型数据是基于分段K均值算法的HMM参数优化算法训练的。
10.根据权利要求8所述的实现方法,其特征在于,所述语言模型数据是基于NGram算法训练的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310652535.2A CN103810998B (zh) | 2013-12-05 | 2013-12-05 | 基于移动终端设备的离线语音识别方法以及实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310652535.2A CN103810998B (zh) | 2013-12-05 | 2013-12-05 | 基于移动终端设备的离线语音识别方法以及实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103810998A true CN103810998A (zh) | 2014-05-21 |
CN103810998B CN103810998B (zh) | 2016-07-06 |
Family
ID=50707677
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310652535.2A Expired - Fee Related CN103810998B (zh) | 2013-12-05 | 2013-12-05 | 基于移动终端设备的离线语音识别方法以及实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103810998B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104754364A (zh) * | 2015-03-30 | 2015-07-01 | 合一信息技术(北京)有限公司 | 视频广告语音交互***及方法 |
CN106057196A (zh) * | 2016-07-08 | 2016-10-26 | 成都之达科技有限公司 | 车载语音数据解析识别方法 |
CN106356054A (zh) * | 2016-11-23 | 2017-01-25 | 广西大学 | 一种基于语音识别的农产品信息采集方法和*** |
CN107145509A (zh) * | 2017-03-28 | 2017-09-08 | 深圳市元征科技股份有限公司 | 一种信息搜索方法及其设备 |
US10170122B2 (en) | 2016-02-22 | 2019-01-01 | Asustek Computer Inc. | Speech recognition method, electronic device and speech recognition system |
WO2019079962A1 (en) * | 2017-10-24 | 2019-05-02 | Beijing Didi Infinity Technology And Development Co., Ltd. | VOICE RECOGNIZING SYSTEM AND METHOD HAVING DECOUPLING AWAKENING EXPRESSION |
CN109726554A (zh) * | 2017-10-30 | 2019-05-07 | 武汉安天信息技术有限责任公司 | 一种恶意程序的检测方法、装置及相关应用 |
CN109817226A (zh) * | 2019-03-29 | 2019-05-28 | 四川虹美智能科技有限公司 | 一种离线语音识别方法和装置 |
CN110111774A (zh) * | 2019-05-13 | 2019-08-09 | 广西电网有限责任公司南宁供电局 | 机器人语音识别方法和装置 |
CN110930985A (zh) * | 2019-12-05 | 2020-03-27 | 携程计算机技术(上海)有限公司 | 电话语音识别模型、方法、***、设备及介质 |
CN111369966A (zh) * | 2018-12-06 | 2020-07-03 | 阿里巴巴集团控股有限公司 | 一种用于个性化语音合成的方法和装置 |
CN111785275A (zh) * | 2020-06-30 | 2020-10-16 | 北京捷通华声科技股份有限公司 | 语音识别方法及装置 |
CN112581954A (zh) * | 2020-12-01 | 2021-03-30 | 杭州九阳小家电有限公司 | 一种高匹配性语音交互方法和智能设备 |
CN113539268A (zh) * | 2021-01-29 | 2021-10-22 | 南京迪港科技有限责任公司 | 一种端到端语音转文本罕见词优化方法 |
WO2022134025A1 (zh) * | 2020-12-25 | 2022-06-30 | 京东方科技集团股份有限公司 | 一种离线语音识别方法和装置、电子设备和可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1293428A (zh) * | 2000-11-10 | 2001-05-02 | 清华大学 | 基于语音识别的信息校核方法 |
US20070033044A1 (en) * | 2005-08-03 | 2007-02-08 | Texas Instruments, Incorporated | System and method for creating generalized tied-mixture hidden Markov models for automatic speech recognition |
CN102063900A (zh) * | 2010-11-26 | 2011-05-18 | 北京交通大学 | 克服混淆发音的语音识别方法及*** |
CN102298927A (zh) * | 2010-06-25 | 2011-12-28 | 财团法人工业技术研究院 | 可调整内存使用空间的语音辨识***与方法 |
CN102446428A (zh) * | 2010-09-27 | 2012-05-09 | 北京紫光优蓝机器人技术有限公司 | 基于机器人的交互式学习***及其交互方法 |
-
2013
- 2013-12-05 CN CN201310652535.2A patent/CN103810998B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1293428A (zh) * | 2000-11-10 | 2001-05-02 | 清华大学 | 基于语音识别的信息校核方法 |
US20070033044A1 (en) * | 2005-08-03 | 2007-02-08 | Texas Instruments, Incorporated | System and method for creating generalized tied-mixture hidden Markov models for automatic speech recognition |
CN102298927A (zh) * | 2010-06-25 | 2011-12-28 | 财团法人工业技术研究院 | 可调整内存使用空间的语音辨识***与方法 |
CN102446428A (zh) * | 2010-09-27 | 2012-05-09 | 北京紫光优蓝机器人技术有限公司 | 基于机器人的交互式学习***及其交互方法 |
CN102063900A (zh) * | 2010-11-26 | 2011-05-18 | 北京交通大学 | 克服混淆发音的语音识别方法及*** |
Non-Patent Citations (4)
Title |
---|
何国斌等: "基于最大匹配的中文分词概率算法研究", 《计算机工程》, vol. 36, no. 5, 31 March 2010 (2010-03-31), pages 173 - 175 * |
倪崇嘉等: "汉语大词汇量连续语音识别***研究进展", 《中文信息学报》, vol. 23, no. 1, 31 January 2009 (2009-01-31) * |
刘明宽等: "音节混淆字典及在汉语口音自适应中的应用研究", 《声学学报》, vol. 27, no. 1, 31 January 2002 (2002-01-31), pages 53 - 58 * |
徐礼逵等: "语音识别HMM训练改进算法比较", 《计算机光盘软件与应用》, no. 23, 31 December 2012 (2012-12-31), pages 30 - 32 * |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104754364A (zh) * | 2015-03-30 | 2015-07-01 | 合一信息技术(北京)有限公司 | 视频广告语音交互***及方法 |
US10170122B2 (en) | 2016-02-22 | 2019-01-01 | Asustek Computer Inc. | Speech recognition method, electronic device and speech recognition system |
CN106057196B (zh) * | 2016-07-08 | 2019-06-11 | 成都之达科技有限公司 | 车载语音数据解析识别方法 |
CN106057196A (zh) * | 2016-07-08 | 2016-10-26 | 成都之达科技有限公司 | 车载语音数据解析识别方法 |
CN106356054A (zh) * | 2016-11-23 | 2017-01-25 | 广西大学 | 一种基于语音识别的农产品信息采集方法和*** |
CN107145509A (zh) * | 2017-03-28 | 2017-09-08 | 深圳市元征科技股份有限公司 | 一种信息搜索方法及其设备 |
CN107145509B (zh) * | 2017-03-28 | 2020-11-13 | 深圳市元征科技股份有限公司 | 一种信息搜索方法及其设备 |
WO2019079962A1 (en) * | 2017-10-24 | 2019-05-02 | Beijing Didi Infinity Technology And Development Co., Ltd. | VOICE RECOGNIZING SYSTEM AND METHOD HAVING DECOUPLING AWAKENING EXPRESSION |
CN110809796A (zh) * | 2017-10-24 | 2020-02-18 | 北京嘀嘀无限科技发展有限公司 | 具有解耦唤醒短语的语音识别***和方法 |
US10789946B2 (en) | 2017-10-24 | 2020-09-29 | Beijing Didi Infinity Technology And Development Co., Ltd. | System and method for speech recognition with decoupling awakening phrase |
CN109726554A (zh) * | 2017-10-30 | 2019-05-07 | 武汉安天信息技术有限责任公司 | 一种恶意程序的检测方法、装置及相关应用 |
CN109726554B (zh) * | 2017-10-30 | 2021-05-18 | 武汉安天信息技术有限责任公司 | 一种恶意程序的检测方法、装置 |
CN111369966A (zh) * | 2018-12-06 | 2020-07-03 | 阿里巴巴集团控股有限公司 | 一种用于个性化语音合成的方法和装置 |
CN109817226A (zh) * | 2019-03-29 | 2019-05-28 | 四川虹美智能科技有限公司 | 一种离线语音识别方法和装置 |
CN110111774A (zh) * | 2019-05-13 | 2019-08-09 | 广西电网有限责任公司南宁供电局 | 机器人语音识别方法和装置 |
CN110930985A (zh) * | 2019-12-05 | 2020-03-27 | 携程计算机技术(上海)有限公司 | 电话语音识别模型、方法、***、设备及介质 |
CN110930985B (zh) * | 2019-12-05 | 2024-02-06 | 携程计算机技术(上海)有限公司 | 电话语音识别模型、方法、***、设备及介质 |
CN111785275A (zh) * | 2020-06-30 | 2020-10-16 | 北京捷通华声科技股份有限公司 | 语音识别方法及装置 |
CN112581954A (zh) * | 2020-12-01 | 2021-03-30 | 杭州九阳小家电有限公司 | 一种高匹配性语音交互方法和智能设备 |
CN112581954B (zh) * | 2020-12-01 | 2023-08-04 | 杭州九阳小家电有限公司 | 一种高匹配性语音交互方法和智能设备 |
WO2022134025A1 (zh) * | 2020-12-25 | 2022-06-30 | 京东方科技集团股份有限公司 | 一种离线语音识别方法和装置、电子设备和可读存储介质 |
CN113539268A (zh) * | 2021-01-29 | 2021-10-22 | 南京迪港科技有限责任公司 | 一种端到端语音转文本罕见词优化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103810998B (zh) | 2016-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103810998B (zh) | 基于移动终端设备的离线语音识别方法以及实现方法 | |
CN110717031B (zh) | 一种智能会议纪要生成方法和*** | |
CN110364171B (zh) | 一种语音识别方法、语音识别***及存储介质 | |
CN107818164A (zh) | 一种智能问答方法及其*** | |
CN103677729B (zh) | 一种语音输入方法和*** | |
CN109063159B (zh) | 一种基于神经网络的实体关系抽取方法 | |
CN110717018A (zh) | 一种基于知识图谱的工业设备故障维修问答*** | |
CN111931506B (zh) | 一种基于图信息增强的实体关系抽取方法 | |
CN114116994A (zh) | 一种迎宾机器人对话方法 | |
CN110019741B (zh) | 问答***答案匹配方法、装置、设备及可读存储介质 | |
CN109920415A (zh) | 基于语音识别的人机问答方法、装置、设备和存储介质 | |
CN111292751B (zh) | 语义解析方法及装置、语音交互方法及装置、电子设备 | |
CN109377981B (zh) | 音素对齐的方法及装置 | |
CN103309926A (zh) | 基于条件随机场的中英文混合命名实体识别方法及*** | |
CN102176310A (zh) | 具有巨大词汇量的语音识别*** | |
CN110910283A (zh) | 生成法律文书的方法、装置、设备和存储介质 | |
CN109949799B (zh) | 一种语义解析方法及*** | |
CN112925945A (zh) | 会议纪要生成方法、装置、设备及存储介质 | |
CN102236639A (zh) | 更新语言模型的***和方法 | |
CN111695358B (zh) | 生成词向量的方法、装置、计算机存储介质和电子设备 | |
CN110119510A (zh) | 一种基于传递依存关系和结构助词的关系抽取方法及装置 | |
CN110196963A (zh) | 模型生成、语义识别的方法、***、设备及存储介质 | |
CN102999533A (zh) | 一种火星文识别方法和*** | |
CN111192572A (zh) | 语义识别的方法、装置及*** | |
CN113312922A (zh) | 一种改进的篇章级三元组信息抽取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160706 Termination date: 20161205 |