3
respostas

Voz - Iphone, Android, Desktop - II

Boa tarde, Suporte Alura e Colegas.

Pois é eu conseguir disponibilizar o app do jogo para uns colegas. Mas eles comentaram que nos celulares deles, tanto Android, como IOS não escutaram a voz. Eu vi que a Srta. Nathalia fez um comentário sobre usar um comando do HTML no código. Será que vocês poderia disponibilizar pelo menos um exemplo de como poderia ser feito isso usando Javascript, e acredito que possa também fazer alguma alteração no HTML. Eu li a documentação, mas ela não é muito didática e o exemplo dado não foi suficiente para mim entender "onde" e "como" eu poderia insertar no código do Jogo do Numero Secreto e que ele funcionasse, tanto nos smartphones Android e IOS. No Safari também, não funcionou corretamente, a voz ficou na velocidade 2x. Obrigado e bons estudos a todos!

3 respostas

Olá, Claudio.

Tudo bem?

Eu testei e vi alguns tópicos aqui do fórum e não consegui fazer funcionar. Consegui resolver utilizando outra ferramenta, chamada "SpeechSynthesisUtterance", você vai precisar alterar a função "exibirTextoNaTela" que era onde estava chamando a outra do "responsivevoice".

A função exibirTextoNaTela tem que ficar assim:

function exibirTextoNaTela(tag, texto) {
  let campo = document.querySelector(tag);
  const synth = window.speechSynthesis;
  const utterThis = new SpeechSynthesisUtterance(texto);
  campo.innerHTML = texto;
  utterThis.rate = 1.5;  // Ajuste a velocidade da fala
  synth.speak(utterThis);
}

Veja que a importação e o modo de utilizar já feito dentro da função, você pode até remover o import do script do "responsivevoice" do arquivo index.html, testei e funcionou no PC e no Celular.

É uma alternativa, faça o teste veja se funciona veja se faz sentido. A voz veio masculina no PC e feminina no Celular, não sei porque, e nem investiguei isso, mas deve ter como configurar.

Espero ter ajudado. Qualquer dúvida manda aqui. Bons estudos.

Prezado Sr. Renan Lima.

Muito obrigado pela sua orientação, vou guardá-la em meus arquivos - "Dicas de Programação" que eu tenho no meu computador. Mas acredite que eu consegui resolver o assunto assim: Fiz uma pesquisa pela internet e li um documento, desculpe não encontrei mais a página, que mencionava que cada browser tinha um comportamento no voice diferente um do outro. Até aí vocês desenvolvedores já sabem disso. Mas o interessante é que tanto Google, o Safari e o Firefox, segundo este documento, tem o mesmo rate de configuração que é 1. Assim eu simplesmente, reduzir o rate do código original para 1 e a voz ficou normal para em todos os browsers que usam o Android e IOS. Mas, ainda tem o projeto final. E já tenho o plano B(Seu código) caso não funcione a minha tentativa. Mas não se preocupe que eu mencionarei os créditos da linha do programa para sua pessoa, ok? Abaixo segue o que eu fiz no código que funcionou! Muito obrigado, que Deus o abençoe, bons estudos, e uma ótima semana para você.

function exibirTextoNaTela(tag, texto) {
    let campo = document.querySelector(tag);
    campo.innerHTML = texto;
    responsiveVoice.speak(texto, 'Brazilian Portuguese Female', {rate:1.0});

OBS: O rate original era {rate: 1.2} e alterei para 1.

Oi Claudio.

Muito bom! Fico feliz que tenha conseguido resolver dessa forma. Muito brigado por compartilhar aqui com a gente, e pela atenção.

Abraço.