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');