Start · Sprachen · JavaScript · Referenz · SpeechSynthesisUtterance.pitch

SpeechSynthesisUtterance.pitch

Eigenschaft

Liest oder setzt die Tonhöhe, mit der eine <code>SpeechSynthesisUtterance</code> gesprochen wird – als Zahl zwischen <code>0</code> (tiefste) und <code>2</code> (höchste), Standard <code>1</code>.

seit JavaScript Web Speech API – Baseline: alle modernen Browser ( Kategorie: webapi

Signatur

SpeechSynthesisUtterance.pitch

Beschreibung

Mit der Eigenschaft pitch einer SpeechSynthesisUtterance steuerst du die Tonhöhe der synthetisierten Stimme. Der Wert ist eine Gleitkommazahl im Bereich 0 bis 2. 1 entspricht der normalen Tonhöhe der gewählten Stimme, kleinere Werte klingen tiefer, größere höher.

Sinnvoll ist pitch zum Beispiel, wenn du in Vorlese-Funktionen verschiedene Sprecher oder Rollen unterscheiden willst (etwa Dialoge in Lern-Apps oder Spielen), wenn du Hinweise stärker betonen möchtest oder wenn Nutzer die Stimme in einer Barrierefreiheits-Einstellung selbst anpassen sollen.

Wichtig: Der Wert muss vor dem Aufruf von speechSynthesis.speak() gesetzt werden. Änderungen an einer Äußerung, die bereits gesprochen wird, wirken sich in der Regel nicht mehr aus. Wie stark sich die Tonhöhe tatsächlich ändert, hängt von der Sprach-Engine und der Stimme (voice) ab – manche Stimmen, vor allem Netzwerk-/Cloud-Stimmen, ignorieren pitch teilweise oder vollständig.

Parameter

Name Typ Default Beschreibung
$value number 1 Neue Tonhöhe beim Setzen, von 0 (tiefste) bis 2 (höchste). Werte außerhalb des Bereichs werden ignoriert bzw. vom Browser begrenzt.

Rückgabewert

Typ
number
Beschreibung
Die aktuell eingestellte Tonhöhe als Gleitkommazahl zwischen 0 und 2; 1, falls nie gesetzt.

Beispiele

Text mit höherer Stimme vorlesen

const utterance = new SpeechSynthesisUtterance('Willkommen bei programmierung.net!');
utterance.lang = 'de-DE';
utterance.pitch = 1.5; // etwas höher als normal

console.log(utterance.pitch);
speechSynthesis.speak(utterance);
1.5

Dialog mit zwei unterschiedlichen Sprechern

const speak = (text, pitch) => {
  const u = new SpeechSynthesisUtterance(text);
  u.lang = 'de-DE';
  u.pitch = pitch;
  speechSynthesis.speak(u); // Äußerungen werden in die Warteschlange gestellt
};

speak('Hallo, wie geht es dir?', 0.6); // tiefe Stimme
speak('Danke, sehr gut!', 1.7);        // hohe Stimme

Tonhöhe per Schieberegler einstellen

// HTML: <input type="range" id="pitch" min="0" max="2" step="0.1" value="1">
//       <button id="play">Vorlesen</button>
const slider = document.querySelector('#pitch');
const button = document.querySelector('#play');

button.addEventListener('click', () => {
  speechSynthesis.cancel(); // laufende Ausgabe abbrechen
  const u = new SpeechSynthesisUtterance('Das ist ein Test der Tonhöhe.');
  u.pitch = Number(slider.value);
  u.addEventListener('start', () => console.log(`Spreche mit pitch = ${u.pitch}`));
  speechSynthesis.speak(u);
});
Spreche mit pitch = 1.3

Standardwert prüfen

const u = new SpeechSynthesisUtterance('Test');
console.log(u.pitch);
1

// Wichtig · Fallstricke

  • Vor speak() setzen: Nachträgliche Änderungen an einer bereits laufenden Äußerung haben meist keine Wirkung. Für eine neue Tonhöhe speechSynthesis.cancel() aufrufen und eine neue Äußerung erzeugen.
  • Wertebereich: Nur 0 bis 2 ist gültig. Außerhalb liegende Werte werden je nach Browser ignoriert oder begrenzt – Eingaben besser selbst mit Math.min(2, Math.max(0, wert)) absichern. Bei 0 fallen manche Engines auf den Standardwert zurück.
  • Stimmenabhängig: Die tatsächliche Wirkung hängt von der Sprach-Engine ab. In Chrome ignorieren z. B. die „Google“-Netzwerkstimmen pitch teils; lokale Systemstimmen reagieren meist zuverlässiger.
  • Kompatibilität: Die Web Speech API (Synthese) wird von allen aktuellen Browsern unterstützt, ist aber nicht in Node.js verfügbar. Vorher mit 'speechSynthesis' in window prüfen.
  • Autoplay-Richtlinien: Manche Browser spielen Sprachausgabe erst nach einer Nutzerinteraktion (Klick) ab.