Síntese de fala JS para fluxo legível Node.JS

Aug 17 2020

A função integrada de conversão de texto em fala do JavaScript é SpeechSynthesis.speak(). Estou usando discord.js e quero converter a Síntese de fala em um fluxo legível node.js para que eu possa reproduzi-lo como uma transmissão para um canal de voz.

Eu encontrei este Github Repo , no entanto, não funcionou para mim e tive dificuldade em transmiti-lo (além disso, embora não tenha 100% de certeza, estou assumindo que ele grava os tts, o que não é ótimo quando lidando com grandes cadeias de texto).

Aqui estão os principais erros que recebi ao usar o código mencionado acima:

The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page.

e

Uncaught TypeError: Cannot read property 'getUserMedia' of undefined

Meu objetivo é evitar algo como a API tts do Google e usar apenas JavaScript nativo. É possível converter a síntese de fala em um fluxo legível que eu possa usar no discord.js? Em caso afirmativo, como? Ou existe uma maneira de usar o repositório anterior? Por favor me ajude, seria muito apreciado.

(além disso, sei que o discord tem um botão tts embutido para ler mensagens - isso é para algo totalmente diferente)

Respostas

1 Luke Aug 17 2020 at 23:50

a Web Speech API (SpeechSynthesis.speak()) usa o sistema operacional subjacente ou a implementação de síntese do navegador e não passa pela Web Audio API. Esse repositório do Github realmente usa o microfone do seu sistema para gravar a saída de fala. Isso não é uma boa ideia, exceto como um hack. Você precisará usar outra coisa para gerar o conteúdo - talvez Say.js, que é cross-browser e funciona diretamente no node.js?