我可以在服务器端使用某些客户端 Javascript API 吗?

Can I use certain client-side Javascript APIs server-side?

我正在查看一些旨在用于网络浏览器的 APIs。他们要求包含他们的 .js 代码,然后向您展示 API return 的音频。以更一般的方式重申这一点,这些 APIs return 浏览器播放的一些字节流(在本例中为音频)。

这种类型的 API 可以用在服务器端 Javascript 框架中吗,例如。节点,我在哪里调用 API 并在某个变量中捕获生成的二进制数据?我不确定我是否知道如何将浏览器中发生的事情的语义映射到服务器端解决方案。

这是一个任意的例子http://responsivevoice.org/api/

您将他们的 Javascript 添加到您的页面中,然后调用 sampleLibrary.speak("hello world");。这会导致音频返回到播放的浏览器。

通常为浏览器创建的许多 JavaScript 可以是 运行,但是您必须模拟很多浏览器功能。

我查看了您链接到的库。美化了它,并对其进行了一些更改,使其成为一个节点模块。然后你必须模拟 navigator.userAgentwindowdocument

对于文档,图书馆正在使用 addEventListener。在嘲笑那些之后我得到 RV: Voice synthesis not supported。图书馆正在使用 Web Speech API through Window.speechSynthesis。这是不可能模拟的。

但是它确实有后备功能,即通过 createElement 插入 AUDIO 标签。然后您将获得生成的音频文件的 url。然后您就可以下载这些并在您的服务器上做您想做的事了。