语音识别,例如Siri。

3
软件如Siri,接受语音命令并适当地回答这些问题(98%)。我想知道当我们编写一个软件来接受语音信号的输入流并回答这些问题时,我们是否需要将输入转换成可读的人类语言,例如英语?
就像在自然界中我们有很多不同的语言,但当我们说话时,我们基本上会发出不同的噪音。这就是它的全部。然而,我们已经创建了所谓的字母表来表示那些噪音变化。
因此,我的问题是,当我们编写语音识别算法时,我们是将那些噪音变化信号与我们的数据库匹配,还是先将那些噪音变化转换成英语,然后再从数据库中检索要回答的信息?
2个回答

2
你所提到的“噪声变化信号”被称为音素。语音识别系统如何将这些音素转化为单词取决于系统类型。Siri不是基于语法的系统,你不能告诉语音识别系统你期望的短语类型,也不能基于一组规则进行翻译。由于Siri在开放环境中翻译语音,它可能使用某种类型的统计建模。目前流行的语音识别统计模型是隐马尔可夫模型。虽然涉及到某种类型的数据库,但这并不是简单地将音素组合搜索成单词。有一个相当好的高层次描述过程和翻译问题的文章

2

苹果的Siri基于自然语言理解... 我相信Nuance是幕后推手...请参考这篇文章。 Nuance是语音识别系统开发的领导者。 Nuance Dragon引擎的准确性非常惊人... 我所服务的客户正在使用Nuance NOD服务作为其IVR系统的一部分... 我尝试过Nuance Dragon SDK for Android... 从我的经验来看,如果您使用Nuance,您无需担心噪声变化等等问题... 但是,当您进行企业级应用程序发布时,Nuance可能会比较昂贵。

如果您打算利用语音驱动您的应用程序,Google API也是一个不错的选择...

有像Sphinxpocket sphinx这样的API可帮助您更好地开发语音应用程序。以上所有API都将处理噪声抑制和将语音转换为文本等等... 你唯一需要担心的就是构建您的系统以理解给定字符串或已识别语音内容的语义含义...苹果应该拥有非常好的语义含义解释器。所以试用一下Nuance SDK吧,它适用于Android、iOS、Windows手机和HTTP客户端版本。

希望能对您有所帮助


Karthikeyan,写得不错,谢谢!但我更感兴趣的是系统是如何工作的,而不是有哪些可用的系统。 :) - TeaCupApp
Sphinx 和 PocketSphinx 是开源的…… 为什么不试着去理解它们实现了什么呢? :) - Karthikeyan Arumugam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接