iOS/C:检测音素的算法

18

我正在寻找一种算法,以确定实时语音输入是否与给定的 144 个(舒适地区分)音素对之一相匹配。

最好是尽可能低级别的算法。

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

我的音乐系统包括 12 个辅音音素和 12 个元音音素,演示见此处。 这使得有 144 种可能的音素对。 学生必须响应视觉刺激唱出正确的音素对“laa duu bee”等。

我已经做了很多研究,看起来我最好的选择可能是使用 iOS Sphinx 封装器之一(iPhone 应用程序 › 添加语音识别?是我找到的最好的信息来源)。 然而,我看不出我如何调整这样的软件包,有没有使用这些技术的经验的人可以简单介绍所需的步骤?

用户需要进行培训吗? 我认为不需要,因为这是一个基本的任务,与数千个单词的完整语言模型和更复杂的音素基础相比,要简单得多且不太微妙。 然而,让用户训练 12 个音素对也可以接受(但不理想):{辅音1+元音1,辅音2+元音2,...,辅音12+元音12}。 完整的 144 种对将会太繁重。

有没有更简单的方法? 我觉得使用完整功能的连续语音识别器就好像用大锤敲开一个坚果一样。 使用最小的技术解决问题会更加优雅。

所以我真正寻找的是任何能够识别音素的开源软件。

附言:我需要一个几乎实时运行的解决方案。 因此,即使他们唱着音符,它首先会闪烁以说明它捕捉到了被唱出的音素对,然后会发光以说明他们是否唱出了正确的音高。


4
为什么会有人给我点踩并且想要关闭问题?这是一个合理的编程问题,并且我已经提供了一个真实世界的使用场景。难道是因为有人在办公室里过得不好吗? - P i
1
我没有给你的问题点踩,但是你的问题比较宽泛,虽然在某个特定主题上很具体,但是却缺乏明确性。你的问题与代码关系不大,更多地是概念性的。这并不是说不好,但是过于宽泛的问题可能会受到打压。 - Moshe
2
@Moshe,我的问题并不含糊。我正在寻找实时音素识别的代码。此外,我还指定了音素库的限制。 - P i
4个回答

5
如果你正在寻找一个手机级别的开源识别器,那么我会推荐使用HTK。这个工具提供了非常好的文档,形式为HTK手册。它还包含了一个完整的章节,专门介绍如何构建一个电话级别的实时语音识别器。根据你上面的问题陈述,我认为你可以将这个例子重新制定为自己的解决方案。可能会遇到的问题:
  1. 由于你想要做一个电话级别的识别器,训练电话模型所需的数据量会很大。此外,你的训练数据库应该在电话分布方面保持平衡。
  2. 构建一个说话者无关系统需要来自多个说话者的数据。而且,需要很多数据。
  3. 由于这是开源的,你还应该查看有关运送代码的任何其他详细信息的许可证信息。一个很好的替代方法是使用手机录音机,然后将记录下的波形通过数据通道发送到服务器以进行识别,基本上就像谷歌一样。

我很高兴能帮助到你。 - Sriram

4
我有一点这种类型信号处理的经验,我认为这可能不是可以明确回答的有限问题。
值得注意的一点是,尽管您可能限制了感兴趣的音素,但可能性空间仍然相同(即无限)。 用户培训可能会在一定程度上帮助算法,但有用的培训需要相当长的时间,而且似乎您不太喜欢太多的培训。
使用Sphinx可能是解决此问题的好方法。 我自己还没有深入研究过该库,但我猜想您将自己使用其源代码来获得所需的精确结果。(开源万岁!)
引用:
“杀鸡焉用牛刀。”
我不会把您的问题标记为小事,我会说它更像一个野兽。 它可能是与自然语言语音识别不同的野兽,但它仍然是野兽。
祝您解决问题顺利。

1
不确定这是否能帮到你:查看OpenEarsLanguageModelGenerator。OpenEars使用Sphinx和其他库。

0

http://www.hfink.eu/matchbox

这个页面链接了YouTube视频演示和Github源代码。

我猜想将其塑造成我想要的形状仍然需要很多工作,但它确实可以完成很多工作。


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