1

im пытается использовать веб-речь api для транскрипции слова на португальском языке, я установил свойство «pt-BR» (к сожалению, португальский - европейский не поддерживается), но всегда ответы на английском языке.web speech api - синтез речи .lang свойство не работает

Может кто-нибудь помочь?

Благодаря

код:

 <script type="text/javascript"> 
      var synth = window.speechSynthesis; 
      function falatarea(){ 
       var utteranceY = new SpeechSynthesisUtterance(); 
        utteranceY.text = "teste"; 
        utteranceY.lang = "pt-BR"; 
        utteranceY.voice = "pt-BR"; 
        window.speechSynthesis.speak(utteranceY); 
        } 
     </script> 

ответ

2

Похоже Chrome сломал недавно. У меня был код, теперь его нет.

https://code.google.com/p/chromium/issues/detail?id=582455

В обходного, вы можете установить .voice

voices = window.speechSynthesis.getVoices() 

var utterance = new SpeechSynthesisUtterance("lo que practico"); 

utterance.voice = voices[3]; 
utterance.lang = voices[3].lang; 

window.speechSynthesis.speak(utterance); 

Возможно, API изменился, как и раньше, когда женщина/мужской голос оба были доступны не было возможности выбрать один в частности. Я все еще устанавливаю lang для других браузеров (или более старых хромов).

+0

Спасибо за ответ! Я пробовал этот код, но я получаю эту ошибку: «Uncaught TypeError: Невозможно прочитать свойство« lang »undefined». Я тоже это сделал: http://stackoverflow.com/questions/21513706/getting-the-list-of-voices-in-speechsynthesis-of-chrome-web-speech-api но не работает также .. – Bruno

+0

ну и код будет принимать, как минимум, 4 голоса, где голоса [3] вам понадобится ваша собственная логика, чтобы выбрать подходящий голос. –

+0

yep, я использовал голос [15], который является pt-BR, я думаю, проблема состоит в том, чтобы поместить голоса в массив. его не работает ... – Bruno

Смежные вопросы