0

Ich schreibe einen Javascript-Code, den ich will Benutzer begrüßen, wenn sie auf die Schaltfläche "Start" klicken. Es funktioniert, auf Englisch, aber der Punkt ist, dass ich möchte, dass es Dinge in brasilianischem Portugiesisch (pt-BR) sagt. Ich habe viele Lösungen ausprobiert, aber es scheint, es wird nicht funktionieren. Kann mir bitte jemand helfen?SpeechSynthesis funktioniert nicht in Portugiesisch zu sprechen (PT-BR)

Der Code ist:

<!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> 

Wenn ich auf die Schaltfläche das Skript funktioniert, aber der Text in dem Parameter empfangen wird von einer Stimme in Englisch (USA) gesprochen.

Hat jemand eine Ahnung, wie man es reparieren kann?

Danke !! diese

Antwort

1

Danke für Ihre Antwort Bruno. Ich habe diese Situation am nächsten Tag gelöst, als ich die Frage gepostet habe, aber ich konnte die Lösung hier nicht posten. Ich löste diese Situation dies mit:

<!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> 

Sobald onvoiceschanged asynchron ist, dies alles jetzt gut gemacht arbeiten!

Auch ich habe es schon gelöst, ich bin sehr dankbar für Ihre Antwort. Danke vielmals.

Mit besten Grüßen,

Ulisses

+0

Ich bin ein ähnliches Problem haben, da meine app hat direkt nach dem Laden der Seite und die Stimmen zu sprechen, sind nicht immer pünktlich geladen. –

+0

@DouglasDeRizzoMeneghetti Versuchen Sie die Lösung, die ich gepostet habe, es hat gut für mich gearbeitet. Wie auch immer, um sicherzustellen, dass Ihr Dokument vollständig geladen ist und Ihren Code verarbeiten kann, können Sie die jQuery-Anweisung verwenden: '$ (document) .ready (function());' wobei 'function' der Name der gewünschten Funktion ist um zu rufen, nachdem die Seite vollständig geladen ist. Hoffe das hilft! – ulissesBR

+0

Danke. Ich bin nicht vertraut mit jQuery (beurteile mich), aber ich habe etwas ähnliches mit addEventListener ('laden') und es hat gut funktioniert. –