一种提高嘈杂环境下语音识别率的方法技术

技术编号:16429336 阅读:53 留言:0更新日期:2017-10-22 02:07
本发明专利技术公开了一种提高嘈杂环境下语音识别率的方法,该方法包括如下步骤:第一步:从识别云平台取得识别结果;第二步:将识别结果快速翻译为拼音;第三步:查询数据库配置表,将拼音翻译为业务需要的文字;第四步:将翻译后的文字返回给应用程序。本发明专利技术的有益效果为:本发明专利技术提供了一种有效提高嘈杂环境下语音识别率的方法,能够用非常少的代价,大大提高嘈杂环境下的识别率。通过实施这种拼音近似音的定制转化,显著提高了嘈杂环境下命令词的识别率,同时也大大降低了代码和数据字典维护的工作量。

A method of improving speech recognition rate in noisy environment

The invention discloses a method for improving speech recognition accuracy in noisy environments, the method comprises the following steps: the first step: get the recognition results from the recognition of cloud platform; the second step: the recognition results quickly translated into Pinyin; the third step: query the database configuration table, pinyin translation for business writing; the fourth step that will return to the application of text translation. The invention has the beneficial effect that the invention provides a method for effectively improving the speech recognition rate in noisy environment, which can greatly improve the recognition rate under the noisy environment with very little cost. Through the implementation of the customized conversion of the Pinyin approximate tone, the recognition rate of command words in noisy environment is significantly improved, and the workload of the maintenance of the code and the data dictionary is greatly reduced.

【技术实现步骤摘要】
一种提高嘈杂环境下语音识别率的方法
本专利技术属于语音识别
,主要是一种提高嘈杂环境下语音识别率的方法。
技术介绍
目前语音识别技术日渐成熟并应用在各个领域。如手机上的各种语音搜索应用、语音发短信、对话聊天软件、语音导航软件等等。这些应用都是借助语音识别技术将语音转换为文字,大大降低了人们使用软件时输入的工作量。当前语音识别技术在提高人们使用便利性的同时,也存在一些问题。如在办公室内、家里和其它安静的场合,识别率都非常高;但在比较嘈杂的公共场合环境,识别率就直线跳水,非常低了。识别率变低的原因就是环境噪音和使用者的声音进行了叠加,对识别软件造成了干扰。如在公共场合某些支持语音搜索的自助设备,当客户说需要的酒店区域的时候,由于噪音的叠加,真实需要的区域“三墩”也许会被它理解为“山东”、“山洞”、甚至“汕头”。针对这个问题,许多语音识别系统也有一些优化方案,如可以上传本地的热词表到云端识别系统,让“三墩”这个地名优先被匹配;或者应用软件自己做区分,将识别到的“山东”,“汕头”强制转化为“三墩”。热词表的方案,其实解决的是同音词的问题。比如说“三墩”这个音,由于该地名比较生僻,如果不加该热词,可能会被识别为“三吨”或者“三顿”。这些词发音完全一致,加上热词“三墩”,就是告诉识别云平台,遇到这个音要优先选择热词“三顿”。所以该方案只能较好得解决同音词的问题,如果识别声音源本身受到了干扰,发生了变形,则还是会被识别为其它常见近似语音,如“山东”。应用软件自己强制转换的方案,在一定程度上是可行的,只要在代码里或者数据字典里做好识别词组的翻译即可。如在某包含“三墩”而不需要“山东”等地名的业务场景下,发现识别结果是“山东”、“山洞”或者“汕头”,就强制转换为“三墩”,可以满足业务需求。但该方案的缺陷是,识别结果的不确定导致代码或者数据字典频繁更新。比如识别出“扇动”、“闪动”这些词,其实用户说的是“三墩”,那么这些词就得加到数据字典里,强制转换为“三墩”。下次发现识别出“煽动”,又得继续加入数据字典。识别结果的不确定导致维护工作量极大。
技术实现思路
本专利技术的目的在于克服现有技术存在的不足,而提供一种提高嘈杂环境下语音识别率的方法。本专利技术的目的是通过如下技术方案来完成的。这种提高嘈杂环境下语音识别率的方法,该方法包括如下步骤:第一步:从识别云平台取得识别结果;第二步:将识别结果快速翻译为拼音;第三步:查询数据库配置表,将拼音翻译为业务需要的文字;第四步:将翻译后的文字返回给应用程序。更进一步的,在第二步中:(1)、根据汉字的GBK编码为索引做一个汉字和拼音的映射表,根据汉字的GBK编码直接定位到汉字的拼音;(2)、一个汉字的GBK编码由2个字节组成,分为首字节和末字节,首字节从0xB0到0xF7,末字节从0xA1到0xFE;设计一个汉字拼音映射二维数组pytable,第一行存储“首字节是0xB0的汉字组”的拼音,第二行存储“首字节是0xB1的汉字组”的拼音,以此类推,最后一行存储“首字节是0xF7的汉字组”的拼音;每一组里再按“末字节”编码的顺序存储;(3)、将汉字串快速翻译为拼音串:第1步,取得要转换汉字的首字节head;第2步,判断head是否小于0xB0;如果小于0xB0,则说明本次检测的字符不是汉字,走到第7步,继续检测下一个汉字;否则往下走到第3步;第3步,取得该汉字的末字节tail;第4步,将首字节head减掉0xB0,得到第一维的下标index1;第5步,将末字节tail减掉0xA1,得到第二维的下标index2;第6步,得到该汉字的拼音数据pytable[index1][index2]并拼接;第7步,判断是否还有汉字串需要转换,有的话转到第1步;否则结束;通过以上步骤,通过计算汉字的GBK编码,迅速得到了该汉字的拼音。更进一步的,在第三步中:根据业务的不同,需要配置不同的转换关系,将这个转换将通过数据库查表实现,数据库配置表里面存储拼音和汉字的对应关系,通过SQL语句将拼音串转化为汉字串。本专利技术的有益效果为:本专利技术提供了一种有效提高嘈杂环境下语音识别率的方法,能够用非常少的代价,大大提高嘈杂环境下的识别率。通过实施这种拼音近似音的定制转化,显著提高了嘈杂环境下命令词的识别率,同时也大大降低了代码和数据字典维护的工作量。附图说明图1为本专利技术的示意图。图2为本专利技术的汉字GBK编码示意图。图3为本专利技术的汉字拼音映射二维数组示意图。图4为本专利技术的汉字串快速翻译为拼音串的步骤示意图。图5为本专利技术的拼音转化汉字配置表示意图。图6为本专利技术的汉字拼音映射二维数组的“山洞”例示意图。具体实施方式下面将结合附图对本专利技术做详细的介绍:总方案如图1所示:第1步:从识别云平台取得识别结果。第2步:将识别结果快速翻译为拼音。第3步:查询数据库配置表,将拼音翻译为业务需要的文字。第4步:将翻译后的文字返回给应用程序。算法介绍:第1步:从识别云平台取得识别结果。当前有许多的识别云平台提供公用的识别服务,如讯飞公司、捷通公司等等。这里不表。该方案的重点在于第2步,将识别结果迅速翻译为拼音;和第3步,根据配置表将类似的拼音转化为相同文字。下面分别介绍这2个关键步骤。第一步,将识别结果快速翻译为拼音。考虑到识别平台返回的汉字均为常见汉字,数量远小于GBK编码表中的汉字。我们可以根据汉字的GBK编码为索引做一个汉字和拼音的映射表,根据汉字的GBK编码直接定位到汉字的拼音,其时间复杂度为O(1)。这样做可以避免汉字配置在数据库里,用查表转换这种通常做法带来的数据库开销和网络时延。一个汉字的GBK编码由2个字节组成,如图2,分为首字节和末字节。常见汉字的GBK编码范围,首字节从0xB0到0xF7,末字节从0xA1到0xFE(不含A0)。设计一个如图3的汉字拼音映射二维数组。第一行存储“首字节是0xB0的汉字组”的拼音,第二行存储“首字节是0xB1的汉字组”的拼音,以此类推,最后一行存储“首字节是0xF7的汉字组”的拼音。每一组里再按“末字节”编码的顺序存储。注意该数组逻辑上存储的是汉字的拼音,物理上存储的实际是拼音字符串的指针。设该拼音二维数组为pytable[72][94],共有72行,每行有94列。如图4,将汉字串快速翻译为拼音串的步骤如下:第1步,取得要转换汉字的首字节head;第2步,判断head是否小于0xB0;如果小于0xB0,则说明本次检测的字符不是汉字,走到第7步,继续检测下一个汉字;否则往下走到第3步;第3步,取得该汉字的末字节tail;第4步,将首字节head减掉0xB0,得到第一维的下标index1;第5步,将末字节tail减掉0xA1,得到第二维的下标index2;第6步,得到该汉字的拼音数据pytable[index1][index2]并拼接;第7步,判断是否还有汉字串需要转换,有的话转到第1步;否则结束。通过以上步骤,通过计算汉字的GBK编码,迅速得到了该汉字的拼音。第二步,根据配置表将类似的拼音转化为相同文字。根据业务的不同,需要配置不同的转换关系,故为了便于维护,这个转换将通过数据库查表实现。设计如图5的表格,里面存储拼音和汉字的对应关系。则很容易通过SQL语句将拼音串转化为汉字串。可见,单个汉字转本文档来自技高网
...
一种提高嘈杂环境下语音识别率的方法

