私はアンドロイドで音声認識 API に取り組んできましたが、言語設定が変更されると音声結果が変化することがわかりました。プログラムで設定する方法はありますか? または、音声言語設定画面を起動する意図がありますか? または他に何ですか?注:私はこのインテントエクストラを使用しようとしました:
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, "en-US");
しかし、それは効果がありませんでした
私はアンドロイドで音声認識 API に取り組んできましたが、言語設定が変更されると音声結果が変化することがわかりました。プログラムで設定する方法はありますか? または、音声言語設定画面を起動する意図がありますか? または他に何ですか?注:私はこのインテントエクストラを使用しようとしました:
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, "en-US");
しかし、それは効果がありませんでした
pargatが言うように、これはそれを行います:
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "en-US");
RecognizerIntent.ACTION_GET_LANGUAGE_DETAILS
また、アプリは次のように順序付けられたブロードキャストを送信することで、サポートされている言語のリストを照会できます。
Intent detailsIntent = new Intent(RecognizerIntent.ACTION_GET_LANGUAGE_DETAILS);
sendOrderedBroadcast(
detailsIntent, null, new LanguageDetailsChecker(), null, Activity.RESULT_OK, null, null);
ここで、LanguageDetailsChecker は次のようなものです。
public class LanguageDetailsChecker extends BroadcastReceiver
{
private List<String> supportedLanguages;
private String languagePreference;
@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);
}
}
}
完全なコードについては、この github プロジェクトをチェックしてください: https://github.com/gast-lib
ハックアラウンド以外に解決策はありません...
intent.putExtra("android.speech.extra.EXTRA_ADDITIONAL_LANGUAGES", new String[]{"en"});
ここで完全なストーリーを確認してください。
これはうまくいきます:
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "en_US");
「en-US」の代わりに「en_US」を使用する必要があります。前者は、Java ロケール タグの正しい形式です。
使用することをお勧めします
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.US.toString());
そのような詳細を覚えないようにします。
これを試しましたか:
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "en-US");
このコードは、音声認識で言語を設定するためのものです
String languagePref = "te-IN";//this is for telugu
//kannada ---> "kn-IN"
//tamil---> "ta-IN".....
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, languagePref);
私はこのコードを使用しました:
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, "en-US");
今すぐアプリを実行できることを願っています。