2014-02-09 76 views
9

我正在創建HTML5 Speech Synthesis應用程序,如下面的鏈接。Firefox和語音合成API

http://updates.html5rocks.com/2014/01/Web-apps-that-talk---Introduction-to-the-Speech-Synthesis-API

的Windows7和Android Chrome33beta或Mac的Safari瀏覽器工作正常。

但Windows7-Firefox 27似乎支持Speech-Synthesis-API,但不工作,因爲返回空語音列表。

有沒有解決方法?

+0

有一個名爲'media.webspeech.synth.enabled'的'about:config'標誌,可以在Firefox中啓用'speechSynthesis'。問題依然存在,'speechSynthesis.getVoices()。length === 0'。 – dakab

回答

1

不幸的是,它看起來像只有Firefox操作系統(也可能是Android的Firefox,我沒有檢查過)捆綁並支持語音合成庫。

有關桌面支持的開放bug

1

從版本44開始,在Firefox桌面上可以使用語音合成的一半api。

但奇怪的是仍然要求設置標誌。在"Browser Compatibility"

可以通過在有關media.webspeech.synth.enabled和media.webspeech.recognition.enable標誌啓用:配置。請注意,目前Firefox桌面中只有語音合成部分可用 - 語音識別部分即將發佈,一旦所需的內部權限被整理出來。

我想知道爲什麼。 MDN甚至去鞭打some nice working examples的麻煩,爲什麼不啓用功能默認?

0

如果你只是想將一個按鈕添加到您的網頁大聲朗讀網頁時,該代碼添加到您的網站:

<script src='https://code.responsivevoice.org/responsivevoice.js'></script> 
<script type="text/javascript"> 
    <!-- // 
    var speechpause=0; 
    function toggleSpeech(){ 
     if(speechpause!=1){ 
     responsiveVoice.pause(); 
     speechpause=1; 
     }else{ 
     responsiveVoice.resume(); 
     speechpause=0; 
     } 
    } 
    //--> 
</script> 
<div style="float:right"> 
     <input onclick="responsiveVoice.speak($('#some_div_with_content').text(), 'Deutsch Female', {pitch: .7});" type="button" value=" Play" /> 
     <input onclick="toggleSpeech()" type="button" value="||" /> 
</div> 

這使用jQuery來獲取內容的文本,但可能很容易改變。