【技术保护点】
一种提高嘈杂环境下语音识别率的方法,其特征在于:该方法包括如下步骤:第一步:从识别云平台取得识别结果;第二步:将识别结果快速翻译为拼音;第三步:查询数据库配置表,将拼音翻译为业务需要的文字;第四步:将翻译后的文字返回给应用程序。

【技术特征摘要】
1.一种提高嘈杂环境下语音识别率的方法,其特征在于:该方法包括如下步骤:第一步:从识别云平台取得识别结果;第二步:将识别结果快速翻译为拼音;第三步:查询数据库配置表,将拼音翻译为业务需要的文字;第四步:将翻译后的文字返回给应用程序。2.根据权利要求1所述的提高嘈杂环境下语音识别率的方法,其特征在于:在第二步中:(1)、根据汉字的GBK编码为索引做一个汉字和拼音的映射表,根据汉字的GBK编码直接定位到汉字的拼音;(2)、一个汉字的GBK编码由2个字节组成,分为首字节和末字节,首字节从0xB0到0xF7,末字节从0xA1到0xFE;设计一个汉字拼音映射二维数组pytable,第一行存储“首字节是0xB0的汉字组”的拼音,第二行存储“首字节是0xB1的汉字组”的拼音,以此类推,最后一行存储“首字节是0xF7的汉字组”的拼音;每一组里再按“末字节”编码的顺序存储;(3)、将汉字串快速翻译为拼...

【专利技术属性】
技术研发人员:范晨
申请(专利权)人:杭州仁盈科技股份有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1