2
respostas

Numeros negativos, ponto final e outras coisinhas

Olá galera! Estava tendo alguns probleminhas com a API e acredito que outras pessoas possam passar por isso, então deixo aqui algumas soluções que podem ser úteis:

1 - Quando falo algum número negativo e tento converter o resultado em número inteiro recebo um NaN. Descobri que o web speech API estava escrevendo o símbolo de negativo com um caractere não reconhecido pela função, o "−", que na tabela unicode é o U+2212. Resolvi o problema usando .replace("−", "-"), substituindo ele por "-" (unicode U+002d).

2 - O web speech API escreve ponto final em qualquer coisa que eu falo. Além disso quando falava 1 a API escreve 'um', e quando falo menos, ela escreve 'menos', em vez de '-'. A solução completa:

let chute = e.results[0][0].transcript.replace("−", "-").replace(".", "").replace("Menos ", "-").replace("um", '1');
2 respostas

Oi Samuel, tudo bem?

Incrível essa sua sugestão! Muito obrigada por compartilhar com a gente aqui no fórum, com certeza vai ajudar outras pessoas estudantes :D

Parabéns pela atitude, pessoas como você fazem do fórum esse lugar super legal de troca de conhecimento.

Um abraço e bons estudos.

Oi Lorena, Tudo bom! Obrigado pelo feedback!

Percebi que a solução que apresentei não é completa, pois ocorre de a API escrever números por extenso aleatoriamente (por exemplo 'cinquenta', em vez de '50'). Conhece alguma solução mais eficaz para isso? Dei uma lida na documentação e vi que o recognition usa uma espécie de dicionário, o speechGrammar, para limitar as palavras reconhecidas. Mas não entendi nada de como fazer para usar ele kkkk.