4

我有一个java应用程序。我想在它上面实现一个语音识别功能。

像这样:

假设我有一些被用户称为“嘿”,“一”,“二”,“茶”的记录。当他/她说“嘿”时,语音识别api应该识别记录的第一个输入。“嘿", "one", "two, "tea" 可以是非英语单词。

我已经在寻找一些支持语音识别或具有音频指纹算法的 api。但我不想使用它们。

让我解释一下为什么我不使用这些 api。首先,语音识别api尝试理解单词并转换为文本。但是,这仅限于 api 支持的语言。即使语音识别 api 支持英语。由于用户的发音不好,它可能会给出不好的结果。所以我不想在我的应用程序上使用语音识别 api。因为该功能不应该基于语言。

此外,当我寻找语音识别api时,我找到了“音频指纹”api。我使用了开源的“ musicg ”api。然后,我开发了一个测试应用程序。该应用程序记录了 4 个不同的音频文件,其中包含 unword 语音。之后,我录制了一个与其中一个相似的声音,并且测试 api 使用 musicg api 将最后一个与以前的音频文件进行了比较。然而结果也很糟糕。

正如我之前提到的,我需要一个语音识别功能,就像旧手机一样。

4

1 回答 1

1

检查 kaldi http://kaldi-asr.org/ 或这个 tensorflow 教程:https ://www.tensorflow.org/tutorials/audio_recognition

在这两种情况下,您都可以训练模型,它不是基于语言的。您可以针对某些特定的声音或口音或某些特定的上下文训练模型。

另外,也许这个项目会让你感兴趣:https ://github.com/cmusphinx/g2p-seq2seq 它不使用语言模型并将音频转换为音素。

于 2017-11-29T19:09:09.227 回答