首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可用于语音识别的语言

可用于语音识别的语言
EN

Stack Overflow用户
提问于 2010-05-06 21:42:39
回答 2查看 5.4K关注 0票数 3

据我所知,语音识别支持3种语言:英语(英国,美国,澳大利亚),日语和汉语(普通话)。

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

任何关于这方面的帮助都将不胜感激。

谢谢你们。

EN

回答 2

Stack Overflow用户

发布于 2011-10-26 01:31:28

要在语言之间切换,只需使用您想要的语言区域设置,并在您的ACTION_RECOGNIZE_SPEECH intent中为EXTRA_LANGAUGE设置Locale.toString

要检查哪些语言可用,您需要类似以下内容:

代码语言:javascript
复制
    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:

代码语言:javascript
复制
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的一部分。

票数 3
EN

Stack Overflow用户

发布于 2010-05-22 02:25:28

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

请看API文档here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2781598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档