比较iOS中的两个音频(本地存储的预录语音命令和从应用程序中的麦克风录制的声音命令)

比较iOS中的两个音频(本地存储的预录语音命令和从应用程序中的麦克风录制的声音命令),ios,objective-c,swift,speech-recognition,audio-fingerprinting,Ios,Objective C,Swift,Speech Recognition,Audio Fingerprinting,在应用程序中,我必须比较来自先前本地存储的语音命令的实时录制,如果它匹配(不仅是文本,而且还识别出此人的语音),然后执行必要的操作 1-匹配来自同一个人的语音命令。 2-匹配命令的文本。 我应用了很多方法,但没有一种能达到我的期望 第一名: 使用语音到文本库,如,但这些库仅转换语音中的文本 结果:未达到我的预期 第二:(音频指纹) :在这个库中,我录制了一个命令并将该MP3文件存储在acrcloud服务器上,并与实时录制(我说的)相匹配,但当我播放上传到acrcloud服务器的相同录制(录制的M

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

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

2-匹配命令的文本。

我应用了很多方法,但没有一种能达到我的期望

第一名: 使用语音到文本库,如,但这些库仅转换语音中的文本

结果:未达到我的预期

第二:(音频指纹)

在这个库中,我录制了一个命令并将该MP3文件存储在acrcloud服务器上,并与实时录制(我说的)相匹配,但当我播放上传到acrcloud服务器的相同录制(录制的MP3文件)时,它会匹配。 结果:未达到我的预期

在这个库中,就像语音对文本一样,我在他的服务器上存储了一些文本命令,然后任何人都会说相同的命令,结果就成功了。 结果:未达到我的预期


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

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

尝试比较源脚本和文本以获得结果。您应该标记源脚本中必须强调的文本,以获得最佳比较结果。有时我们会说:酒、妻子、白。。。(试着处理这件事,想想看)


GLHF

如果我正确理解您的要求,我会这样做:

  • 您将需要比较每个录音的音频频谱以匹配人物(在加速框架中查看vDSP)1024窗口的FFT分析应该足够了(如果不尝试将其加倍以获得更多细节),我将从频谱中的5-10个峰值开始比较,并从那里开始实验。查看一个简单的FFT实现,开始学习

  • 使用语音到文本库来匹配文本。语音重音通常会严重扭曲其结果,因此我可能会首先尝试从音频和比较中获取文本,而不是在文本中指定要匹配的命令

  • 祝你好运

    可以在objective-c中使用,或者如果您想快速尝试。我从来没用过,但它们似乎有你需要的一切。如果不尝试寻找C++库,应该有更多的选项,但最有可能的是,你必须处理典型的移植问题。我真的不建议你自己写一个,因为你会花一些时间学习技术,然后导入一些信号处理库,然后开始编写自己的算法。当然,除非你有时间和兴趣去做

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

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


    另外,在以后的应用程序中,您还可以尝试覆盖所有的麦克风,因为没有内在保证所有iphone麦克风都是平等的。我希望不同型号的iphone不会有任何差异,但谁知道呢?

    @gnasher729从上周开始玩得很开心,根据您的评论,这是可能的。如果acrcloud Library失败,那么您应该在他们的网站上提出问题。@TejaNandamuri acrcloud Library没有失败,但我的期望与此不同,即在内容中匹配个人声音。如果您找到更合适的答案,请与他人分享。@Shohrab如果您找到任何解决方案,请告诉mei已经通过FFT(加速框架中的vDSP)计算了音频频率,请解释计算音频频谱的过程,然后解释如何比较这些音频频谱以匹配人类vocie。这是我们如何编写代码的主要挑战。Levy在这里有一个非常好的答案让你们开始:这是唯一的语音对文本库,而不是像语音认证那样比较人声。我的错误在这里。顺便说一句,您没有提到是否可以将繁重的工作卸载到服务器上,这将极大地打开您使用cpu密集型算法和/或其他语言的可能性。我对付费解决方案的数量和很少的开源解决方案感到惊讶。这里有一个付费技术(freemium)用于构建服务器端的示例,但显然您只需要进行REST调用,这样就可以轻松地与iOS集成:。微软还提供了一个语音到文本的SDK,显然可以脱机工作。微软api有什么进展吗?