为什么语音识别困难?

时间:2011-12-05 07:10:25

标签: algorithm theory speech-recognition

为什么语音识别如此困难?涉及的特定挑战是什么?我已经阅读了question on speech recognition,这部分回答了我的一些问题,但答案主要是轶事而非技术性。它仍然没有真正回答为什么我们仍然不能在这个问题上投入更多的硬件。

我见过使用神经网络和环境FFT分析执行自动降噪的工具,效果很好,所以我看不出为什么我们仍然在努力解决噪音问题,除非在诸如可笑的大声背景噪音或多个语音来源。

除此之外,是不是只是使用非常大,复杂,训练有素的神经网络进行处理,然后投入硬件以使其足够快地工作?

我知道强烈的口音是一个问题,而且我们都有口语,但当这个人用缓慢而清晰的美国或英国口音说话时,这些识别引擎仍然会弄错。

那么,这笔交易是什么?那些技术问题会让计算机难以理解我?

5 个答案:

答案 0 :(得分:11)

一些技术原因:

  • 您需要大量标记的培训数据,一旦考虑到所有不同的重音,声音等,就很难获得。
  • 神经网络和类似的梯度下降算法不能很好地扩展 - 只是让它们更大(更多层,更多节点,更多连接)并不能保证他们会学会解决你的问题在合理的时间。扩大机器学习以解决复杂的任务仍然是一个难以解决的问题。
  • 许多机器学习方法需要标准化数据(例如,定义的起点,标准音高,标准速度)。移出这些参数后,它们无法正常工作。有一些技术,如卷积神经网络等来解决这些问题,但它们都增加了复杂性,需要进行大量的专家微调。
  • 语音的
  • 数据大小可能非常大 - 数据的大小使工程问题和计算要求更具挑战性。
  • 语音数据通常需要在上下文中进行解释才能充分理解 - 人类大脑非常善于根据理解的语境“填补空白”。在其他形式(如愿景)的帮助下填写缺失的信息和不同的解释。当前算法不“理解”上下文,因此他们不能使用它来帮助解释语音数据。这尤其成问题,因为除非在上下文中使用,否则许多声音/单词都是模棱两可的。

总的来说,语音识别是一项复杂的任务。没有难以理解的努力,但是很难你不应该期待任何突然的奇迹,这肯定会让很多研究人员忙碌多年.......

答案 1 :(得分:2)

人们在倾听时使用的不仅仅是他们的耳朵,他们使用他们的知识 关于演讲者和主题。单词不是任意排序的 总之,人类使用的是语法结构和冗余 预测尚未说出的话。此外,习语和我们通常的方式 说事情使预测更容易。

在语音识别中,我们只有语音信号。我们当然可以构建一个 语法结构模型,并使用某种统计模型 改进预测,但仍然存在如何建模世界的问题 知识,说话者的知识和百科知识。我们 当然,不能详尽地模拟世界知识,而是一种有趣的 问题是我们在ASR中实际需要多少来衡量人类 理解。

在声音,时钟滴答声,计算机等环境中发出语音 嗡嗡声,收音机在走廊的某处播放,另一个人 背景中的扬声器等。这通常称为噪声,即不需要的 语音信号中的信息。在语音识别中,我们必须识别并过滤掉 来自语音信号的这些噪音。 口语!=书面语言

1:连续发言

2:频道可变性

3:演讲者可变性

4:说话风格

5:言论速度

6:歧义

在构建语音识别时必须考虑所有这些要点,这就是为什么它非常困难。

-------------来自http://www.speech.kth.se/~rolf/gslt_papers/MarkusForsberg.pdf

答案 2 :(得分:2)

语音识别中的许多重大问题与语言本身没有直接关系:

  • 不同的人(女人,男人,孩子,长辈等)有不同的声音
  • 有时同一个人听起来不同,例如当人感冒时
  • 不同的背景噪音
  • 日常讲话有时包含来自其他语言的文字(就像你在美国/英语中有德语单词Kindergarden)
  • 一些不是来自该国的人自己学习了这种语言(他们通常听起来不同)
  • 有些人讲得更快,有些人讲得更慢
  • 麦克风的质量
    等。

解决这些问题总是非常困难......除此之外,你还要用语言/代词来处理......

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

从技术POV来看,“音频预处理”只是一个漫长过程中的一步......让我们说音频是“crytal clear”,然后是上面提到的几个方面(比如感冒,有混淆)语言等)仍然需要解决。

所有这些意味着,为了获得良好的语音识别,您需要有一个足够彻底的语言模型来解释轻微的差异(如“吃”与“八”),这通常涉及一些情境分析(即语义和事实/世界知识,见http://en.wikipedia.org/wiki/Semantic%5Fgap)等。

由于几乎所有相关语言都已经发展并且没有被设计为数学模型,因此您基本上需要将关于语言的可用隐式和显式知识“反向工程”到模型中,这是一个很大的挑战恕我直言。

我自己使用神经网络我可以向你保证,虽然它们在某些情况下提供了良好的效果,但它们并不是“神奇的工具”......几乎总是一个好的神经网络已经过精心设计和针对特定要求进行了优化。在这种情况下,它需要丰富的语言经验/知识和神经网络PLUS的广泛培训才能取得有用的成果......

答案 3 :(得分:2)

我怀疑你对'连续'语音识别感兴趣,其中说话者以正常速度说句子(而不是单个单词)。

问题不仅仅是信号分析,而且还有一个很大的自然语言成分。我们大多数人都不是通过分析我们所听到的每一件事来理解口语,因为这样做是不可行的,因为每个人说话方式不同,音素被抑制,发音不同等等。我们只是解释我们听到的一部分,其余部分是一旦所述内容的背景确立,我们的大脑就会“插入”。当你没有语境时,就很难理解口语。

答案 4 :(得分:1)

自从我上大学语言课以来已经十年了,但我记得语言可以分解为phonemes。语言处理器尽力识别这些音素,但它们对每个人来说都是独一无二的。即使它们被打破,它们也必须重新组装成一个有意义的结构。

举个例子,人类完全有能力阅读,没有标点符号,没有大写字母,也没有空格。这需要一秒钟,但我们可以很容易地做到这一点。这就是计算机在获得一块音素时必须要注意的东西。但是,计算机在解析这些数据方面并不是那么好。其中一个原因是计算机很难有上下文。人类甚至可以理解婴儿,尽管他们的音素可能是完全错误的。

即使您将所有音素都正确,然后将它们排列成有意义的顺序也很困难。