Node.JS 읽기 가능한 스트림에 대한 JS 음성 합성

Aug 17 2020

자바 스크립트의 내장 텍스트 음성 변환 기능은 SpeechSynthesis.speak(). discord.js를 사용하고 있으며 음성 합성을 node.js Readable Stream 으로 변환 하여 음성 채널에 대한 방송으로 재생할 수 있도록하고 싶습니다.

이 Github Repo를 찾았 지만 저에게는 작동하지 않았고 방송하는 데 어려움을 겪었습니다 (또한 100 % 확실하지는 않지만 tts를 기록 한다고 가정 합니다. 큰 텍스트 문자열 처리).

앞서 언급 한 코드를 사용하는 동안 발생한 주요 오류는 다음과 같습니다.

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

Uncaught TypeError: Cannot read property 'getUserMedia' of undefined

내 목표는 Google의 tts API와 같은 것을 피하고 기본 JavaScript를 사용하는 것입니다. 음성 합성을 discord.js에서 사용할 수있는 읽기 가능한 스트림으로 변환하는 것이 전혀 가능합니까? 그렇다면 어떻게? 아니면 이전 저장소를 사용하는 방법이 있습니까? 제발 도와주세요, 많이 감사하겠습니다.

(또한 discord에는 메시지를 읽을 수있는 내장 tts 버튼이 있다는 것을 알고 있습니다. 이것은 완전히 다른 것입니다.)

답변

1 Luke Aug 17 2020 at 23:50

웹 음성 API (SpeechSynthesis.speak ())는 기본 OS 또는 브라우저 합성 구현을 사용하며 웹 오디오 API를 거치지 않습니다. 해당 Github 저장소는 실제로 시스템의 마이크를 사용하여 음성 출력을 녹음합니다. 해킹을 제외하고는 좋은 생각이 아닙니다. 콘텐츠를 생성하려면 다른 것을 사용해야합니다. 크로스 브라우저이고 node.js에서 직접 작동하는 Say.js 일까요?