Tôi đã sử dụng API tổng hợp giọng nói mới trong Chrome (33 trở lên) để tạo hỗ trợ giao tiếp dựa trên web. Tôi muốn người dùng có thể thay đổi giọng nói giữa nam và nữ, API cho phép tôi thực hiện. Tuy nhiên, khi trang được tải lần đầu tiên và lần đầu tiên chức năng được chạy (từ sự kiện onclick), nó sử dụng giọng nữ mặc định. Sau đó, bất cứ lúc nào nó được chạy sau đó, nó sử dụng giọng nam mà tôi đang cố gắng sử dụng. Làm thế nào tôi có thể làm cho giọng nam giới chạy lần đầu tiên?Tại sao giọng nói của API Tổng hợp giọng nói của tôi thay đổi khi chức năng chạy hơn 1 lần?
Đây là nút mà các cuộc gọi javascript:
<button type="button" name="speakMe"id="speakMe" onclick="speakPhrase($('phraseBar').getValue());" ><img src="images/speakMe.png" /></button>
Và đây là chức năng speakPhrase đang được gọi là:
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);
}
}
bất cứ ai có thể giúp đỡ?
cùng một vấn đề. Không làm việc cho tôi. – agoldev
Vấn đề là dễ dàng để xem nếu bạn console.log giọng nói sau khi cuộc gọi đầu tiên. onVoicesThay đổi cập nhật ngay sau khi chúng thực sự có sẵn. –