18

我正在寻找一种算法来确定实时音频输入是否与 144 个给定(并且非常不同)音素对中的一个匹配。

最好是完成这项工作的最低级别。

我正在为 iPhone / iPad 开发激进/实验性音乐培训软件。

我的音乐系统包括 12 个辅音音素和 12 个元音音素,在这里演示。这就产生了 144 个可能的音素对。学生必须根据视觉刺激唱出正确的音素对“laa duu bee”等。

我对此进行了大量研究,看起来我最好的选择可能是使用 iOS Sphinx 包装器之一(iPhone App › 添加语音识别? 是我找到的最佳信息来源)。但是,我看不出我将如何调整这样的包,任何有使用这些技术经验的人都可以给出所需步骤的基本概要吗?

用户是否需要培训?与包含数千个单词的完整语言模型以及更大、更微妙的音素基础相比,我不会想到,因为这是一项如此基本的任务。但是,让用户训练 12 个音素对是可以接受的(不理想):{ consonant1+vowel1, consonant2+vowel2, ..., consonant12+vowel12 }。完整的 144 太累赘了。

有没有更简单的方法?我觉得使用功能齐全的连续语音识别器正在使用大锤来破解坚果。使用可以解决问题的最少技术会更加优雅。

所以我真的在寻找任何识别音素的开源软件。

PS我需要一个几乎可以实时运行的解决方案。所以即使他们在唱这个音符,它首先会闪烁以表明它拾取了所唱的音素对,然后它会发光以说明他们是否在唱正确的音高

4

4 回答 4

5

如果您正在寻找电话级别的开源识别器,那么我会推荐HTK。该工具以 HTK Book 的形式提供了非常好的文档。它还包含一整章专门用于构建电话级实时语音识别器。从您上面的问题陈述来看,在我看来,您可能可以将该示例重新设计为您自己的解决方案。可能的陷阱:

  1. 由于您想做一个电话级别的识别器,因此训练电话模型所需的数据会非常高。此外,您的培训数据库应该在电话分布方面保持平衡。

  2. 构建一个独立于说话者的系统需要来自多个说话者的数据。还有很多。

  3. 由于这是开源的,您还应该查看许可信息以获取有关发送代码的任何其他详细信息。一个不错的选择是使用电话录音机,然后将记录的波形通过数据通道发送到服务器进行识别,这与谷歌所做的非常相似。

于 2011-06-30T08:59:17.640 回答
4

我对这种类型的信号处理有一点经验,我想说这可能不是可以明确回答的有限问题类型。

值得注意的一点是,尽管您可能会限制您感兴趣的音素,但可能性空间保持不变(即无限大)。用户培训可能会对算法有所帮助,但有用的培训需要相当多的时间,而且您似乎反对太多。

使用 Sphinx 可能是解决这个问题的一个很好的开始。我自己在库中还没有走得太远,但我猜你将自己使用它的源代码来获得你想要的东西。(开源万岁!)

...用大锤敲碎坚果。

我不会给你的问题贴上疯子的标签,我会说它更像是一头野兽。它可能是与自然语言语音识别不同的野兽,但它仍然是野兽。

祝您解决问题一切顺利。

于 2011-06-22T21:53:22.063 回答
1

不确定这是否有帮助:查看OpenEars ' LanguageModelGenerator。OpenEars 使用 Sphinx 和其他库。

于 2011-06-30T14:12:09.230 回答
0

http://www.hfink.eu/matchbox

此页面链接到 YouTube 视频演示和 github 源。

我猜想把它塑造成我想要的形状仍然需要很多工作,但也确实做了很多工作。

于 2011-06-23T03:41:41.330 回答