0

「開始ボタン」をクリックしたときに歓迎したいJavaScriptコードを書いています。英語で働いていますが、ポルトガル語のブラジルポルトガル語(pt-BR)で言いたいことがポイントです。私は多くのソリューションを試しましたが、うまくいかないようです。誰でも助けてくれますか?SpeechSynthesisがポルトガル語(pt-BR)で話すことができません

コードは次のとおりです。

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

私はスクリプトの動作ボタンが、パラメータで受信したテキストをクリックし

は、英語(米国)に音声で話されています。

誰もそれを修正する手掛かりがありますか?

ありがとうございます!

答えて

1

返信いただきありがとうございます。私は次の日にこの問題を解決しましたが、質問を投稿しましたが、ここで解決策を投稿できませんでした。

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

これで、この問題はすべて非同期で解決されました。

すでに解決済みですが、ご返信いただきありがとうございます。どうもありがとう。私のアプリは、ページのロード直後に話をしているとの声が常に時間にロードされていないので、

よろしく、

Ulisses

+0

私は、同様の問題が生じています。 –

+0

@DouglasDeRizzoMeneghetti私が投稿した解決策を試してください、それは私のためにうまくいった。とにかく、ドキュメントが完全にロードされ、コードを処理する準備ができていることを確認するには、jQueryステートメントを使用できます: '$(document).ready(function));' 'function'は、ページが完全に読み込まれた後に呼び出します。お役に立てれば! – ulissesBR

+0

ありがとうございます。私はjQuery(私の判断)に慣れていませんが、addEventListener( 'load')と同様のことをしました。 –

関連する問題