我的Android SpeechRecognizer有问题。 它可以在Android 2.3.5版中同时使用英语(en-GB)和德语(de-DE)完美运行,但是在4.0.3版中,尽管指定的语言是德语,但它始终可以识别英语语音。

这是我的意图,该意图被传递给SpeechRecognizer。

Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, language);
intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE,
        mContext.getPackageName());
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
        RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH);
intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 1);

mRecognizer.startListening(intent);

我确信该变量始终是好的(当我想要德语时使用de-DE等)。

我也尝试添加:

intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, language);

但它也不起作用。

我还可以确保SpeechRecognizer支持德语。 我正在使用此BroadcastReceiver来获取可用语言的列表。

public class AndroidAvailableLanguagesChecker extends BroadcastReceiver {

    private List<String> supportedLanguages;

    public AndroidAvailableLanguagesChecker() {
        supportedLanguages = new ArrayList<String>();
    }

    @Override
    public void onReceive(Context context, Intent intent) {
        Bundle results = getResultExtras(true);
        if (results.containsKey(RecognizerIntent.EXTRA_SUPPORTED_LANGUAGES)) {
            supportedLanguages = results
                .getStringArrayList(RecognizerIntent.EXTRA_SUPPORTED_LANGUAGES);
        }
    }

    public List<String> getSupportedLanguages() {
        return supportedLanguages;
    }
}




// using broadcast receiver
Intent detailsIntent = new Intent(
        RecognizerIntent.ACTION_GET_LANGUAGE_DETAILS);
mChecker = new AndroidAvailableLanguagesChecker();
context.sendOrderedBroadcast(detailsIntent, null, mChecker, null,
        Activity.RESULT_OK, null, null);

有谁知道为什么这不起作用?

提前致谢!

#1楼 票数:0

这只是一个假设,现在还不是一个证明,但是也许语言必须是“ de_DE”而不是“ de-DE”,请尝试一下。

  ask by Grzes translate from so

未解决问题?本站智能推荐:

2回复

使用Google搜索版本3.6.14.1337016的SpeechRecognizer无法识别除默认语言之外的其他语音语言

您可以在最新的Google搜索设置中设置多种语音语言。 但问题是SpeechRecognizer只能识别默认语言。 我实施了...... 我要求对韩语进行识别,但resultList仅包含默认语言的结果。 我怎样才能得到正确的结果? 谢谢。
3回复

SpeechRecognizer,绑定到识别服务失败

我在 android 上使用 SpeechRecognizer 来识别用户的声音。 在卸载 Google App 之前它运行良好。 ( https://play.google.com/store/apps/details?id=com.google.android.googlequicksearc
4回复

SpeechRecognizer:没有选定的语音识别服务

这就是我启动我的RecogniseListener意图的方法: 但是,我得到一个奇怪的行为。 它适用于某些手机(三星galaxy S5,在这种情况下),但我在联想K50-T5上收到以下错误: 这是我的AndroidManifest.xml:
2回复

SpeechRecognizer:未连接到识别服务

在我的应用中,我直接使用SpeechRecognizer。 我销毁SpeechRecognizer onPause的活动,我在onResume方法中重新创建它,如下所示... 当应用程序首次通过eclipse安装时,会调用SpeechRecognition服务并正确识别。但是当应用程序
1回复

使用SpeechRecognizer获取识别数据的转录

我使用SpeechRecognizer实现“语音到文本”功能,她的工作结果是文本数据: 使用这种方法能否获得识别语音的抄写而不是文本? 例如,由于它是在Google翻译中实现的: 或者,如有必要,使用其他方法。 我怎样才能做到这一点? 提前致谢。 问候...
2回复

哪个Android版本引入了SpeechRecognizer的Audible Cue onReadyForSpeech?

安卓2.X 不会自动发出声音提示时, 准备演讲输入。 Android 4.1的确如此。 这些版本之间会发生什么? 即什么时候介绍这个很酷的功能? Android 3.0? (Build.VERSION_CODES.HONEYCOMB_MR) Android 3.
1回复

“ getDisplayLanguage()”始终返回“英语”

我需要获取在Android设备中选择的当前语言。 当我使用以下代码时: 输出始终相同: 下面图片来自android模拟器选择的语言: 当我更改仿真器的语言时,可以在Android控制台上获取图片中的日志。(但是getDisplayLanguage()函数返回英文)
1回复

Android SpeechRecognizer只能识别英语吗?

我正在使用以下代码来识别文本。 首先,我调用对话框以选择用于识别的语言。 我将该参数传递给RecognizerIntent。 不幸的是,我的手机上只能识别“ en-US”(我也尝试过“ fr-FR”和“ ru-RU”)。 有没有做的事情,或者如何缩小工作语言范围? 码