大名单语音识别

Speech recognition of the large name list

我们在 C#.net 中使用一个解决方案,有人可以拨打 phone 号码并先说出一个人的名字,然后再说出姓氏。然后在我们网站的访客登记处输入该名称。我们使用一个 XML 字典文件,其中包含我们从美国人口普查中获得的 5,000 个名字和 89,000 个姓氏。我们正在使用 Microsoft.Speech.Recognition 库,(也许这就是问题所在)。

我们的问题是,即使使用像 Joshua McDaniels 这样相对简单的名字,我们的失败率也大约为 30%。性能(速度方面)很好,只是没有抓住大部分名称。

现在,我明白最终口语的质量将决定系统的性能,但我们希望在 "laboratory" 条件下接近 99%完美的发音,没有口音,然后称之为好。但即使在同一个人、相同的名字、相同的 phone、相同的环境进行多次试验后,我们的失败率仍为 25%。

我的问题是:有没有人有更好的方法来解决这个问题?我们考虑过可能尝试使用 API,这样匹配会更相关和最新。

目前的技术状况是,人名识别难度很大,而且人名列表很大。您可以从 phone 本书(500 个条目)中认出高质量的名字,但对于成千上万的人来说,这非常困难。语音识别引擎当然不是为此而设计的,尤其是像 System.Speech.

这样的离线引擎。

使用像 https://www.projectoxford.ai 这样使用高级 DNN 声学模型和更大词汇表的在线系统,您可能会获得更好的结果。

许多大公司都围绕识别大型名单的能力而建立,例如 Novauris 为此使用了专利技术。您可能会考虑使用开源引擎构建类似的东西,但无论如何这都是一项艰巨的任务。