【问题标题】:Why is speech recognition difficult? [closed]为什么语音识别难? [关闭]
【发布时间】:2011-12-05 07:10:24
【问题描述】:

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

我已经看到使用神经网络和环境 FFT 分析执行自动降噪的工具,结果非常好,所以我看不出为什么我们仍然在与噪音作斗争,除非在困难的情况下,比如非常响亮的背景噪音或多个语音源。

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

我知道重口音是个问题,而且我们都有自己的俗语,但是当对方以缓慢而清晰的美国或英国口音说话时,这些识别引擎仍然会出错。

那么,交易是什么?有哪些技术问题让计算机仍然难以理解我?

【问题讨论】:

  • 致标记为关闭此主题/不具建设性的人:我看不出你的推理。我要的是一个具体的答案,而不是一个列表或主观反应。这也是一个高度嵌入编程领域的挑战,因为它是一个已经存在很长时间的特定编程挑战,即“编写一些听我的话并理解它们的代码”。你能解释一下你为什么投票决定关闭吗?
  • 不是。你需要看语言治疗师吗? (他们甚至做语音识别吗?)
  • 我没有标记为关闭,但我可以看出为什么其他人有。它可能符合以下条件:此问题可能会征求意见、辩论、争论、投票或扩展讨论。
  • 我不明白为什么会有争论。我只是想问是什么技术限制导致了这个问题。
  • 那些投票结束的人(以及实际投票完全删除这个问题的人)可以解释一下吗?我完全赞成结束被认为不符合 SO 最佳利益的问题,但没有解释就结束本身不符合 SO 的最佳利益。

标签: algorithm theory speech-recognition


【解决方案1】:

一些技术原因:

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

总的来说,语音识别是一项复杂的任务。不是无法解决的难,但足够难,你不应该期待任何突然的奇迹,它肯定会让许多研究人员忙很多年......

【讨论】:

  • 这是我正在寻找的信息。很有意思。你有什么我能读到的引文吗?
  • 没有任何特别提到的手,但我认为一些谷歌搜索应该可以帮助您找到大多数这些主题的一些细节。值得注意的是,机器学习通常会遇到很多问题,而不仅仅是语音。
【解决方案2】:

人类在聆听时使用的不仅仅是耳朵,他们使用的是他们所掌握的知识 关于演讲者和主题。单词不是任意排序的 一起,存在人类使用的语法结构和冗余 预测尚未说出的单词。此外,习语和我们“通常”的方式 说出事情让预测变得更加容易。

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

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

1:连续语音

2:渠道可变性

3:说话人的可变性

4:说话风格

5:语速

6:歧义

在构建语音识别时必须考虑所有这些点,这就是它相当困难的原因。

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

【讨论】:

    【解决方案3】:

    我怀疑您对“countinuous”语音识别感兴趣,即说话者以正常速度说出句子(而不是单个单词)。

    问题不仅仅是信号分析问题,还有一个很大的自然语言组件。我们中的大多数人不是通过分析我们听到的每一件事来理解口语,因为这永远不会奏效,因为每个人的说话方式不同,音素被压制,发音不同等等。我们只是解释我们听到的一部分,其余的是一旦建立了所说的上下文,我们的大脑就会“插入”。如果没有上下文,就很难理解口语。

    【讨论】:

      【解决方案4】:

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

      • 不同的人(女人、男人、孩子、老人等)有不同的声音
      • 有时同一个人的声音会有所不同,例如感冒时
      • 不同的背景噪音
      • 日常演讲有时包含来自其他语言的单词(例如在美国/英语中有德语单词 Kindergarden)
      • 有些人不是来自这个国家本身就学习了这种语言(他们通常听起来不同)
      • 有些人说得快,有些人说得慢
      • 麦克风质量
        等等。

      解决这些问题总是很困难...除此之外,您还需要处理语言/发音...

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

      从技术 POV 来看,“音频预处理”只是漫长过程中的一个步骤……假设音频“非常清晰”,那么上面提到的几个方面(比如感冒,在语言等)仍然需要解决。

      所有这一切意味着,要获得良好的语音识别,您需要有一个足够彻底的语言模型来解释通常涉及一些上下文分析的细微差异(例如“ate”与“eight”)(即语义和事实/世界知识,请参阅http://en.wikipedia.org/wiki/Semantic%5Fgap) 等。

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

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

      【讨论】:

      • 只是一个小修正;在第 4 段中,您拼错了“水晶般清晰”。
      【解决方案5】:

      我在大学上语言课已经十年了,但据我所知,语言可以分解为phonemes。语言处理器尽最大努力识别这些音素,但它们对每个人都是独一无二的。即使它们被分解,它们也必须重新组合成一个有意义的结构。

      以这个例子为例,人类在没有标点符号、没有大写字母和没有空格的情况下非常有能力阅读。这需要一秒钟,但我们可以很容易地做到这一点。这就是计算机在获得一组音素时必须查看的内容。然而,计算机并不擅长解析这些数据。原因之一是计算机很难有上下文。尽管婴儿的音素可能完全错误,但人类甚至可以理解婴儿。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多