Mówiąc prosto, jest bardzo proste i zawiera minimalną ilość zaledwie (tylko dwie linie)
Ale nic nie słyszę. Ale Google TTS działa idealnie na moim laptopie.
Widzę tylko alarm "jeden", gdy uruchomię stronę poniżej.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head>
<body>
<script>
var utterance = new SpeechSynthesisUtterance('Hello baby');
window.speechSynthesis.speak(utterance);
alert("one two");
</script>
</body>
</html>
I używam Google Chrome Ver 36. Jak mogę wyświetlić błędy w moim javascript? Dziękuję o przepełnieniu do stosu!
2 odpowiedzi
Pomogłem umieścić syntezator mowy w Google Chrome. Cieszę się, że go używasz!
** Edycja: Przeprowadziłem kod w konsoli Chrome 36 i działa dobrze **
Powinieneś go używać jak:
if('speechSynthesis' in window){
var speech = new SpeechSynthesisUtterance('hello baby');
speech.lang = 'en-US';
window.speechSynthesis.speak(speech);
}
Możesz sprawdzić błędy w konsoli w Chrome, klikając prawym przyciskiem myszy na stronie i w menu kontekstowym kliknięcie ostatniej opcji (element inspekcji).
Więcej tutaj: https://developer.chromrome.com/devtools/docs/console
Powyższa odpowiedź działa ładnie, ale jeśli chcesz wybrać inny głos, użyj tego:
function saySomething(whatToSay){
const synth = window.speechSynthesis;
// enter your voice here, because voices list loads asynchronously.. check the console.log below.
getVoice("Google US English", synth)
.then(voice => {
var utterThis = new SpeechSynthesisUtterance(whatToSay);
utterThis.voice = voice;
synth.speak(utterThis);
})
.catch(error => console.log("error: ", error));
}
function getVoice(voiceName, synth){
return new Promise((resolve, reject) =>{
synth.onvoiceschanged = function(){
const voices = synth.getVoices();
console.log("see all available languages and voices on your system: ", voices);
for(let i = 0; i < voices.length ; i++) {
if(voices[i].name == voiceName) {
resolve(voices[i]);
}
}
}
synth.getVoices();
});
}
saySomething("Mu ha ha! Works now.");