chrome.tts

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 Sie event.charIndex, um die aktuelle Sprachposition zu bestimmen.
  • 'sentence': Eine Satzgrenze wurde erreicht. Verwenden Sie event.charIndex, um die aktuelle Sprachposition zu bestimmen.
  • 'marker': Eine SSML-Markierung wurde erreicht. Verwenden Sie event.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 von speak() oder stop() unterbrochen und nicht abgeschlossen.
  • 'cancelled': Diese Äußerung wurde in die Warteschlange gestellt, dann aber durch einen anderen Aufruf von speak() oder stop() abgebrochen und nie gesprochen.
  • 'error': Es ist ein Engine-spezifischer Fehler aufgetreten und diese Äußerung kann nicht gesprochen werden. Weitere Informationen findest du unter event.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

Chrome 54 oder höher

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. charIndex steht für einen Punkt im Text am Anfang des nächsten zu sprechenden Wortes.

  • errorMessage

    String optional

    Die Fehlerbeschreibung, wenn der Ereignistyp error ist.

  • Länge

    number optional

    Chrome 74 oder höher

    Die 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 start sein, 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, oder error, wenn ein anderer Fehler auftritt. Wenn die Sprachausgabe pausiert wird, wird ein pause-Ereignis ausgelöst, wenn eine bestimmte Äußerung in der Mitte pausiert wird, und ein resume-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

Chrome 77 oder höher

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 onEvent sieht 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

Chrome 54 und höher Seit Chrome 70 veraltet

„Gender“ wurde eingestellt und wird ignoriert.

Enum

"male"

"female"

Methoden

getVoices()

Promise
chrome.tts.getVoices(
  callback?: function,
)
: Promise<TtsVoice[]>

Ruft ein Array aller verfügbaren Stimmen ab.

Parameter

  • callback

    function optional

    Der Parameter callback sieht so aus:

    (voices: TtsVoice[]) => void

    • Stimmen

      Array von tts.TtsVoice-Objekten, die die verfügbaren Stimmen für die Sprachsynthese darstellen.

Ausgabe

  • Promise<TtsVoice[]>

    Chrome 101 oder höher

    Promises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.

isSpeaking()

Promise
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 callback sieht so aus:

    (speaking: boolean) => void

    • sprechen

      boolean

      „True“, wenn gesprochen wird, andernfalls „false“.

Ausgabe

  • Promise<boolean>

    Chrome 101 oder höher

    Promises 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()

Promise
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 callback sieht so aus:

    () => void

Ausgabe

  • Promise<void>

    Chrome 101 oder höher

    Wird 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 124 oder höher
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 callback sieht so aus:

    () => void