语音识别的可用语言

时间:2010-05-06 13:42:39

标签: android

据我所知,语音识别有3种语言可供选择:英语(英国,美国,澳大利亚......),日语和中文(普通话)。

有没有人知道如何在这些语言之间切换的更多细节? 有没有办法知道(以编程方式)哪种语言在某个设备上进行语音识别? (也许在日本只有日本人......但是我能以某种方式得到这些信息......就像财产或任何东西?)。

对此有任何帮助将不胜感激。

谢谢你们。

2 个答案:

答案 0 :(得分:3)

要在不同语言之间切换,只需使用您想要的语言环境,并在Locale.toString意图中为EXTRA_LANGAUGE设置ACTION_RECOGNIZE_SPEECH

要查看可用的语言,您需要以下内容:

    Intent detailsIntent = new Intent(
            RecognizerIntent.ACTION_GET_LANGUAGE_DETAILS);
    LanguageDetailsChecker checker = new LanguageDetailsChecker();
    sendOrderedBroadcast(detailsIntent, null, checker, null,
            Activity.RESULT_OK, null, null);

其中LanguageDetailsChecker是BroadcastReceiver,定义如下:

public class LanguageDetailsChecker extends BroadcastReceiver {

    private static final String TAG = "LanguageDetailsChecker";

    private List<String> supportedLanguages;

    private String languagePreference;

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

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

所有这些代码都是this project的一部分。

答案 1 :(得分:0)

你可能想看看android.speech.RecognizerIntent看起来你可以通过调用getVoiceDetailsIntent()从那里获得语言支持信息。

查看API文档here