编写语音识别引擎

7
所以,像许多人一样,我决定创建自己的语音识别引擎。事实证明,这并不容易,特别是对于英语来说,因为单词的书写方式和发音方式之间存在着明显的差异。作为来自格鲁吉亚的人,我决定为格鲁吉亚语编写语音识别程序。在格鲁吉亚语中,你会准确地按照单词的书写方式发音。就像转录一样。这个事实会显著地简化我的任务吗?还是会有更困难的问题:D?

1
顺便说一下,我的一个朋友最近创建了格鲁吉亚语ASR。如果你有兴趣,请告诉我。 - Nikolay Shmyrev
Nika,你创建了这个软件吗?请分享一下你已经完成了什么,如果这样的软件存在,我们也很感兴趣。 - T.Todua
1
我认为最简单的方法是使用人工智能,使用多层感知器或类似的神经网络进行训练... 我认为通过这种解决方案,您可以轻松解决Yahia在他的答案中提到的问题,祝好运 ;) - Simon
2个回答

9
语音识别是一个复杂的领域,有许多特定的算法、工具和方法。要创建自己的引擎,您可以从CMUSphinx开源语音识别工具包开始,它将允许您:
  • 收集和处理支持格鲁吉亚语所需的数据
  • 创建格鲁吉亚语模型
  • 实现格鲁吉亚语言的语音识别引擎。
  • 使用引擎在桌面、服务器或iPhone上创建运行的语音识别应用程序(通过OpenEars)
CMUSphinx已经支持英语、德语、西班牙语、法语、荷兰语、俄语、普通话、冰岛语、意大利语和许多其他语言。添加新语言非常简单。对于新手来说,通常需要一个月或两个月的集中工作来实现所需的过程。
要开始,请访问主页: http://cmusphinx.sourceforge.net 并阅读教程 http://cmusphinx.sourceforge.net/wiki/tutorial 如果您有任何问题,请在论坛或此处提问!
而且,人们普遍错误地认为在说格鲁吉亚语时只需要拼写声音。这在世界上大多数语言中都不是真的。要测试假设,请尝试在音频编辑器中录制一些音频,并检查实际发音的哪些声音。您会感到惊讶。上面的教程详细介绍了这个问题。

那么你的意思是我可以在几个月内添加绝对未知的语言,比如格鲁吉亚语,并且“让它工作”?!?! - nicks
当然可以。事实上,CMUSphinx已经在支持低资源语言方面取得了很大进展。 - Nikolay Shmyrev

5
所有来自乔治亚的人听起来都一模一样吗?我认为不是这样的...语音识别中的许多主要问题与语言本身并没有直接关系:
  • 不同的人(女性、男性、儿童、老年人等)有不同的声音
  • 有时同一个人会在感冒时发出不同的声音
  • 不同的背景噪音
  • 日常语言有时包含其他语言的单词(例如在美国/英语中有德语单词Kindergarten)
  • 一些非该国家的人学习了该语言(他们通常听起来不同)
  • 有些人说话快,有些人说话慢
  • 麦克风的质量
    等等。

解决这些问题总是很困难...除此之外,还需要处理语言/发音...我不知道乔治亚语,但你所描述的可能会使任务变得更容易,但仍然是一个艰巨的任务。

编辑-根据评论:

使用好的库可以降低时间框架,甚至有助于提高质量...但并非每个库都适用于语音识别,尽管在某些其他音频相关问题上可能很出色...

供参考,请查看维基百科文章http://en.wikipedia.org/wiki/Speech_recognition - 它有一个很好的概述,包括一些链接和书籍参考,这是一个很好的起点...

至于如何设计这样的API,请参考http://java.sun.com/products/java-media/speech/forDevelopers/jsapi-guide/Recognition.html


2
@NikaGamkrelidze 我猜如果你从两个不同的人那里听到同一个词,你可以区分这些人(比如你的母亲、父亲和一些朋友等)? - Yahia
2
@NikaGamkrelidze写道,即使是一个非常优秀的开发者,独自从头开始编写这个项目也会很困难,并且在我看来,第一种语言要达到像样的质量需要3-5年时间,而第二种语言则需要更少的时间,因为你已经解决了几个基本方面的问题...一年后,你可能会有一些粗略的东西,并且可以处理一小部分语言,但处理背景噪音等能力将相对有限。 - Yahia
1
@NikaGamkrelidze 不,这是普遍情况...因为大多数主要问题并不特定于语言...而3-5年的领域对于一种更容易的语言(格鲁吉亚语?)可能需要2.5-3年,而对于一种更难的语言(如日语/中文...)甚至可能需要7年... - Yahia
2
@NikaGamkrelidze,你需要评估这个库,因为并不是每个实现都适用于每种用途,例如有些可能对语音识别不好,但对其他一些音频相关的东西非常出色...如果语言简单且使用一些好的库,也许你可以将其缩短到2年。 - Yahia
3
请参见http://en.wikipedia.org/wiki/Speech_recognition以了解概述,并提供有关该主题的相当不错的书籍的引用...同时阅读http://java.sun.com/products/java-media/speech/forDevelopers/jsapi-guide/Recognition.html,以了解此类API的设计方式。 - Yahia
显示剩余6条评论

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