不带浏览器GUI的文本语音转换

时间:2019-06-14 01:19:10

标签: javascript node.js background electron

我一直在设计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文件) 我想要的预期结果-没有网络浏览器,只是在打开文件时说(也许?)

1 个答案:

答案 0 :(得分:0)

Try Electron with a frameless transparent window.

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中将所有内容空白