AVSpeechSynthesizer spricht nach der Verwendung von SFSpeechRecognizer nicht

8

Also habe ich eine einfache App erstellt, die Spracherkennung mit SFSpeechRecognizer durchführt und die konvertierte Sprache in einem UITextView auf dem Bildschirm anzeigt. Jetzt versuche ich, das Telefon zu sprechen, das angezeigten Text. Es funktioniert nicht aus irgendeinem Grund. AVSpeechSynthesizer speak funktioniert nur, bevor SFSpeechRecognizer verwendet wurde. Wenn zum Beispiel die App gestartet wird, wird in UITextView ein Begrüßungstext angezeigt. Wenn ich auf die Schaltfläche "Sprechen" tippe, spricht das Telefon den Begrüßungstext aus. Wenn ich dann (für die Spracherkennung) aufnehme, wird die erkannte Sprache in der UITextView angezeigt. Jetzt möchte ich, dass das Telefon diesen Text spricht, aber leider nicht.

Hier ist der Code

%Vor%     
Youssef Hammoud 26.10.2016, 19:33
quelle

5 Antworten

9

Das Problem ist, dass Sie beim Starten der Spracherkennung Ihre Audio-Session-Kategorie auf Record gesetzt haben. Mit einer Audiositzung von Record können Sie kein Audio (einschließlich Sprachsynthese) wiedergeben.

    
matt 26.10.2016, 20:24
quelle
9

Sie sollten diese Zeile der Methode startRecording ändern von:

%Vor%

zu:

%Vor%     
Luca Torella 07.11.2016 09:09
quelle
8

Bitte verwenden Sie den folgenden Code zur Behebung des Problems:

%Vor%

Hier, nachdem wir die audioengine beendet haben, legen wir die audioSession Kategorie auf AVAudioSessionCategoryPlayback und audioSession fest Modus zu AVAudioSessionModeDefault . Wenn Sie die nächste Text-zu-Sprache-Methode aufrufen, funktioniert das problemlos.

    
kiran kumar 29.03.2017 16:14
quelle
0

Wenn Sie STT verwenden, müssen Sie Folgendes einstellen:

%Vor%

Wenn Sie TTS verwenden, setzen Sie AudioSession erneut wie folgt ein:

%Vor%

Es funktioniert perfekt für mich. Auch das LOW AUDIO Problem ist gelöst.

    
Yadukrishnan A 08.01.2018 13:18
quelle
-1

versuche das:

%Vor%     
Thành Nguyễn 15.12.2016 09:37
quelle