CN107274894A - 一种提高嘈杂环境下语音识别率的方法 - Google Patents
一种提高嘈杂环境下语音识别率的方法 Download PDFInfo
- Publication number
- CN107274894A CN107274894A CN201710358269.0A CN201710358269A CN107274894A CN 107274894 A CN107274894 A CN 107274894A CN 201710358269 A CN201710358269 A CN 201710358269A CN 107274894 A CN107274894 A CN 107274894A
- Authority
- CN
- China
- Prior art keywords
- chinese character
- phonetic
- byte
- noisy environment
- word
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 15
- 238000013519 translation Methods 0.000 claims abstract description 22
- 230000014616 translation Effects 0.000 claims abstract description 22
- 238000006243 chemical reaction Methods 0.000 claims description 12
- 238000013507 mapping Methods 0.000 claims description 10
- 238000013518 transcription Methods 0.000 claims description 6
- 230000035897 transcription Effects 0.000 claims description 6
- 238000013461 design Methods 0.000 claims description 5
- 238000001514 detection method Methods 0.000 claims description 5
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 5
- 206010034719 Personality change Diseases 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/20—Speech recognition techniques specially adapted for robustness in adverse environments, e.g. in noise, of stress induced speech
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/24—Speech recognition using non-acoustical features
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/26—Speech to text systems
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/28—Constructional details of speech recognition systems
Landscapes
- Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明公开了一种提高嘈杂环境下语音识别率的方法,该方法包括如下步骤:第一步:从识别云平台取得识别结果;第二步:将识别结果快速翻译为拼音;第三步:查询数据库配置表,将拼音翻译为业务需要的文字;第四步:将翻译后的文字返回给应用程序。本发明的有益效果为:本发明提供了一种有效提高嘈杂环境下语音识别率的方法,能够用非常少的代价,大大提高嘈杂环境下的识别率。通过实施这种拼音近似音的定制转化,显著提高了嘈杂环境下命令词的识别率,同时也大大降低了代码和数据字典维护的工作量。
Description
技术领域
本发明属于语音识别技术领域,主要是一种提高嘈杂环境下语音识别率的方法。
背景技术
目前语音识别技术日渐成熟并应用在各个领域。如手机上的各种语音搜索应用、语音发短信、对话聊天软件、语音导航软件等等。这些应用都是借助语音识别技术将语音转换为文字,大大降低了人们使用软件时输入的工作量。
当前语音识别技术在提高人们使用便利性的同时,也存在一些问题。如在办公室内、家里和其它安静的场合,识别率都非常高;但在比较嘈杂的公共场合环境,识别率就直线跳水,非常低了。识别率变低的原因就是环境噪音和使用者的声音进行了叠加,对识别软件造成了干扰。
如在公共场合某些支持语音搜索的自助设备,当客户说需要的酒店区域的时候,由于噪音的叠加,真实需要的区域“三墩”也许会被它理解为“山东”、“山洞”、甚至“汕头”。针对这个问题,许多语音识别***也有一些优化方案,如可以上传本地的热词表到云端识别***,让“三墩”这个地名优先被匹配;或者应用软件自己做区分,将识别到的“山东”,“汕头”强制转化为“三墩”。
热词表的方案,其实解决的是同音词的问题。比如说“三墩”这个音,由于该地名比较生僻,如果不加该热词,可能会被识别为“三吨”或者“三顿”。这些词发音完全一致,加上热词“三墩”,就是告诉识别云平台,遇到这个音要优先选择热词“三顿”。所以该方案只能较好得解决同音词的问题,如果识别声音源本身受到了干扰,发生了变形,则还是会被识别为其它常见近似语音,如“山东”。
应用软件自己强制转换的方案,在一定程度上是可行的,只要在代码里或者数据字典里做好识别词组的翻译即可。如在某包含“三墩”而不需要“山东”等地名的业务场景下,发现识别结果是“山东”、“山洞”或者“汕头”,就强制转换为“三墩”,可以满足业务需求。但该方案的缺陷是,识别结果的不确定导致代码或者数据字典频繁更新。比如识别出“扇动”、“闪动”这些词,其实用户说的是“三墩”,那么这些词就得加到数据字典里,强制转换为“三墩”。下次发现识别出“煽动”,又得继续加入数据字典。识别结果的不确定导致维护工作量极大。
发明内容
本发明的目的在于克服现有技术存在的不足,而提供一种提高嘈杂环境下语音识别率的方法。
本发明的目的是通过如下技术方案来完成的。这种提高嘈杂环境下语音识别率的方法,该方法包括如下步骤:
第一步:从识别云平台取得识别结果;
第二步:将识别结果快速翻译为拼音;
第三步:查询数据库配置表,将拼音翻译为业务需要的文字;
第四步:将翻译后的文字返回给应用程序。
更进一步的,在第二步中:
(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语句将拼音串转化为汉字串。
可见,单个汉字转化为拼音的时间复杂度为O(1),效率很高。
同时由于上述汉字和拼音映射的二维数组的存储内容为拼音字符串的指针,存储空间为72*94*4=27072字节,汉字的所有拼音组合约500种,约占用空间1000字节,故最终消耗存储空间约为28000字节,不到30KB,所消耗的内存也很少。
实施例:
第1步:从识别云平台取得识别结果“山洞”。
第2步:将识别结果快速翻译为拼音“shandong”。
第3步:查询数据库配置表,将拼音“shandong”翻译为业务需要的文字“三墩”。
第4步:将翻译后的文字“三墩”返回给应用程序。
算法介绍:
第1步:从识别云平台取得识别结果“山洞”。
该方案的重点在于第2步,将识别结果“山洞”迅速翻译为拼音“shandong”;和第3步,根据配置表将类似的拼音“shandong”转化为相同文字“三墩”。
下面分别介绍这2个关键步骤。
第一步,将识别结果“山洞”快速翻译为拼音“shandong”。
考虑到识别平台返回的汉字均为常见汉字,数量远小于GBK编码表中的汉字。我们可以根据汉字的GBK编码为索引做一个汉字和拼音的映射表,根据汉字的GBK编码直接定位到汉字的拼音,其时间复杂度为O(1)。这样做可以避免汉字配置在数据库里,用查表转换这种通常做法带来的数据库开销和网络时延。
一个汉字的GBK编码由2个字节组成,如图2,分为首字节和末字节。
本例待转换汉字串为“山洞”,其中“山”的GBK编码的首字节为0xC9,末字节为0xBD;“洞”的首字节为0xB6,末字节为0xB4。
常见汉字的GBK编码范围,首字节从0xB0到0xF7,末字节从0xA1到0xFE(不含A0)。
设计一个如图3的汉字拼音映射二维数组。第一行存储“首字节是0xB0的汉字组”的拼音,第二行存储“首字节是0xB1的汉字组”的拼音,以此类推,最后一行存储“首字节是0xF7的汉字组”的拼音。每一组里再按“末字节”编码的顺序存储。注意该数组逻辑上存储的是汉字的拼音,物理上存储的实际是拼音字符串的指针。
如图6,本例“山洞”的拼音存储位置已清晰地标注出来。
设该拼音二维数组为pytable[72][94],共有72行,每行有94列。
将汉字串“山洞”快速翻译为拼音串的步骤如下:
先检测“山”:
第1步,取得要转换汉字的首字节head为0xC9;
第2步,判断head0xC9是否小于0xB0;如果小于0xB0,则说明本次检测的字符不是汉字,走到第7步,继续检测下一个汉字;否则往下走到第3步;
第3步,取得该汉字的末字节tail为0xBD;
第4步,将首字节head0xC9减掉0xB0,得到第一维的下标index1为25;
第5步,将末字节tail0xBD减掉0xA1,得到第二维的下标index2为28;
第6步,得到该汉字的拼音数据pytable[25][28]为“shan”;
第7步,判断是否还有汉字串需要转换,有的话转到第1步;显然本例还有汉字“洞”需要转化,步骤如下。
再检测“洞”:
第1步,取得要转换汉字的首字节head为0xB6;
第2步,判断head0xB6是否小于0xB0;如果小于0xB0,则说明本次检测的字符不是汉字,走到第7步,继续检测下一个汉字;否则往下走到第3步;
第3步,取得该汉字的末字节tail为0xB4;
第4步,将首字节head0xB6减掉0xB0,得到第一维的下标index1为6;
第5步,将末字节tail0xB4减掉0xA1,得到第二维的下标index2为19;
第6步,得到该汉字的拼音数据pytable[6][19]为“dong”;
第7步,判断是否还有汉字串需要转换,有的话转到第1步;本例已无汉字需要转化,整个转化过程结束。
通过以上步骤,通过计算汉字的GBK编码,迅速得到了“山洞”的拼音“shandong”。其时间复杂度为O(1)。
第二步,根据配置表将类似的拼音转化为相同文字。
根据业务的不同,需要配置不同的转换关系,故为了便于维护,这个转换将通过数据库查表实现。本例参考如图5的表格,里面存储拼音和汉字的对应关系。则很容易通过SQL语句将拼音串“shandong”转化为汉字串“三墩”。
原来这位到杭州来旅游的用户发出的语音指令实际是“三墩”而不是被误识别的“山洞”。
综上,我们使用该发明算法,只要在数据库里配置极少的同音或者近似音的拼音,即可很好地将同音词或者近音词替换为业务场景需要的文字,而且其中单个汉字转化为拼音的时间复杂度仅仅为O(1),效率非常的高,并且仅占用不到30KB的存储空间。通过实施这种拼音近似音的定制转化,显著提高了嘈杂环境下命令词的识别率,同时也大大降低了代码和数据字典维护的工作量。
可以理解的是,对本领域技术人员来说,对本发明的技术方案及发明构思加以等同替换或改变都应属于本发明所附的权利要求的保护范围。
Claims (3)
1.一种提高嘈杂环境下语音识别率的方法,其特征在于:该方法包括如下步骤:
第一步:从识别云平台取得识别结果;
第二步:将识别结果快速翻译为拼音;
第三步:查询数据库配置表,将拼音翻译为业务需要的文字;
第四步:将翻译后的文字返回给应用程序。
2.根据权利要求1所述的提高嘈杂环境下语音识别率的方法,其特征在于:在第二步中:
(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编码,迅速得到了该汉字的拼音。
3.根据权利要求1所述的提高嘈杂环境下语音识别率的方法,其特征在于:在第三步中:根据业务的不同,需要配置不同的转换关系,将这个转换将通过数据库查表实现,数据库配置表里面存储拼音和汉字的对应关系,通过SQL语句将拼音串转化为汉字串。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710358269.0A CN107274894A (zh) | 2017-05-19 | 2017-05-19 | 一种提高嘈杂环境下语音识别率的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710358269.0A CN107274894A (zh) | 2017-05-19 | 2017-05-19 | 一种提高嘈杂环境下语音识别率的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107274894A true CN107274894A (zh) | 2017-10-20 |
Family
ID=60065125
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710358269.0A Pending CN107274894A (zh) | 2017-05-19 | 2017-05-19 | 一种提高嘈杂环境下语音识别率的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107274894A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102262669A (zh) * | 2011-07-28 | 2011-11-30 | 西安空间无线电技术研究所 | 一种从汉语拼音到汉字内码的快速输出方法 |
CN103456297A (zh) * | 2012-05-29 | 2013-12-18 | ***通信集团公司 | 一种语音识别匹配的方法和设备 |
CN104238991A (zh) * | 2013-06-21 | 2014-12-24 | 腾讯科技(深圳)有限公司 | 语音输入匹配方法及装置 |
CN106383848A (zh) * | 2016-08-31 | 2017-02-08 | 浪潮软件集团有限公司 | 一种实现的多音字汉字转拼音的方法 |
-
2017
- 2017-05-19 CN CN201710358269.0A patent/CN107274894A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102262669A (zh) * | 2011-07-28 | 2011-11-30 | 西安空间无线电技术研究所 | 一种从汉语拼音到汉字内码的快速输出方法 |
CN103456297A (zh) * | 2012-05-29 | 2013-12-18 | ***通信集团公司 | 一种语音识别匹配的方法和设备 |
CN104238991A (zh) * | 2013-06-21 | 2014-12-24 | 腾讯科技(深圳)有限公司 | 语音输入匹配方法及装置 |
CN106383848A (zh) * | 2016-08-31 | 2017-02-08 | 浪潮软件集团有限公司 | 一种实现的多音字汉字转拼音的方法 |
Non-Patent Citations (1)
Title |
---|
ITPROBIE-菜鸟程序员: ""中文转换为完整拼音算法原理分析"", 《HTTPS://WWW.CNBLOGS.COM/GUOHU/P/5021336.HTML》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103077714B (zh) | 信息的识别方法和装置 | |
CN103268313B (zh) | 一种自然语言的语义解析方法及装置 | |
US11176141B2 (en) | Preserving emotion of user input | |
CN104142915B (zh) | 一种添加标点的方法和*** | |
CN103971684B (zh) | 一种添加标点的方法、***及其语言模型建立方法、装置 | |
CN101950285A (zh) | 利用统计学方法对汉字的本国语读音串转换***及其方法 | |
US11829433B2 (en) | Contextual deep bookmarking | |
CN1989547A (zh) | 在语音识别和文本-语音引擎中处理缩写词和数字 | |
CN101561725B (zh) | 一种手写快速输入的方法和*** | |
CN103594085A (zh) | 一种提供语音识别结果的方法及*** | |
CN103383699A (zh) | 字符串检索方法及*** | |
CN103970751A (zh) | 多国语言网页转换***及方法 | |
CN103034625A (zh) | 侦测及校正中文错字的***及方法 | |
CN102478968B (zh) | 中文拼音输入方法和中文拼音输入*** | |
CN102929852A (zh) | 一种在富文本编辑器内实现简繁体字互转的方法及*** | |
CN101477565B (zh) | 确定搜索引擎中输入字符串正确性的方法及装置 | |
CN103943109A (zh) | 一种将语音转换为文字的方法及装置 | |
CN104021117A (zh) | 语言处理方法与电子设备 | |
CN101727440A (zh) | 一种敏感词校对的方法及*** | |
CN107274894A (zh) | 一种提高嘈杂环境下语音识别率的方法 | |
CN104252451A (zh) | 汉语自然语文本遥控查询指路机信息的方法 | |
CN104598464A (zh) | 一种信息处理方法及电子设备 | |
CN104063500B (zh) | 信息处理设备以及信息处理方法 | |
CN109065016B (zh) | 语音合成方法、装置、电子设备及非暂态计算机存储介质 | |
CN104252449A (zh) | 非特定人外语语音遥控查询指路机信息的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171020 |