Firefox и API синтеза речи

Я создаю приложение для синтеза речи HTML5, как показано ниже.

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

Windows7 и Android Chrome33beta или сафари Mac работают нормально.

но Windows7-Firefox 27, похоже, поддерживает Speech-Synthesis-API, но не работает, потому что возвращает пустой список голосов.

Есть какое-нибудь решение?


person aki miyazaki    schedule 09.02.2014    source источник
comment
Есть about:config флаг media.webspeech.synth.enabled, который включает speechSynthesis в Firefox. Проблема остается, speechSynthesis.getVoices().length===0.   -  person dakab    schedule 07.07.2015


Ответы (4)


Проверьте, поддерживается ли API синтеза речи вашим браузером
http://caniuse.com/#feat=speech-synthesis

Вы можете проверить это с помощью modernizr
http://v3.modernizr.com/download/#-speechsynthesis

Если браузер не поддерживает его, вы можете использовать meSpek.js
http://www.masswerk.at/mespeak/

person Yukulélé    schedule 17.01.2015
comment
Мой Firefox 50 для Linux говорит, что у меня 0 голосов (Fedora 23). Нужно ли скачивать вручную каждый голос? Есть ли для этого стандартный репозиторий? Chrome 55 уже идет с 19. - person Luis A. Florit; 24.12.2016

К сожалению, похоже, что только Firefox OS (и, возможно, также Firefox для Android, я не проверял) объединяет и поддерживает библиотеку синтеза речи.

Существует открытая ошибка, касающаяся поддержки настольных компьютеров.

person PhistucK    schedule 29.03.2014

Начиная с версии 44, половина api синтеза речи доступна в Firefox Desktop.

Но, как ни странно, по-прежнему требует, чтобы флаг был установлен. В разделе «Совместимость браузера»:

Можно включить с помощью флагов media.webspeech.synth.enabled и media.webspeech.recognition.enable в about: config. Обратите внимание, что в настоящее время в Firefox Desktop доступна только часть синтеза речи - часть распознавания речи будет доступна вскоре после того, как будут определены необходимые внутренние разрешения.

Интересно, почему. MDN даже взялся за дело, создав несколько хороших рабочих примеров, почему бы не попробовать включена ли функциональность по умолчанию?

person uncleoptimus    schedule 04.06.2016

Если вы просто хотите добавить на свою веб-страницу кнопку для чтения страницы вслух, добавьте этот код на свой веб-сайт:

<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 для получения текста содержимого, но это можно легко изменить.

person rubo77    schedule 15.09.2016