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!

3
Snow 16 sierpień 2014, 06:30

2 odpowiedzi

Najlepsza odpowiedź

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

11
wordSmith 16 sierpień 2014, 02:35

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.");
1
AIon 5 grudzień 2017, 15:01