comparison - 如何比较单词的发音?

标签 comparison audio

这是我的一个个人项目,我不知道从哪里开始,因为它远远超出了我的舒适区。

我知道有一些语言学习软件可以让用户记录他或她的声音并将发音与该语言的母语者进行比较。

我的问题是,如何实现这一目标?

我的意思是,如何比较用户和母语者的发音?

最佳答案

如果您正在寻找相对简单的东西,您可以简单地计算录音的 MFCC (http://en.wikipedia.org/wiki/Mel-frequency_cepstrum),然后查看一些简单的东西,例如录音和母语者发音的单词的平均系数。 MFCC 将音频转换成一个空间,其中欧氏距离与感知差异更紧密地对应。

当然,有几个可能的问题:

  • 对齐两个录音,使系数匹配。要解决此问题,您可以查看系数的最大互相关,而不是简单的相关,因此您将免费获得自动“最佳对齐”。此外,您可能需要剪掉录音的结尾,因此录音中只保留单词的实际发音。
  • MFCC 映射到感知空间,但可能无法很好地对应口音不准确。您也许可以尝试通过将其与“理想”发音进行比较,而不是将其与几种不同类型的错误发音的平均值进行比较,并查看它最接近哪个模型来解决此问题。
  • 即使是好的重音词也与理想的词平均有一定的“距离”。您必须考虑到这一点,并将输入的距离与“相对”良好距离进行比较。
  • 相关性可能不是比较两种声音的相对相似性的最佳方式。尝试许多不同的指标......尝试不同的 L^p 规范:(http://en.wikipedia.org/wiki/Lp_space),或者尝试以不同的方式权衡不同的 MFCC(如果我记得,即使在采用 MFCC 之后,尽管它们都应该具有相同的感知“权重”,但中间的那些对于我们如何感知声音仍然比高或低的更重要。)
  • 可能在声音的某些部分,发音对口音的质量更重要。也许瞬时检测可以找到这些位置并将它们标记为更重要的位置会更好。如果你有一大堆“好发音”和“坏发音”的例子,你可能会自动提取这些位置。

  • 同样,最后,您要知道这些选项的哪种组合最有效的唯一方法是通过测试。

    关于comparison - 如何比较单词的发音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6318168/

    相关文章:

    c# - 有没有更好的方法来调用 C# 中对象列表的比较?

    python - 仅当单独的 boolean 列表中的元素为真时,才对 python 列表中的元素求和

    javascript - 使用 recorder.js 录制语音并将其上传到 python-flask 服务器,但 WAV 文件损坏

    android - 处理人的声音

    javascript - IE 11的异常音频行为

    javascript - 快速查找两个字符串是否具有共同字符的方法

    javascript - Javascript 中的通配符字符串比较

    jquery - 比较同一类的多个元素的属性,看看它们是否相同?

    php - <audio> 控件的轨迹栏不移动的元素

    python - 识别录制声音中的音符 - Python