1

Android で Google TTS を使用してオフライン音声認識が可能かどうかに興味があり、それを機能させようとしましたが、成功しませんでした。私は、ユーザーが電話に「魔法の言葉」を話すことを要求する Android アプリに取り組んでおり、電話は正しい言葉を聞くと応答します。ネットワークに接続しているときは音声認識は問題なく機能しますが、オフラインで機能させる必要があります。

Android のドキュメントを調べていたところ、[KEY_FEATURE_EMBEDDED_SYNTHESIS][1] getFeatures(Locale) を使用して機能を取得し、エンジンがサポートする機能を確認するように記載されているドキュメントに出会いました。Google Text-to-Speech Engine の embeddedTts と networkTts の 2 つの機能が返されたため、embeddedTts 機能が利用可能です。以下のコードの 3 行目で、Android のドキュメントに従ってこの機能を有効にしましたが、効果がないようです。また、networkTts 機能を false に設定しようとしましたが、動作も変わりませんでした。データ ネットワークに接続していないときは常に、「現在 Google に接続できません」というエラーが表示されます。

ここの誰かが embeddedTts の使い方を理解するのを手伝ってくれることを願っています。

Android 4.1.1 を実行している Samsung Galaxy S3 でアプリをテストしています

ありがとうございました。

関連するコードは次のとおりです。

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        HashMap<String, String> localSpeech = new HashMap<String, String>();
        localSpeech.put(TextToSpeech.Engine.KEY_FEATURE_EMBEDDED_SYNTHESIS, "true");
          if (requestCode == VOICE_RECOGNITION_REQUEST_CODE && resultCode == RESULT_OK) {
        // Fill the list view with the strings the recognizer thought it could have heard
        ArrayList<String> matches = data.getStringArrayListExtra(
                RecognizerIntent.EXTRA_RESULTS);
        if (matches.size() == 0)
        {
            tts.speak("Heard nothing", TextToSpeech.QUEUE_FLUSH, null);

        } else {
            String mostLikelyThingHeard = matches.get(0); 
            String magicWord = "Magic";
            if (mostLikelyThingHeard.equals(magicWord)) {
                //tts.speak("You got it!", TextToSpeech.QUEUE_FLUSH, null);
                tts.speak("You got it!", TextToSpeech.QUEUE_FLUSH, localSpeech);
            } else {
                tts.speak("The magic word is not " + mostLikelyThingHeard + " try again", TextToSpeech.QUEUE_FLUSH, localSpeech);
            }
        }

    }
    else {
        Log.d("APP", "result NOT ok");
    }

    super.onActivityResult(requestCode, resultCode, data);
}
4

1 に答える 1

1

音声認識 (「音声認識」および「音声テキスト変換」とも呼ばれます) と音声合成 (「TTS」および「テキスト読み上げ」とも呼ばれます) を混同しています。あなたの質問に答えるために、音声合成 API を使用して音声認識を実装することはできません。

于 2013-02-15T08:17:40.427 に答える