Ho utilizzato la nuova API Speech Synthesis in Chrome (33 e versioni successive) per creare un supporto di comunicazione basato sul web. Vorrei che l'utente fosse in grado di cambiare la voce tra maschio e femmina, che l'API mi consente di fare. Tuttavia, quando la pagina viene caricata per la prima volta e la prima volta che viene eseguita la funzione (da un evento onclick) utilizza la voce femminile predefinita. Quindi, ogni volta che viene eseguito dopo, usa la voce maschile a cui sto cercando di usare. Come posso far funzionare la voce maschile anche per la prima volta?Perché la voce dell'API di sintesi vocale cambia quando la funzione viene eseguita più di una volta?
Ecco il pulsante che chiama il javascript:
<button type="button" name="speakMe"id="speakMe" onclick="speakPhrase($('phraseBar').getValue());" ><img src="images/speakMe.png" /></button>
E qui è la funzione speakPhrase che sta chiamando:
function speakPhrase(phrase) {
if(phrase =="")
{
alert("Please enter a phrase before asking me to speak for you. Thank you!");
}
else
{
var speech = new SpeechSynthesisUtterance(phrase);
var voices = window.speechSynthesis.getVoices();
speech.voice = voices.filter(function(voice) { return voice.name == 'Google UK English Male'; })[0];
window.speechSynthesis.speak(speech);
}
}
Chiunque può aiutare?
stesso problema. Non ha funzionato per me. – agoldev
Il problema è facile da vedere se si ascoltano le voci console.log dopo la prima chiamata. onVoices Aggiornamenti modificati non appena disponibili. –