Ich benutze das SpeechSynthesis-Modul von WebSpeech, um eine Webanwendung sprechen zu lassen. Es scheint jedoch, dass Sie nur Äußerungen zu einer Warteschlange hinzufügen und dann die gesamte Warteschlange anhalten(), fortsetzen() und abbrechen() können.WebSpeech Sprachsynthese: Pause von Äußerung1, Wiedergabe einer anderen Äußerung2 und Wiederaufnahme von Äußerung1 - möglich?
Ich habe eine Situation, wo ich zwei Äußerungen haben wollen:
utterance1 = new SpeechSynthesisUtterance(text1);
utterance2 = new SpeechSynthesisUtterance(text2);
Ich möchte utterance1 Spiel haben, pausieren es dann in der Mitte, haben utterance2 spielen, und dann wieder utterance1. Im Code würde es so aussehen:
speechSynthesis.speak(utterance1);
// ... after a while
speechSyntehsis.pause(utterance1);
speechSynthesis.speak(utterance2);
// ... after a long while
speechSynthesis.resume(utterance1);
Leider Sprachsynthese Methoden Pause(), resume() und Abbrechen() übernehmen keinerlei Argument und wirken auf die gesamte Sprachäußerung Warteschlange. Gibt es eine Möglichkeit, dieses Verhalten zu erreichen?
Wenn ich mehrere SpeechSynthesis-Objekte haben könnte, dann könnte ich für jede Äußerung eine erstellen, aber ich glaube, dass ich nur eine haben kann.
Wenn ich verfolgen könnte, wo in der Zeichenfolge die Äußerung "ausgesprochen wurde", dann könnte ich es abbrechen und dann eine neue Äußerung mit dem Rest des Textes erstellen, aber ich weiß nicht, ob das möglich ist .
Irgendwelche Vorschläge?
Vielen Dank für die extrem schnelle Antwort. Das Markenereignis ist genau das, was ich gesucht habe. Vielen Dank! – tborenst
@tborenst Wenn es kein Problem ist, wenn du erreichst was du brauchst, teile es hier wenn du es hast :) –