13

在应用程序中,我必须比较以前本地存储的语音命令的实时录音,如果它匹配(不仅是文本,还包括识别出的人的声音),然后执行必要的操作。

1 匹配来自同一个人的语音命令。

2-匹配命令的文本。

我应用了很多方法,但没有一个按我的预期工作。

首先: 使用OpenEars SpeechKit等语音转文本库,但这些库仅转换语音中的文本。

结果:如我所愿失败

二:(音频指纹)

acrcloud 库在这个库中,我记录了一个命令并将该 mp3 文件存储在 acrcloud 服务器上,并与现场录音(由我说)匹配,但当我播放相同的录音(我的声音录制的 MP3 文件)时,它是上传到 acrcloud 服务器然后匹配。 结果:如我所愿失败

API.AI在这个库中,就像语音到文本一样,我在他的服务器上存储了一些文本命令,然后任何人说出相同的命令,结果都会成功。 结果:如我所愿失败

请建议我如何解决 iOS 应用程序的这个问题

4

3 回答 3

1

http://www.politepix.com/openears/可以在objective-c中使用,或者如果你想快速尝试http://blog.tryolabs.com/2015/06/15/tlsphinx-automatic-speech-recognition-asr -in-swift/。我从未使用过它们,但它们似乎拥有您需要的一切。如果不尝试寻找 C++ 库,应该有更多选择,但很可能您必须处理典型的移植问题。我真的不建议你自己写一个,因为你会花一些时间学习技术,然后导入一些信号处理库,然后开始编写自己的算法。当然,除非你有时间和兴趣去做。

我建议您以与通常开发语音识别软件相同的方式开始集成您的应用程序:记录一堆示例,构建测试并经常验证事情是否正常/不正常。

在进行语音识别工作(包括单词识别和说话人识别)时,我学到的最重要的事情之一是录音的质量对你能用它做什么有很大的影响。在您能找到的最安静的地方制作一小批录音,然后您将始终有一个基准来与更真实的录音进行比较。

还要尝试在稍后阶段涵盖您在实际应用程序中找到的所有麦克风,因为没有内在保证所有 iphone 麦克风都是平等的。我希望它在不同的 iPhone 型号之间完全没有差异,但谁知道呢?

于 2016-08-05T12:39:18.637 回答
1

如果我正确理解您的要求,这就是我的处理方式:

  1. 您需要比较每个录音的音频频谱以匹配该人(查看 Accelerate 框架中的 vDSP)一个 1024 窗口的 F​​FT 分析应该足够了(如果不尝试将其加倍以获得更多细节)我会从 5 开始比较-10 光谱中的峰值并从那里进行实验。查看EZAudio以获得一个简单的 FFT 实现来帮助您入门。

  2. 使用语音到文本库来匹配文本。口音通常会极大地扭曲他们的结果,所以我可能会首先尝试从音频中获取文本并进行比较,而不是在文本中指定要匹配的命令。

祝你好运!

于 2016-08-05T08:06:26.197 回答
-2

一般来说,我认为您应该使用方法 1 进行一些调整。对于本地音频。您添加文本脚本版本,例如:1 音频,源脚本用于录制音频。使用 OpenEars、SpeechKit 将音频转换为文本

尝试比较源脚本和文本以获得结果。您应该在源脚本中标记必须强调的文本以获得最佳比较结果。有时我们有这样的词:酒,妻子,白......(也试着处理这个想法)

GLHF

于 2016-08-04T09:13:28.617 回答