【问题标题】:Available languages for speech recognition可用于语音识别的语言
【发布时间】:2010-05-06 13:42:38
【问题描述】:

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

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

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

谢谢大家。

【问题讨论】:

  • 请尽量使您的标题更具描述性。例如:“可用于语音识别的语言”

标签: android


【解决方案1】:

要在语言之间切换,只需使用您想要的语言区域设置并在您的ACTION_RECOGNIZE_SPEECH 意图中设置Locale.toStringEXTRA_LANGAUGE

要检查可用的语言,您需要这样的东西:

    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 的一部分。

【讨论】:

  • 太棒了!这很有用。只有一件事我们发现不完整。在 Android 8.x 上运行时,Bundle 结果在“Bundle[{}]”中没有任何内容!你对这个问题有什么想法吗?
  • 但问题是当你想使用它时,它不能完美地工作,例如使用中文,因为您根本无法创建Locale 来开始识别
【解决方案2】:

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

查看 API 文档 here

【讨论】:

  • 不幸的是它不起作用,总是返回空包。我在互联网上发现了类似的问题。谁能告诉它是否有效,以及如何正确使用它?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-07
  • 1970-01-01
  • 1970-01-01
  • 2018-07-13
  • 1970-01-01
  • 1970-01-01
  • 2019-06-26
相关资源
最近更新 更多