refresh date: 2026-09-25 robots: noindex
Beschreibung
Verwenden Sie die chrome.tts API, um synthetisierte Text-zu-Sprache (TTS) wiederzugeben. Siehe auch die zugehörige ttsEngine API, mit der eine Erweiterung eine Sprach-Engine implementieren kann.
Berechtigungen
ttsÜbersicht
Chrome bietet native Unterstützung für die Sprachausgabe unter Windows (mit SAPI 5), Mac OS X und ChromeOS. Dabei werden die vom Betriebssystem bereitgestellten Funktionen zur Sprachsynthese verwendet. Auf allen Plattformen können Nutzer Erweiterungen installieren, die sich als alternative Sprach-Engines registrieren.
Sprache wird generiert
Rufe speak() von deiner Nebenstelle aus an, um zu sprechen. Beispiel:
chrome.tts.speak('Hello, world.');
Wenn Sie die Sprachausgabe sofort beenden möchten, rufen Sie einfach stop() auf:
chrome.tts.stop();
Sie können Optionen angeben, mit denen verschiedene Eigenschaften der Sprache gesteuert werden, z. B. Geschwindigkeit, Tonhöhe und mehr. Beispiel:
chrome.tts.speak('Hello, world.', {'rate': 2.0});
Es empfiehlt sich außerdem, die Sprache anzugeben, damit ein Synthesizer ausgewählt wird, der diese Sprache (und gegebenenfalls den regionalen Dialekt) unterstützt.
chrome.tts.speak('Hello, world.', {'lang': 'en-US', 'rate': 2.0});
Standardmäßig wird bei jedem Aufruf von speak() die laufende Sprachausgabe unterbrochen und sofort gesprochen. Mit isSpeaking() können Sie feststellen, ob ein Aufruf etwas unterbrechen würde. Außerdem können Sie mit der Option enqueue dafür sorgen, dass diese Äußerung einer Warteschlange von Äußerungen hinzugefügt wird, die gesprochen werden, wenn die aktuelle Äußerung beendet ist.
chrome.tts.speak('Speak this first.');
chrome.tts.speak(
'Speak this next, when the first sentence is done.', {'enqueue': true});
Eine vollständige Beschreibung aller Optionen finden Sie unten im tts.speak. Nicht alle Sprach-Engines unterstützen alle Optionen.
Wenn Sie Fehler abfangen und sicherstellen möchten, dass Sie speak() richtig aufrufen, übergeben Sie eine Callback-Funktion, die keine Argumente akzeptiert. Prüfen Sie im Callback runtime.lastError, ob Fehler aufgetreten sind.
chrome.tts.speak(
utterance,
options,
function() {
if (chrome.runtime.lastError) {
console.log('Error: ' + chrome.runtime.lastError.message);
}
}
);
Der Callback wird sofort zurückgegeben, bevor die Engine mit der Sprachgenerierung begonnen hat. Der Zweck des Callbacks besteht darin, Sie auf Syntaxfehler bei der Verwendung der TTS API aufmerksam zu machen, und nicht darin, alle möglichen Fehler zu erfassen, die bei der Synthese und Ausgabe von Sprache auftreten können. Wenn Sie auch diese Fehler abfangen möchten, müssen Sie einen Event-Listener verwenden, wie unten beschrieben.
Auf Ereignisse warten
Wenn Sie mehr Echtzeitinformationen zum Status der synthetisierten Sprache erhalten möchten, übergeben Sie einen Event-Listener in den Optionen an speak(), z. B. so:
chrome.tts.speak(
utterance,
{
onEvent: function(event) {
console.log('Event ' + event.type + ' at position ' + event.charIndex);
if (event.type == 'error') {
console.log('Error: ' + event.errorMessage);
}
}
},
callback
);
Jedes Ereignis enthält einen Ereignistyp, den Zeichenindex der aktuellen Sprache relativ zur Äußerung und bei Fehlerereignissen eine optionale Fehlermeldung. Die Ereignistypen sind:
'start': Die Engine hat mit der Sprachausgabe begonnen.'word': Eine Wortgrenze wurde erreicht. Verwenden Sieevent.charIndex, um die aktuelle Sprachposition zu bestimmen.'sentence': Eine Satzgrenze wurde erreicht. Verwenden Sieevent.charIndex, um die aktuelle Sprachposition zu bestimmen.'marker': Eine SSML-Markierung wurde erreicht. Verwenden Sieevent.charIndex, um die aktuelle Sprachposition zu bestimmen.'end': Die Engine hat die Äußerung fertig gesprochen.'interrupted': Diese Äußerung wurde durch einen anderen Aufruf vonspeak()oderstop()unterbrochen und nicht abgeschlossen.'cancelled': Diese Äußerung wurde in die Warteschlange gestellt, dann aber durch einen anderen Aufruf vonspeak()oderstop()abgebrochen und nie gesprochen.'error': Es ist ein Engine-spezifischer Fehler aufgetreten und diese Äußerung kann nicht gesprochen werden. Weitere Informationen findest du unterevent.errorMessage.
Vier der Ereignistypen – 'end', 'interrupted', 'cancelled' und 'error' – sind endgültig. Nachdem eines dieser Ereignisse empfangen wurde, wird diese Äußerung nicht mehr gesprochen und es werden keine neuen Ereignisse von dieser Äußerung empfangen.
Einige Stimmen unterstützen möglicherweise nicht alle Ereignistypen und einige Stimmen senden möglicherweise überhaupt keine Ereignisse. Wenn Sie eine Stimme nur verwenden möchten, wenn sie bestimmte Ereignisse sendet, übergeben Sie die erforderlichen Ereignisse im requiredEventTypes-Mitglied des Optionsobjekts oder verwenden Sie getVoices(), um eine Stimme auszuwählen, die Ihren Anforderungen entspricht. Beide sind unten dokumentiert.
SSML-Markup
In dieser API verwendete Äußerungen können Markup mit der Speech Synthesis Markup Language (SSML) enthalten. Wenn Sie SSML verwenden, sollte das erste Argument für speak() ein vollständiges SSML-Dokument mit einem XML-Header und einem <speak>-Tag auf oberster Ebene sein, kein Dokumentfragment.
Beispiel:
chrome.tts.speak(
'<?xml version="1.0"?>' +
'<speak>' +
' The <emphasis>second</emphasis> ' +
' word of this sentence was emphasized.' +
'</speak>'
);
Nicht alle Sprach-Engines unterstützen alle SSML-Tags und einige unterstützen SSML möglicherweise überhaupt nicht. Alle Engines müssen jedoch alle nicht unterstützten SSML-Tags ignorieren und den zugrunde liegenden Text trotzdem wiedergeben.
Stimme auswählen
In Chrome wird standardmäßig die am besten geeignete Stimme für jede Äußerung ausgewählt, die Sie sprechen möchten, basierend auf der Sprache. Auf den meisten Windows-, Mac OS X- und ChromeOS-Systemen sollte die vom Betriebssystem bereitgestellte Sprachsynthese in der Lage sein, jeden Text in mindestens einer Sprache auszugeben. Einigen Nutzern stehen jedoch möglicherweise verschiedene Stimmen zur Verfügung, die von ihrem Betriebssystem und von Sprachengines stammen, die von anderen Chrome-Erweiterungen implementiert wurden. In diesen Fällen können Sie benutzerdefinierten Code implementieren, um die entsprechende Stimme auszuwählen oder dem Nutzer eine Liste mit Auswahlmöglichkeiten zu präsentieren.
Wenn Sie eine Liste aller Stimmen abrufen möchten, rufen Sie getVoices() auf und übergeben Sie eine Funktion, die ein Array von TtsVoice-Objekten als Argument erhält:
chrome.tts.getVoices(
function(voices) {
for (var i = 0; i < voices.length; i++) {
console.log('Voice ' + i + ':');
console.log(' name: ' + voices[i].voiceName);
console.log(' lang: ' + voices[i].lang);
console.log(' extension id: ' + voices[i].extensionId);
console.log(' event types: ' + voices[i].eventTypes);
}
}
);
Typen
EventType
Enum
"start"
"end"
"word"
"sentence"
"marker"
"interrupted"
"cancelled"
"error"
„Pause“
"resume"
TtsEvent
Ein Ereignis der TTS-Engine, das den Status einer Äußerung mitteilt.
Attribute
-
charIndex
number optional
Der Index des aktuellen Zeichens in der Äußerung. Bei Wort-Ereignissen wird das Ereignis am Ende eines Wortes und vor dem Beginn des nächsten ausgelöst.
charIndexsteht für einen Punkt im Text am Anfang des nächsten zu sprechenden Wortes. -
errorMessage
String optional
Die Fehlerbeschreibung, wenn der Ereignistyp
errorist. -
Länge
number optional
Chrome 74 oder höherDie Länge des nächsten Teils der Äußerung. Bei einem
word-Ereignis ist dies beispielsweise die Länge des Wortes, das als Nächstes gesprochen wird. Wenn der Wert nicht von der Sprach-Engine festgelegt wird, wird er auf -1 gesetzt. -
Typ
Der Typ kann
startsein, sobald die Sprache begonnen hat,word, wenn eine Wortgrenze erreicht ist,sentence, wenn eine Satzgrenze erreicht ist,marker, wenn ein SSML-Markierungselement erreicht ist,end, wenn das Ende der Äußerung erreicht ist,interrupted, wenn die Äußerung vor dem Ende gestoppt oder unterbrochen wird,cancelled, wenn sie aus der Warteschlange entfernt wird, bevor sie synthetisiert wird, odererror, wenn ein anderer Fehler auftritt. Wenn die Sprachausgabe pausiert wird, wird einpause-Ereignis ausgelöst, wenn eine bestimmte Äußerung in der Mitte pausiert wird, und einresume-Ereignis, wenn die Sprachausgabe fortgesetzt wird. Beachten Sie, dass Pausen- und Fortsetzungsereignisse möglicherweise nicht ausgelöst werden, wenn die Sprache zwischen Äußerungen pausiert wird.
TtsOptions
Die Sprachoptionen für die TTS-Engine.
Attribute
-
desiredEventTypes
string[] optional
Die TTS-Ereignistypen, die Sie erfassen möchten. Wenn er fehlt, werden möglicherweise alle Ereignistypen gesendet.
-
enqueue
Boolesch optional
Wenn „true“, wird diese Äußerung in die Warteschlange gestellt, wenn die Sprachausgabe bereits läuft. Wenn „false“ (Standardeinstellung), wird die aktuelle Sprachausgabe unterbrochen und die Sprachwarteschlange geleert, bevor die neue Äußerung gesprochen wird.
-
extensionId
String optional
Die Erweiterungs-ID der zu verwendenden Sprach-Engine, falls bekannt.
-
gender
VoiceGender optional
Seit Chrome 77 verworfen„Gender“ wurde eingestellt und wird ignoriert.
Geschlecht der Stimme für synthetisierte Sprache.
-
lang
String optional
Die für die Synthese zu verwendende Sprache im Format Sprache-Region. Beispiele: „en“, „en-US“, „en-GB“, „zh-CN“.
-
Wurf
number optional
Tonhöhe zwischen 0 und 2 (einschließlich), wobei 0 die niedrigste und 2 die höchste ist. 1.0 entspricht der Standardtonhöhe einer Stimme.
-
Geschwindigkeit
number optional
Sprechgeschwindigkeit im Verhältnis zur Standardgeschwindigkeit für diese Stimme. 1,0 ist die Standardrate, die normalerweise etwa 180 bis 220 Wörter pro Minute beträgt. 2,0 bedeutet doppelt so schnell, 0,5 halb so schnell. Werte unter 0,1 oder über 10,0 sind nicht zulässig. Bei vielen Stimmen sind die Mindest- und Höchstwerte jedoch weiter eingeschränkt. Eine bestimmte Stimme spricht beispielsweise möglicherweise nicht schneller als das Dreifache der normalen Geschwindigkeit, selbst wenn Sie einen Wert über 3,0 angeben.
-
requiredEventTypes
string[] optional
Die TTS-Ereignistypen, die die Stimme unterstützen muss.
-
voiceName
String optional
Der Name der Stimme, die für die Synthese verwendet werden soll. Wenn leer, wird eine beliebige verfügbare Stimme verwendet.
-
Volume
number optional
Sprechlautstärke zwischen 0 und 1 (einschließlich), wobei 0 die niedrigste und 1 die höchste Lautstärke ist.Der Standardwert ist 1, 0.
-
onEvent
void optional
Diese Funktion wird mit Ereignissen aufgerufen, die während des Sprechens der Äußerung auftreten.
Die Funktion
onEventsieht so aus:(event: TtsEvent) => {...}
-
event
Das Aktualisierungsereignis der Text-zu-Sprache-Engine, das den Status dieser Äußerung angibt.
-
TtsVoice
Eine Beschreibung einer Stimme, die für die Sprachsynthese verfügbar ist.
Attribute
-
eventTypes
EventType[] optional
Alle Callback-Ereignistypen, die diese Stimme senden kann.
-
extensionId
String optional
Die ID der Erweiterung, die diese Stimme bereitstellt.
-
gender
VoiceGender optional
Seit Chrome 70 eingestellt„Gender“ wurde eingestellt und wird ignoriert.
Das Geschlecht dieser Stimme.
-
lang
String optional
Die Sprache, die diese Stimme unterstützt, im Format Sprache-Region. Beispiele: „en“, „en-US“, „en-GB“, „zh-CN“.
-
Remote
Boolesch optional
Wenn „true“, ist die Synthese-Engine eine Remote-Netzwerkressource. Dies kann zu einer höheren Latenz und zu Bandbreitenkosten führen.
-
voiceName
String optional
Die Bezeichnung der Stimme.
VoiceGender
„Gender“ wurde eingestellt und wird ignoriert.
Enum
"male"
"female"
Methoden
getVoices()
chrome.tts.getVoices(
callback?: function,
): Promise<TtsVoice[]>
Ruft ein Array aller verfügbaren Stimmen ab.
Parameter
-
callback
function optional
Der Parameter
callbacksieht so aus:(voices: TtsVoice[]) => void
-
Stimmen
TtsVoice[]
Array von
tts.TtsVoice-Objekten, die die verfügbaren Stimmen für die Sprachsynthese darstellen.
-
Ausgabe
-
Promise<TtsVoice[]>
Chrome 101 oder höherPromises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
isSpeaking()
chrome.tts.isSpeaking(
callback?: function,
): Promise<boolean>
Prüft, ob die Engine gerade spricht. Unter Mac OS X ist das Ergebnis immer „true“, wenn die Sprachausgabe des Systems aktiv ist, auch wenn die Sprachausgabe nicht von Chrome initiiert wurde.
Parameter
-
callback
function optional
Der Parameter
callbacksieht so aus:(speaking: boolean) => void
-
sprechen
boolean
„True“, wenn gesprochen wird, andernfalls „false“.
-
Ausgabe
-
Promise<boolean>
Chrome 101 oder höherPromises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
pause()
chrome.tts.pause(): void
Pausiert die Sprachsynthese, möglicherweise mitten in einer Äußerung. Ein Aufruf zum Fortsetzen oder Beenden hebt die Pause der Sprachausgabe auf.
resume()
chrome.tts.resume(): void
Wenn die Sprachausgabe pausiert wurde, wird sie an der Stelle fortgesetzt, an der sie unterbrochen wurde.
speak()
chrome.tts.speak(
utterance: string,
options?: TtsOptions,
callback?: function,
): Promise<void>
Liest Text mithilfe einer Text-zu-Sprache-Engine vor.
Parameter
-
Äußerung
String
Der zu sprechende Text, entweder Nur-Text oder ein vollständiges, korrekt formatiertes SSML-Dokument. Sprach-Engines, die SSML nicht unterstützen, entfernen die Tags und sprechen den Text. Der Text darf maximal 32.768 Zeichen lang sein.
-
Optionen
TtsOptions optional
Die Sprachoptionen.
-
callback
function optional
Der Parameter
callbacksieht so aus:() => void
Ausgabe
-
Promise<void>
Chrome 101 oder höherWird sofort aufgelöst, bevor die Sprachausgabe beendet ist. Wenn ein Fehler auftritt, wird das Promise abgelehnt. Verwenden Sie „options.onEvent“, um detaillierteres Feedback zu erhalten.
Promises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
stop()
chrome.tts.stop(): void
Beendet die aktuelle Sprachausgabe und löscht die Warteschlange aller ausstehenden Äußerungen. Wenn die Sprachausgabe pausiert wurde, wird sie außerdem für den nächsten Aufruf von „speak“ fortgesetzt.
Ereignisse
onVoicesChanged
chrome.tts.onVoicesChanged.addListener(
callback: function,
)
Wird aufgerufen, wenn sich die Liste der tts.TtsVoice geändert hat, die von „getVoices“ zurückgegeben werden.
Parameter
-
callback
Funktion
Der Parameter
callbacksieht so aus:() => void