android - CMU Sphinx 能否设置为识别~200 个单词

标签 android speech-recognition speech-to-text

我有一个客户需要一个可以识别语音命令的 Android 应用程序。据我了解,内置的语音转文本功能实际上是将数据发送到谷歌的服务器,然后由谷歌的服务器发回文本翻译。这是一个主要问题,因为语音数据非常敏感(除非数据在与谷歌之间发送和接收时是否加密——但我怀疑它是否加密)。

我能想到两个选项。首先是在 Android 上将语音转换为文本,尽管这似乎是一项非常昂贵的操作。第二种可能性是让本地服务器为我转换数据(我可以加密语音数据和传输时的翻译)。这是 CMU Sphinx 可以实现的吗?可能值得注意的是,我还可以访问 Asterisk 服务器,这可能会对此有所帮助(我不知道)。

实际上,应该只有大约 200 个单词需要识别。我更喜欢开源/免费软件解决方案,但我也愿意接受商业解决方案(也许是 FlexT9)。理想情况下,我可以将音频流发送到某个地方,取回一个作为文本的字符串,然后我可以解析该字符串并使用该字符串执行其他操作。

我过去没有做过多少 android 或任何语音识别开发,所以我希望至少有人能为我指明正确的方向。谢谢!

最佳答案

CMUSphinx是一个开源语音识别工具包,您可以使用它来构建您的应用程序。它包含使您能够构建语音应用程序的工具、库和数据。您可以在上面的网站上了解有关 CMUSphinx 的更多信息。

在 Android 上,您有多种选择来使用 CMUSphinx:

  1. 识别设备上的音频。为此,您可以为 Android 编译 Pocketsphinx 引擎。详情see this blog post .

  2. 识别服务器上的音频。作为服务器,您可以使用 Pocketsphinx 或 Sphinx4。您可以发送压缩的 flac 格式的音频或提取设备上的语音识别特征并将特征流发送到服务器。

CMUSphinx 为您提供多种声学模型,使您能够识别多种语言的音频,例如英语、法语、普通话、德语、荷兰语、俄语。

您还可以使用自适应工具改进识别结果。

如果您对CMUSphinx有任何疑问,欢迎您ask in our community forums .

关于android - CMU Sphinx 能否设置为识别~200 个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9073856/

相关文章:

android-emulator - 安卓 2.2 : Where is the option for speech input in the emulator?

python-3.x - Microsoft Speech to Text Python SDK SPXERR_INVALID_HEADER 问题

android - 空对象引用上的java.lang.String android.content.Context.getPackageName()

android - 在Android Studio的离线模式下设置gradle

javascript - 如何从 Bing Speech API 输出中提取值

ios - 如何改进 ios 中数字输入的语音识别?

c# - 如何将语音转换为 .wav 格式并使用它

Android 通过 Video-out 显示内容

java - Android 应用程序 shell "no such file or directory",在文件资源管理器和 adb 中正常

java - 语音识别API