1

我一直在设计 HTML 来创建一个具有 GUI 的应用程序。我为此创建了一些脚本 - 特别是使用浏览器窗口语音合成话语的脚本。

然而,突然间,项目的范围发生了变化,我需要取消 GUI,但保持 TTS 脚本作为后台进程运行。我对编程还是很陌生,所以我尝试用 node.js 打开脚本,但它没有那样工作。话语被编程为读取某个 xml 文件。所以本质上,我想做的就是取消 HTML 浏览器方面,并保留 javascript。这可能吗?有人对我如何解决这个问题有任何建议吗?

我已经尝试仅在 node.js 中打开脚本我已经查看了 element.js 但它并不“似乎”是我所追求的。

            var msg = new SpeechSynthesisUtterance("Testing");


            var voices = window.speechSynthesis.getVoices();
            var voice = speechSynthesis.getVoices();
            speechSynthesis.getVoices().forEach(function(voice) {
                console.log(voice.name, voice.default ? voice.default : '');
            });

            msg.pitch = 1.1;
            msg.volume = 1;
            msg.rate = 0.85;
            msg.lang = 'en-US';
            msg.voice = voices[1];
            window.speechSynthesis.speak(msg);

实际结果 - 打开网络浏览器并开始说话(有一个 html 文件) 我想要的预期结果 - 没有网络浏览器,只在文件打开时说话(也许?)

4

1 回答 1

0

尝试使用无框透明窗口的 Electron。

Electron 为桌面应用程序打包了 Node 和 Chromium。

我刚试过这个,它对我有用:

git clone https://github.com/electron/electron-quick-start
# Go into the repository
cd electron-quick-start
# Install dependencies
npm install

编辑 renderer.js 并在上面插入您的代码。

在 main.js 中编辑窗口

  mainWindow = new BrowserWindow({
      width: 800,
      height: 600,
      frame: false,
      transparent: true,
      webPreferences: {
         preload: path.join(__dirname, 'preload.js')
      }
  })

然后将 index.html 中的所有内容设为空白

于 2019-06-14T20:41:17.670 回答