我对语音到文本算法很感兴趣,但我不知道从哪里开始研究它们.一堆搜索让我想到了这一点,但它是从1996年开始的,我很确定从那时起就有了改进.
有任何有这种东西经验的人是否有任何关于阅读/源代码的建议?或者只是关于我应该学习什么的一般性建议,如果我想进入编写语音识别程序的世界(如果你对该领域没有太多的了解,有时很难知道要搜索什么).
编辑:我想跨平台做一些事情,但目前我的目标是linux.
编辑2:感谢csmba提供经过深思熟虑的回复.此时,我主要感兴趣的是能够创建允许自动化或通过语音执行不同命令的应用程序.因此,有限数量的可识别命令能够串联在一起.一个例子是一个音乐播放器,它接受诸如"播放由Squarepusher播放Hello Everything"的命令,或者允许用户创建语音快捷方式以启动特定应用的应用程序启动器.
我意识到这是一个非常巨大的问题,并且我现在无法达到实现整个识别引擎所需的知识水平,尽管这样做的技术让我很着迷,这是我想要工作的东西我自己去做.很有可能,我可能最终会在这个主题上拿起一两本书,并在我的空闲时间学习/玩"简单"的实现.
这是一个巨大的问题,我不知道如何开始......所以,让我试着给你正确的"条款",这样你就可以完善你的任务:
首先,要理解语音识别是一个多样化和复杂的主题,它有许多不同的应用.人们倾向于将这个领域映射到他们头脑中的第一件事(通常,这将是计算机理解你在IVR系统中所说的内容).首先,让我们将概念区分为主要类别:
人与机器:处理理解人类所说内容的应用程序,但是人类知道他正在与机器交谈并且语法非常有限.例子是
电脑自动化
专业:飞行员自动控制一些控件(噪音很大的问题)
像谷歌411这样的IVR(交互式语音应答)系统,或者当你打电话给银行和另一边的电脑时说"说"服务"来获得客户服务"
人与人(自发性言论):这是一个更大,更复杂的问题.在这里,我们还可以将其分解为不同的应用程序:
呼叫中心:代理 - 客户之间的对话,电话质量,压缩
情报:2人或更多人之间的广播/电话/现场对话
现在,言语到文本不是你应该说的,你关心的.你关心的是解决问题.不同的技术用于解决不同的问题.见概述这里的一些人.总而言之,其他方法是语音转录,LVCSR和直接基础.
另外,您是否有兴趣成为技术背后的PHD?你需要一个涉及信号处理的硕士学位,并且可能是最先进的PHd.在这种情况下,您将为开发实际语音引擎的公司工作.像Nuance和IBM这样的公司是最重要的公司,但菲利普斯和其他创业公司也存在.
另一方面,如果您想成为实现应用程序的那个,那么您将不会使用引擎,而是在构建使用引擎的应用程序.我认为是游戏行业的一个很好的比喻:你是在开发图形引擎(比如Cry引擎),还是在几百个游戏之一上工作,都使用相同的图形引擎?
不要误解我的意思,在IBM/Nuance of the world之外的搜索质量还有很多工作要做.引擎通常是非常开放的,并且需要进行大量的算法调整才能显着影响性能.每个业务应用程序都有不同的约束和成本/收益功能,因此您可以多年进行实验,构建更好的基于语音识别的应用程序.
还有一件事:一般来说,你也希望在你想要的堆栈中有较低的统计背景.
在这个时间点,我主要感兴趣的是能够创建允许自动化的应用程序
好,我们在这里融合......然后你对"言语到文本"没兴趣.流行语将带您进入完全转录的世界,这是您不需要去的地方.您应该专注于一些更加人性化的技术,如语音XML和IVR系统中使用的技术(Nuance是那里最大的玩家)