JS Speech Synthesis to Node.JS Readable Stream

Aug 17 2020

La función incorporada de texto a voz de JavaScript es SpeechSynthesis.speak(). Estoy usando discord.js y quiero convertir Speech Synthesis en un flujo legible de node.js para poder reproducirlo como una transmisión a un canal de voz.

Encontré este Github Repo , sin embargo, no funcionó para mí y tuve dificultades para transmitirlo (Además, aunque no estoy 100% seguro, asumo que registra los tts , lo cual no es bueno cuando manejar grandes cadenas de texto).

Estos son los principales errores que obtuve al usar el código mencionado anteriormente:

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

y

Uncaught TypeError: Cannot read property 'getUserMedia' of undefined

Mi objetivo es evitar algo como la API tts de Google y simplemente usar JavaScript nativo. ¿Es posible convertir Speech Synthesis en un flujo legible que pueda usar en discord.js? ¿Si es así, cómo? O, ¿hay alguna manera de usar el repositorio anterior? Por favor, ayúdame, sería muy apreciado.

(Además, sé que Discord tiene un botón tts incorporado para leer mensajes, esto es para algo completamente diferente)

Respuestas

1 Luke Aug 17 2020 at 23:50

la Web Speech API (SpeechSynthesis.speak()) utiliza la implementación de síntesis del navegador o del sistema operativo subyacente y no pasa por la Web Audio API. Ese repositorio de Github en realidad usa el micrófono de su sistema para grabar la salida de voz. Esa no es una buena idea excepto como un truco. Deberá usar algo más para generar el contenido, ¿quizás Say.js, que es un navegador cruzado y funciona directamente en node.js?