node webkit text to speech api不工作?

时间:2015-02-04 18:41:43

标签: javascript webkit node-webkit

我正在尝试使用节点webkit构建一个应用程序,该应用程序在Chrome浏览器中运行良好,并且某些文本到语音api在节点webkit(windows)中无法正常工作。当我使用webkit调试器在控制台中进行一些检查时,我可以看到

   speechSynthesis.getVoices() 

没有任何声音。如何解决这个问题?

    var voiceOutput = new SpeechSynthesisUtterance("sample message");
    voiceOutput.voice = speechSynthesis.getVoices()[0];
    speechSynthesis.speak(voiceOutput);

2 个答案:

答案 0 :(得分:0)

Node-webkit或nw.js不支持SpeechSynthesis API。

我也在开发自己的私人助理时遇到了这个问题。(你给它发出语音命令,它会为你做点什么:D)

我发现dictate.js用于语音文字。

为了实现文字转语音功能,我建议您使用谷歌翻译API。

Google文字转语音API的一个示例:

http://translate.google.com/translate_tts?tl=en&q=Hello

以上两个解决了我在node-webkit中的TTS(文本到语音)和STT(语音到文本)的问题。

注意:Google Translate API每个请求最多只允许100个字符。因此,如果您需要将大/长文本转换为语音,则必须将其分解为100个字符的句子,同时保留整个单词和标点符号。

希望这有帮助! 干杯!

答案 1 :(得分:0)

我经常尝试使用NW创建一个盲人应用程序,我遇到了同样的问题。您可以查看https://github.com/nwjs/nw.js/issues/1661

对于生产版本(win64):使用系统声音(讲述人)可以正常工作。

对于开发(archlinux):在linux上的运行模式下,我必须使用Cylon Speech将系统语音插入speechSynthesis。然后,我使用此标志启动nw命令以启用语音:

nw . --enable-speech-dispatcher

使用这种方法,我可以在linux(用于开发)和windows(用户)上运行正常。