当前位置: 首页 > 知识库问答 >
问题:

Android离线语音识别编程

阴英武
2023-03-14

我想在我的应用程序中使用语音识别。从android jellybean开始,我知道android系统支持离线语音识别(听写?)!

到目前为止,我只能使用内置键盘的离线识别来键入一些东西,即按下键盘上的麦克风按钮然后说话,但这种用途有限,因为用户每次都需要按下按钮并且需要一个文本字段

我希望能够使用语音识别在程序需要时开始收听,并在识别完成后调用一些回调函数。谷歌的在线语音识别确实可以做到这一点,但我想使用jellybean的离线识别。

我听说过像pocket sphinx这样的第三方选择,但我想坚持使用内置识别器,因为根据我的经验,它非常高效且准确

有可能吗?如果是,那么如何?

共有1个答案

孙文康
2023-03-14

我不确定这是否能回答您的问题,但根据我的经验,为了使用语音识别库,您应该在设备中下载语言包。

通过有趣的教程和如何下载语言包查看此网站

例如,我的设备是加泰罗尼亚语的(没有加泰罗尼亚语包可下载),但我可以强制库识别另一种语言,例如西班牙语。

private final static String FORCED_VOICE_LANGUAGE = "es-ES";

[…]

Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
        intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
                RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
        intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, FORCED_VOICE_LANGUAGE);
        intent.putExtra(RecognizerIntent.EXTRA_PROMPT, getString(R.string.speech_prompt));
 类似资料:
  • 我已经使用HTK(Hidden Markov Model Tool Kit)来识别用于控制Android应用程序的特定命令,但在这种情况下,我需要将一些语音数据传递给服务器,这可能会耗费更多时间。 为了防止这种延迟,我正在考虑使用pocketsphinx通过Android应用程序在本地识别语音数据,这样我就不需要将音频传递给服务器。 如果这是一个好主意,那么从头开始学习pocketsphinx容易

  • 我正在开发一个android应用程序,它将监听语音命令并相应地触发动作。 以下是一些疑问: > 谷歌语音识别离线库是否可用于android应用程序 我们能创建自己的词汇词典吗 应用程序应在脱机模式下工作(无Internet)。

  • 在飞行模式下,按下按钮,一个声音退出输入屏幕,输入出现的声音请重新输入,上周可以正常使用,谷歌很长时间找不到解决方案,希望帮助离线谷歌语音已经设置好 公共void onclick1(视图v) { } 受保护的void onActivityResult(int requestCode、int resultCode、Intent data){ }

  • 我做了很多研究,并尝试了离线pocket sphinx,但它接收了周围的声音,对我的应用程序做出了不同的反应。以上kitkat 4.4是否有谷歌离线应用程序。。我从两周后就开始尝试了。感谢您宝贵的回答。 详细信息:当活动开始时,第一个文本必须在完成后读取内容(文本到语音),读取语音识别必须根据命令例如:(下一步、上一步、前进、选项、1、2、3、4等)进行语音和语音识别。根据命令,它必须在on结果方

  • 我正在寻找一个定制的Android应用程序来帮助残疾人。我需要严重依赖语音识别。其想法是: 应用程序(通过语音识别)接受他的语音 我有#1 理想情况下,该应用程序只会听声音,如果该声音高于某个预先编程的分贝水平,我会开始语音识别。是否有可能不断循环只是听声音,然后在声音“如此”大时做出反应? 有什么想法吗? 谢啦

  • 我尝试离线使用Android的语音识别API,就像这个问题一样,Android离线语音识别只显示一个结果?。我在线时也会得到五个结果,离线时只会得到一个结果,我希望在任何一种情况下都能得到五个(ish)结果。这仅仅是Android内置语音识别引擎的一个限制,还是有一些隐藏的设置可以更改以强制生成多个结果? 这是我的意图设置: 和我的onResults(): 我正在运行Android 4.4.2。