我一直在Chrome(33及以上版本)中使用新的語音合成API來製作基於Web的通信輔助工具。我希望用戶能夠改變API允許我做的男性和女性之間的聲音。但是,當頁面首次加載並且首次運行該功能時(來自onclick事件),它將使用默認的女性聲音。然後任何時候它運行後,它會使用我嘗試使用的男性聲音。我怎樣才能讓男聲第一次運行呢?當函數運行超過1次時,爲什麼我的語音合成API語音會改變?
這裏是一個調用JavaScript按鈕:
<button type="button" name="speakMe"id="speakMe" onclick="speakPhrase($('phraseBar').getValue());" ><img src="images/speakMe.png" /></button>
這裏是speakPhrase函數被調用:
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);
}
}
誰能幫助?
同樣的問題。沒有爲我工作。 – agoldev
如果您在第一次調用之後使用console.log語音,則很容易發現問題。 onVoices一旦真正可用,立即更新。 –