23

私はアンドロイドで音声認識 API に取り組んできましたが、言語設定が変更されると音声結果が変化することがわかりました。プログラムで設定する方法はありますか? または、音声言語設定画面を起動する意図がありますか? または他に何ですか?注:私はこのインテントエクストラを使用しようとしました:

intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, "en-US");

しかし、それは効果がありませんでした

4

8 に答える 8

49

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

于 2012-05-11T09:17:27.100 に答える
12

ハックアラウンド以外に解決策はありません...

intent.putExtra("android.speech.extra.EXTRA_ADDITIONAL_LANGUAGES", new String[]{"en"});

ここで完全なストーリーを確認してください。

于 2014-11-01T10:48:50.893 に答える
12

これはうまくいきます:

intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "en_US");

「en-US」の代わりに「en_US」を使用する必要があります。前者は、Java ロケール タグの正しい形式です。

使用することをお勧めします

intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.US.toString());

そのような詳細を覚えないようにします。

于 2013-03-16T09:49:46.900 に答える
8

これを試しましたか:

intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "en-US");
于 2012-05-10T17:45:43.290 に答える
2

このコードは、音声認識で言語を設定するためのものです

  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);
于 2018-09-29T10:36:08.600 に答える
0

私はこのコードを使用しました:

intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, "en-US");

今すぐアプリを実行できることを願っています。

于 2015-08-28T18:15:28.520 に答える