4

多くの言語には、他の言語の単語がいくつか含まれていることがわかっています。Android 音声認識 (Androdi4.1) を使用して Android アプリケーションを開発する場合、アプリが 2 つの言語 (EN と TR) で同時に (または非同期で) 音声入力を処理し、両方の結果をもたらす必要があります。

トルコ語の発音で英語の「バーガー」は「Börgır」です。Android の音声認識を英語で使用すると、アプリケーションは Burger を Burger (on text) として認識します。トルコ語で Android の音声認識を使用すると、アプリケーションは Burger を Börgır (テキスト上) として認識します。これは、トルコ語が話し言葉として書かれているためです。

例えば:

トルコ語オプションを使用した音声認識結果: Börgır yemek istiyorum

英語オプションでの音声認識結果: Burger xxxxx yyyyyyyyy

期待される結果は(組み合わせ結果と一緒に) : Burger yemek istiyorum

Androidの音声認識を使用して両方の結果を収集し、その後、最良の結果を得るためにそれらを結合します。

以下のコードは、アプリケーション内で Android 音声認識を実装するために使用されます。

Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);

// Specify the calling package to identify your application

intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, getClass().getPackage().getName());

intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "tr"); --- or eng-us
4

3 に答える 3

4

これは、現在の Android API を使用して行うことはできません。

SpeechRecognizerの 2 つのインスタンスを同時に実行することを試みることができます(1 つはトルコ語EXTRA_LANGUAGEで、もう 1 つは英語で)。異なるサービスが同時にマイクを使用できないため、これはおそらく機能しません。

記録部分を自分で実装してから、結果のバイト配列を 2 つの異なる認識エンジンにプッシュすることができます。しかし、そのための API はありません。

于 2013-01-30T11:35:57.663 に答える
3

私はそれを次のように解決しました:

   language = "tr-TR";
    Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, language);
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, language);
    intent.putExtra(RecognizerIntent.EXTRA_SUPPORTED_LANGUAGES, language);
    intent.putExtra(RecognizerIntent.EXTRA_ONLY_RETURN_LANGUAGE_PREFERENCE, language);
    intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, language);
    intent.putExtra(RecognizerIntent.EXTRA_RESULTS, language);
    startActivityForResult(intent, REQUEST_CODE);
于 2016-06-21T11:56:19.090 に答える
0

英語など、音声認識エンジンの言語を 1 つ選択することをお勧めします。次に、他の言語を話すときに、音声認識エンジンが何を思い付くかを確認します。その英語の認識を解釈できるかもしれません。

たとえば、英語のレコグナイザーに対してスペイン語を話したい場合、ユーザーがスペイン語で「si」と言うと、レコグナイザーはそれを「see」と認識します。

于 2013-01-30T18:47:56.563 に答える