0

Kullanıcıları "Başlat düğmesini" tıkladıklarında karşılamak istediğim bir javascript kodu yazıyorum. İngilizce çalışıyor, ama asıl mesele şu ki Brezilya Portekizcesi'nde (pt-BR) bir şeyler söylemek istiyorum. Çok fazla çözüm denedim, ama işe yaramayacak gibi görünüyor. Bana yardım eden var mı?SpeechSynthesis Portekizce konuşmamak için çalışma (pt-BR)

kodudur:

<!DOCTYPE html> 
<html lang="pt-BR"> 
<head> 
<script> 

startTalking = function(line){ 
    var text = new SpeechSynthesisUtterance(); 
    text.lang = "pt-BR"; 
    text.text = line; 
    speechSynthesis.speak(text); 
    } 

</script> 
</head> 
<body> 

<button id="startButton" onclick = "startTalking("Bem vindo!")"></button> 

</body> 
</html> 

Senaryonun çalışır butonuna ama parametresinde alınan metni tıklayın

İngilizce (ABD) bir sesle konuşulur.

Nasıl düzeltileceği konusunda herhangi bir ipucu var mı?

Teşekkürler!

cevap

1

Cevabınız için teşekkürler Bruno. Bu durumu çözdüğüm gün sorunu çözdüm ama çözümü burada yayınlayamadım. Bunu kullanarak bu durum çözüldü:

kez onvoiceschanged
<!DOCTYPE html> 
<html lang="pt-BR"> 
<head> 
<script> 

var text; 
var voices; 

window.speechSynthesis.onvoiceschanged = function() { 
    text = new SpeechSynthesisUtterance(); 
    voices = window.speechSynthesis.getVoices(); 
    text.voiceURI = 'Google português do Brasil'; //discovered after dumping getVoices() 
    text.lang = "pt-BR"; 
    text.localService = true; 
    text.voice = voices[15]; //index to the voiceURI. This index number is not static. 
} 

startSpeaking = function(line){ 
    text.text = line; 
    speechSynthesis.speak(text); 
} 

</script> 
</head> 
<body> 

<button id="startButton" onclick = "startTalking("Bem vindo!")"></button> 

</body> 
</html> 

eşzamansızsa, bu her şeyin artık iyi çalışır yaptı!

Zaten çözdüm bile, cevabınız için çok minnettarım. Çok teşekkürler.

Saygılarımızla,

Ulisses

+0

Ben benzer bir sorun yaşıyorum, benim app sayfası yüklenir ve sesler hep zamanında yüklenmez hemen sonra konuşmaya beri. –

+0

@DouglasDeRizzoMeneghetti Gönderdiğim çözümü deneyin, benim için iyi çalıştı. Neyse, belgenizin tam olarak yüklenmesini ve kodunuzu işlemeye hazır olduğundan emin olmak için jQuery deyimini kullanabilirsiniz: '$ (document) .ready (function());' '' function' istediğiniz işlevin adıdır. sayfa tamamen yüklendikten sonra aramak için. Bu yardımcı olur umarım! – ulissesBR

+0

Teşekkürler. JQuery (yargıç) ile aşina değilim ama addEventListener ('load') ile benzer bir şey yaptım ve iyi çalıştı. –