2

RecognizerIntent とデフォルトの Android Wear UI を使用してキーワード音声認識を実装したいと考えています。

問題は、アンドロイド ウェア ウォッチがリッスンしているデフォルトの言語を変更できないことです。認識エラーのために英単語のみを認識したいのですが、電話のデフォルト言語を変更したくありません。私はこのようなことをしています:

private void displaySpeechRecognizer() {

    Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "en-US");
    startActivityForResult(intent, SPEECH_REQUEST_CODE);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == SPEECH_REQUEST_CODE && resultCode == RESULT_OK) {
        List<String> results = data.getStringArrayListExtra(
                RecognizerIntent.EXTRA_RESULTS);
        String spokenText = results.get(0);
        mTextView.setText(spokenText);
        if (spokenText.contains("KeyWord")) {
            Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);
            long[] vibrationPattern = {0, 500, 50, 300};
            //-1 - don't repeat
            final int indexInPatternToRepeat = -1;
            vibrator.vibrate(vibrationPattern, indexInPatternToRepeat);
        }
        // Do something with spokenText
    }
    super.onActivityResult(requestCode, resultCode, data);
}

このソリューションは機能しますが、英語の結果も得られません。音声認識はandroid wear watchで行います。

4

1 に答える 1

-1

申し訳ありませんが、私はあまり使用していRecognizerIntentないので、それがうまくいくかもしれないという提案をすることができます.

ただし、進行中の認識言語を切り替えることはできません。Google 検索アプリを起動します。設定 - 言語に移動し、
そこでスペイン語と英語の言語を確認します。その後、スペイン語でタップアンドホールドしてから保存します。

en-US英語で 使用したのと同じように es または fr タグを試すこともできます。これも機能します。ただし、の代わりに
使用する必要があります。en_USen-US

これにより、Android デバイスがデフォルトでスペイン語を認識するようになります。理解を深めるために、Android 開発者サイトをご覧ください: http://developer.android.com/reference/android/speech/RecognizerIntent.html#EXTRA_LANGUAGE



この質問も参照してください: https://stackoverflow.com/a/10548680/3950422

于 2015-04-22T08:18:23.500 に答える