en un botón, haga clic en Quiero decir blue sky en idioma en-US .
este código da como resultado un error en la línea utterThis.voice
por favor ayuda
var synth = window.speechSynthesis; $('button').on('click', function(){ var utterThis = new SpeechSynthesisUtterance('blue sky'); utterThis.rate = 1; utterThis.pitch = 1; utterThis.voice = {voiceURI: 'Google US English', name: 'Google US English', lang: 'en-US', localService: false, default: false}; synth.speak(utterThis); }); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <button>CLICK</button>Debe usar una de las voces devueltas por .getVoices : asignar un objeto simple a .voice no funcionará.
$('button').on('click', function() { var utterThis = new SpeechSynthesisUtterance('blue sky'); utterThis.rate = 1; utterThis.pitch = 1; for (const v of speechSynthesis.getVoices()) { if (v.voiceURI === 'Google US English') { utterThis.voice = v; } } speechSynthesis.speak(utterThis); }); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <button>CLICK</button> Las voces devueltas por .getVoices son verificadas por el navegador / sistema operativo para que sean compatibles, y están claramente vinculadas a un servicio subyacente que traduce el texto en voz; un objeto simple, por otro lado, no lo hace, por lo que un simple el objeto no funciona.