问题描述
JavaScript的内置文本语音转换功能为SpeechSynthesis.speak()
。我正在使用discord.js,我想将语音合成转换为node.js Readable Stream,以便可以将其作为广播播放到语音通道。
我确实找到了this 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按钮用于阅读消息-这是完全不同的东西)
解决方法
Web语音API(SpeechSynthesis.speak())使用基础的OS或浏览器综合实现,而不通过Web音频API。该Github回购实际上是使用您系统的麦克风来记录语音输出的。除了黑客以外,这不是一个好主意。您需要使用其他方法来生成内容-也许是Say.js,它是跨浏览器并且可以直接在node.js中工作?