refresh date: 2026-09-25 robots: noindex
Beschreibung
Mit der chrome.ttsEngine API können Sie eine Text-zu-Sprache-Engine(TTS) mithilfe einer Erweiterung implementieren. Wenn sich Ihre Erweiterung mit dieser API registriert, erhält sie Ereignisse mit einer zu sprechenden Äußerung und anderen Parametern, wenn eine Erweiterung oder Chrome-App die tts API zum Generieren von Sprache verwendet. Ihre Erweiterung kann dann jede verfügbare Webtechnologie verwenden, um die Sprache zu synthetisieren und auszugeben, und Ereignisse an die aufrufende Funktion zurücksenden, um den Status zu melden.
Berechtigungen
ttsEngineÜbersicht
Eine Erweiterung kann sich selbst als Sprach-Engine registrieren. Dadurch können einige oder alle Aufrufe von Funktionen wie tts.speak und tts.stop abgefangen und eine alternative Implementierung bereitgestellt werden.
Erweiterungen können jede verfügbare Webtechnologie verwenden, um Sprache bereitzustellen, einschließlich Streaming-Audio von einem Server und HTML5-Audio. Eine Erweiterung könnte sogar etwas anderes mit den Äußerungen tun, z. B. Untertitel in einem Pop-up-Fenster anzeigen oder sie als Logeinträge an einen Remote-Server senden.
Manifest
Um eine TTS-Engine zu implementieren, muss eine Erweiterung die Berechtigung „ttsEngine“ deklarieren und dann alle von ihr bereitgestellten Stimmen im Erweiterungsmanifest deklarieren, etwa so:
{
"name": "My TTS Engine",
"version": "1.0",
"permissions": ["ttsEngine"],
"tts_engine": {
"voices": [
{
"voice_name": "Alice",
"lang": "en-US",
"event_types": ["start", "marker", "end"]
},
{
"voice_name": "Pat",
"lang": "en-US",
"event_types": ["end"]
}
]
},
"background": {
"page": "background.html",
"persistent": false
}
}
Eine Erweiterung kann eine beliebige Anzahl von Stimmen angeben.
Der Parameter voice_name ist erforderlich. Der Name sollte so aussagekräftig sein, dass er den Namen der Stimme und die verwendete Engine identifiziert. In dem unwahrscheinlichen Fall, dass zwei Erweiterungen Stimmen mit demselben Namen registrieren, kann ein Client die ID der Erweiterung angeben, die die Synthese durchführen soll.
Der Parameter lang ist optional, wird aber dringend empfohlen. Fast immer kann eine Stimme Sprache nur in einer einzigen Sprache synthetisieren. Wenn eine Engine mehr als eine Sprache unterstützt, kann sie problemlos eine separate Stimme für jede Sprache registrieren. In seltenen Fällen, in denen eine einzelne Stimme mehr als eine Sprache verarbeiten kann, ist es am einfachsten, zwei separate Stimmen aufzulisten und sie intern mit derselben Logik zu verarbeiten. Wenn Sie jedoch eine Stimme erstellen möchten, die Äußerungen in einer beliebigen Sprache verarbeiten kann, lassen Sie den Parameter lang im Manifest Ihrer Erweiterung weg.
Schließlich ist der Parameter event_types erforderlich, wenn die Engine Ereignisse senden kann, um den Client über den Fortschritt der Sprachsynthese zu informieren. Es wird dringend empfohlen, mindestens den Ereignistyp 'end' zu unterstützen, um anzugeben, wann die Sprache beendet ist. Andernfalls kann Chrome keine in der Warteschlange befindlichen Äußerungen planen.
Nach dem Laden kann eine Erweiterung die Liste der deklarierten Stimmen durch Aufrufen von chrome.ttsEngine.updateVoices ersetzen. (Beachten Sie, dass die im programmatischen Aufruf von updateVoices verwendeten Parameter in Camel-Case-Schreibweise angegeben sind, z.B. voiceName, im Gegensatz zur Manifestdatei, in der voice_name verwendet wird.)
Die möglichen Ereignistypen, die Sie senden können, entsprechen den Ereignistypen, die die Methode speak() empfängt:
'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.'error': Es ist ein Engine-spezifischer Fehler aufgetreten und diese Äußerung kann nicht gesprochen werden. Übergeben Sie weitere Informationen inevent.errorMessage.
Die Ereignisse 'interrupted' und 'cancelled' werden nicht von der Sprach-Engine gesendet, sondern automatisch von Chrome generiert.
Text-to-Speech-Clients können die Sprachinformationen aus dem Manifest Ihrer Erweiterung abrufen, indem sie tts.getVoices aufrufen, sofern Sie wie unten beschrieben Event-Listener für Sprache registriert haben.
Sprachereignisse verarbeiten
Damit Ihre Erweiterung auf Anfrage von Clients Sprache generieren kann, müssen Sie Listener für onSpeak und onStop registrieren, z. B. so:
const speakListener = (utterance, options, sendTtsEvent) => {
sendTtsEvent({type: 'start', charIndex: 0})
// (start speaking)
sendTtsEvent({type: 'end', charIndex: utterance.length})
};
const stopListener = () => {
// (stop all speech)
};
chrome.ttsEngine.onSpeak.addListener(speakListener);
chrome.ttsEngine.onStop.addListener(stopListener);
Die Entscheidung, ob eine bestimmte Sprachanfrage an eine Erweiterung gesendet wird, hängt ausschließlich davon ab, ob die Erweiterung die angegebenen Sprachparameter in ihrem Manifest unterstützt und Listener für onSpeak und onStop registriert hat. Mit anderen Worten: Es gibt keine Möglichkeit, dass eine Erweiterung eine Sprachanfrage empfängt und dynamisch entscheidet, ob sie verarbeitet werden soll.
Typen
AudioBuffer
Parameter, die einen Audio-Zwischenspeicher und zugehörige Daten enthalten.
Attribute
-
audioBuffer
ArrayBuffer
Der Audiopuffer des Text-to-Speech-Moduls. Sie sollte genau die Länge „audioStreamOptions.bufferSize“ haben und als Mono mit „audioStreamOptions.sampleRate“ und als lineares PCM, 32-Bit-Gleitkommazahl mit Vorzeichen, d.h. als Float32Array-Typ in JavaScript, codiert sein.
-
charIndex
number optional
Der Zeichenindex, der diesem Audiopuffer zugeordnet ist.
-
isLastBuffer
Boolesch optional
„True“, wenn dieser Audiopuffer der letzte für den gesprochenen Text ist.
AudioStreamOptions
Enthält das Audiostreamformat, das von einer Engine erzeugt werden soll.
Attribute
-
bufferSize
Zahl
Die Anzahl der Samples in einem Audio-Zwischenspeicher.
-
sampleRate
Zahl
Die in einem Audiopuffer erwartete Abtastrate.
LanguageInstallStatus
Der Installationsstatus einer Stimme.
Enum
"notInstalled"
"installing"
"installed"
"failed"
LanguageStatus
Installationsstatus einer Sprache.
Attribute
-
Fehler
String optional
Details zu Installationsfehlern. Optional ausgefüllt, wenn die Sprache nicht installiert werden konnte.
-
installStatus
Installationsstatus.
-
lang
String
Sprachstring in der Form „Sprachcode-Regionscode“, wobei die Region weggelassen werden kann. Beispiele: en, en-AU, zh-CH.
LanguageUninstallOptions
Optionen zum Deinstallieren einer bestimmten Sprache.
Attribute
-
uninstallImmediately
boolean
„True“, wenn der TTS-Client die Sprache sofort deinstallieren möchte. Die Engine kann anhand dieses Parameters und der Informationen des Anfragenden entscheiden, ob oder wann die Sprache deinstalliert werden soll. Wenn „false“, werden möglicherweise andere Kriterien wie die letzte Nutzung verwendet, um zu bestimmen, wann die App deinstalliert werden soll.
SpeakOptions
Für die Methode „tts.speak()“ angegebene Optionen.
Attribute
-
gender
VoiceGender optional
Eingestellt seit Chrome 92„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 dieser 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. Dieser Wert liegt garantiert zwischen 0,1 und 10,0 (einschließlich). Wenn eine Stimme diesen gesamten Bereich von Geschwindigkeiten nicht unterstützt, geben Sie keinen Fehler zurück. Begrenzen Sie die Geschwindigkeit stattdessen auf den Bereich, den die Stimme unterstützt.
-
voiceName
String optional
Der Name der Stimme, die für die Synthese verwendet werden soll.
-
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.
TtsClient
Kennung für den Client, der den Status anfordert.
Attribute
-
id
String
Client, der eine Anfrage zur Sprachverwaltung stellt. Bei einer Erweiterung ist dies die eindeutige Erweiterungs-ID. Bei Chrome-Funktionen ist dies der menschenlesbare Name der Funktion.
-
Quelle
Art des Antragstellers.
TtsClientSource
Art des Antragstellers.
Enum
"chromefeature"
"extension"
VoiceGender
„Gender“ wurde eingestellt und wird ignoriert.
Enum
"male"
"female"
Methoden
updateLanguage()
chrome.ttsEngine.updateLanguage(
status: LanguageStatus,
): void
Wird von einer Engine aufgerufen, wenn versucht wird, eine Sprache zu installieren, und wenn eine Sprache deinstalliert wird. Wird auch als Antwort auf eine Statusanfrage von einem Client aufgerufen. Wenn eine Stimme installiert oder deinstalliert wird, sollte die Engine auch „ttsEngine.updateVoices“ aufrufen, um die Stimme zu registrieren.
Parameter
-
Status
Der Installationsstatus der Sprache.
updateVoices()
chrome.ttsEngine.updateVoices(
voices: TtsVoice[],
): void
Wird von einer Engine aufgerufen, um die Liste der Stimmen zu aktualisieren. Diese Liste überschreibt alle Stimmen, die im Manifest dieser Erweiterung deklariert sind.
Parameter
-
Stimmen
TtsVoice[]
Array von
tts.TtsVoice-Objekten, die die verfügbaren Stimmen für die Sprachsynthese darstellen.
Ereignisse
onInstallLanguageRequest
chrome.ttsEngine.onInstallLanguageRequest.addListener(
callback: function,
)
Wird ausgelöst, wenn ein TTS-Client die Installation einer neuen Sprache anfordert. Die Engine sollte versuchen, die Sprache herunterzuladen und zu installieren, und ttsEngine.updateLanguage mit dem Ergebnis aufrufen. Wenn der Vorgang erfolgreich war, sollte die Engine auch „ttsEngine.updateVoices“ aufrufen, um die neu verfügbaren Stimmen zu registrieren.
Parameter
-
callback
Funktion
Der Parameter
callbacksieht so aus:(requestor: TtsClient, lang: string) => void
-
Anfragender
-
lang
String
-
onLanguageStatusRequest
chrome.ttsEngine.onLanguageStatusRequest.addListener(
callback: function,
)
Wird ausgelöst, wenn ein TTS-Client den Installationsstatus einer Sprache anfordert.
Parameter
-
callback
Funktion
Der Parameter
callbacksieht so aus:(requestor: TtsClient, lang: string) => void
-
Anfragender
-
lang
String
-
onPause
chrome.ttsEngine.onPause.addListener(
callback: function,
)
Optional: Wenn eine Engine das Pausenereignis unterstützt, sollte sie die aktuelle Äußerung, falls vorhanden, pausieren, bis sie ein Fortsetzungs- oder Stoppereignis empfängt. Beachte, dass ein Stopp-Ereignis auch den Pausenstatus aufheben sollte.
Parameter
-
callback
Funktion
Der Parameter
callbacksieht so aus:() => void
onResume
chrome.ttsEngine.onResume.addListener(
callback: function,
)
Optional: Wenn eine Engine das Pausenereignis unterstützt, sollte sie auch das Fortsetzungsereignis unterstützen, um die aktuelle Äußerung fortzusetzen, falls vorhanden. Beachte, dass ein Stopp-Ereignis auch den Pausenstatus aufheben sollte.
Parameter
-
callback
Funktion
Der Parameter
callbacksieht so aus:() => void
onSpeak
chrome.ttsEngine.onSpeak.addListener(
callback: function,
)
Wird aufgerufen, wenn der Nutzer tts.speak() aufruft und eine der Stimmen aus dem Manifest dieser Erweiterung als erste mit dem Optionsobjekt übereinstimmt.
Parameter
-
callback
Funktion
Der Parameter
callbacksieht so aus:(utterance: string, options: SpeakOptions, sendTtsEvent: function) => void
-
Äußerung
String
-
Optionen
-
sendTtsEvent
Funktion
Der Parameter
sendTtsEventsieht so aus:(event: tts.TtsEvent) => void
-
event
Das Ereignis der Text-zu-Sprache-Engine, das den Status dieser Äußerung angibt.
-
-
onSpeakWithAudioStream
chrome.ttsEngine.onSpeakWithAudioStream.addListener(
callback: function,
)
Wird aufgerufen, wenn der Nutzer tts.speak() aufruft und eine der Stimmen aus dem Manifest dieser Erweiterung als erste mit dem Optionsobjekt übereinstimmt. Unterscheidet sich von ttsEngine.onSpeak dadurch, dass Chrome Audiowiedergabedienste bereitstellt und die Weiterleitung von TTS-Ereignissen übernimmt.
Parameter
-
callback
Funktion
Der Parameter
callbacksieht so aus:(utterance: string, options: SpeakOptions, audioStreamOptions: AudioStreamOptions, sendTtsAudio: function, sendError: function) => void
-
Äußerung
String
-
Optionen
-
audioStreamOptions
-
sendTtsAudio
Funktion
Der Parameter
sendTtsAudiosieht so aus:(audioBufferParams: AudioBuffer) => void
-
audioBufferParams
Parameter, die einen Audio-Zwischenspeicher und zugehörige Daten enthalten.
-
-
sendError
Funktion
Chrome 94 oder höherDer Parameter
sendErrorsieht so aus:(errorMessage?: string) => void
-
errorMessage
String optional
Ein String, der den Fehler beschreibt.
-
-
onStop
chrome.ttsEngine.onStop.addListener(
callback: function,
)
Wird ausgelöst, wenn „tts.stop“ aufgerufen wird und diese Erweiterung möglicherweise gerade spricht. Wenn eine Erweiterung einen Aufruf von „onStop“ erhält und die Sprachausgabe bereits beendet ist, sollte sie nichts tun (keinen Fehler auslösen). Wenn die Sprachausgabe pausiert ist, sollte der pausierte Status dadurch aufgehoben werden.
Parameter
-
callback
Funktion
Der Parameter
callbacksieht so aus:() => void
onUninstallLanguageRequest
chrome.ttsEngine.onUninstallLanguageRequest.addListener(
callback: function,
)
Wird ausgelöst, wenn ein TTS-Client angibt, dass eine Sprache nicht mehr benötigt wird.
Parameter
-
callback
Funktion
Der Parameter
callbacksieht so aus:(requestor: TtsClient, lang: string, uninstallOptions: LanguageUninstallOptions) => void
-
Anfragender
-
lang
String
-
uninstallOptions
-