11
speech.voice = voices[selectedVoice.value];
selectedVoice.value entspricht in diesem Fall dem Wert 0:
<option value="0">Google Deutsch</option>
ensprechend musst du selectedVoice.value ersetzen:
speech.voice = voices[0];
speech.voice = voices[selectedVoice.value];
<option value="0">Google Deutsch</option>
speech.voice = voices[0];
    let tts = document.getElementById("textToSpeech");
das div, in dem sich der vorzulegende Text befindet, ist mit der korrekten ID angegeben.    let tts = document.getElementById("textToSpeech");
folgendermaßen abzuändern:    let tts = document.getElementById("textToSpeech").innerText;
aber das funktioniert auch nicht. Siehe hier:    let selectedVoice = document.getElementById("voiceSelect");
die Stimme ist schließlich schon festgelegt.    let tts = document.getElementById("textToSpeech");
    speech.text = tts.value;
    let tts = document.getElementById("text");
    speech.text = tts.innerText;
var setVoices = function () {
    let voices = speechSynthesis.getVoices();
    let voicesSelect = document.getElementById("voiceSelect");
    for (let index in voices) {
        let option = document.createElement("OPTION");
        option.value = index;
        option.innerHTML = voices[index].name;
        voicesSelect.appendChild(option);
    }
};
var play = function () {
    var self = this;
    this.disabled = true;
    let voices = speechSynthesis.getVoices();
    let speech = new SpeechSynthesisUtterance();
    let selectedVoice = document.getElementById("voiceSelect");
    let tts = document.getElementById("lesen");
    speech.text = tts.innerText;
    speech.voice = voices[0];
    speechSynthesis.speak(speech);
    speech.onend = function () {
        self.disabled = false;
    };
};
var init = function () {
    if (window.speechSynthesis) {
        if ("onvoiceschanged" in speechSynthesis) {
            speechSynthesis.onvoiceschanged = setVoices;
        } else {
            setVoices();
        }
    }
so schaut das ganze dann aus:var init = function () {
    if (window.speechSynthesis) {
    }
    if (window.speechSynthesis) {
    }
Aber es funktioniert eben leider nicht.
speech.lang = 'de-DE'
    let voices = speechSynthesis.getVoices();
Allerdings sollte man auf jeden Fall die Umlaute vorher umwandeln, da die Speech Synthesis API mit den Sonderzeichen ä,ö,ü und ß noch erste Probleme hat und man den Browser neu starten muss, bevor er wieder spricht.
speech.text = replaceUmlaute(tts.innerText);
| Thema | Autor | Forum | Beiträge | Letzter Beitrag | 
|---|---|---|---|---|
| Text mit Strong kennzeichnen oder mit Kursiv | krieger98 | HTML und CSS | 4 | 06.01.2019 21:51 | 
| Text um Bilder fliessen assen | PKV-Wiki | HTML und CSS | 4 | 18.01.2018 14:06 | 
| Textänderung je nach Land | ShadowLupina | HTML und CSS | 2 | 21.01.2014 16:27 | 
| WYSIWYG Nur-Text HTML-Editor | Rudy | HTML und CSS | 5 | 28.05.2008 13:35 | 
| Blindtext generieren, Lorem Ipsum und Co. | Rudy | Sonstiges | 5 | 02.05.2008 23:44 | 
| Google straft deutsche Linkverkäufer ab | Jörg Kruse | SEO | 27 | 05.12.2007 18:48 | 
| Angeblicher Linkeintrag nicht auf der HP oder im Quelltext? | beli | SEO | 8 | 13.08.2007 21:14 |