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 |