gpt4 book ai didi

android - Android 上语音识别支持的语言

转载 作者:行者123 更新时间:2023-11-30 01:59:41 27 4
gpt4 key购买 nike

我在获取支持的语言时遇到问题。我看到了一个解决方案即创建广播接收器并用语言填充列表。

public class LanguageChecker extends BroadcastReceiver
{
private List<String> supportedLanguages;

private String languagePreference;

@Override
public void onReceive(Context context, Intent intent)
{
//Log.d(Constants.Tag,"OnReceive");
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);


}
}

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

但问题是我需要这个 supportedLanguages 列表来填充我的微调器。当我调用方法 getSupportedLanguages 时,我得到 null。

这就是我在 onCreate 中使用广播的方式:

try {
lang = new LanguageChecker();
Intent detailsIntent = new Intent(RecognizerIntent.ACTION_GET_LANGUAGE_DETAILS);
sendOrderedBroadcast(detailsIntent, null, lang, null, Activity.RESULT_OK, null, null);


supportedLanguagesForSpeech=lang.getSupportedLanguages();
Log.d(Constants.Tag, String.valueOf(supportedLanguagesForSpeech.size()));
}
catch (Exception e){
Log.d(Constants.Tag,e.getMessage());
}

最佳答案

您应该通过回调来解决它,以确保分配了 supportedLanguages。你得到 null 因为你没有等待 onReceive 被调用。

这是我当前查询所有可用语音识别服务的支持语言的解决方案:

https://github.com/Kaljurand/K6nele/blob/3e514edc87e07babb0be57fa31ab48be7e2226e7/app/src/ee/ioc/phon/android/speak/RecognitionServiceManager.java

您可以在 Kõnele 应用程序 ( http://kaljurand.github.io/K6nele/about/ ) 的“设置 -> 识别语言和服务”列表中查看它的运行情况。

关于android - Android 上语音识别支持的语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31674964/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com