我们在c# .net中使用了一个解决方案,人们可以拨打一个电话号码,然后说出一个人的名字,然后说出他的姓。然后在我们的网站上登记客人的名字。我们使用一个XML字典文件,其中包含从美国人口普查中获得的5000个名字和89000个姓氏。我们正在使用微软的语音识别库,(也许这就是问题所在)。
我们的问题是,即使是约书亚·麦克丹尼尔斯这样相对简单的名字,我们也有大约30%的失败率。性能(速度方面)还不错,只是没有抓住名称的大部分。
现在,我明白最终说出的名字的质量将决定,抱歉双关语,系统的表现如何,但我们希望在"实验室"条件下接近99%,发音完美,没有口音,然后称之为好。但即使经过几次试验,同一个人说话,相同的名字,相同的电话,相同的环境,我们得到25%的失败率。
我的问题是:有没有人有更好的方法来解决这个问题?我们想也许可以尝试使用API,这样匹配将更加相关和最新。
当前的技术状态是很难识别名字,而且名字列表很大。您可以从电话簿(500个条目)中识别出高质量的名字,但对于数千个条目来说,这是非常困难的。语音识别引擎当然不是为此而设计的,特别是像System.Speech.
这样的离线引擎。你可能会得到更好的结果与在线系统,如https://www.projectoxford.ai使用先进的DNN声学模型和更大的词汇表。
有很多大公司都是围绕着识别大名单的能力而建立起来的,比如Novauris使用了专利技术。您可能会考虑使用开源引擎构建类似的东西,但无论如何这将是一项很大的任务。