【问题标题】:Android offline speech recognition programmatically以编程方式进行 Android 离线语音识别
【发布时间】:2014-04-06 09:30:04
【问题描述】:
我想在我的应用程序中使用语音识别。从android jellybean开始我知道android系统支持离线语音识别(听写?)!
到目前为止,我只能通过内置键盘使用离线识别来输入内容,即按下键盘上的麦克风按钮然后说话,但这用途有限,因为用户每次都需要按下按钮并且它需要一个文本字段
我希望能够在程序需要时使用语音识别开始收听,并在识别完成时调用一些回调函数。 google的在线语音识别确实可以,但是我想用jellybean的离线识别来做。
我听说过像袖珍狮身人面像这样的第三方选项,但我想坚持使用内置识别器,因为根据我的经验,它非常高效且准确
有可能吗?如果是,那怎么办?
【问题讨论】:
标签:
android
offline
speech
【解决方案1】:
我不确定这是否能回答您的问题,但根据我的经验,为了使用语音识别库,您应该在您的设备中下载语言包。
请参阅this site,了解有趣的教程以及如何下载语言包
例如,我的设备使用的是加泰罗尼亚语(没有可下载的加泰罗尼亚语包),但我可以强制库识别另一种语言,例如西班牙语。
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));