Синтезировать речь из текста в веб-приложении

Как можно синтезировать речь в веб-приложении?

Есть ли способ использовать HTML5 Web Speech API?

Например, если бы я хотел синтезировать предложение «Быстрая коричневая лиса перепрыгивает через ленивую собаку», как я мог бы сделать это, не проигрывая предварительно записанный файл, в котором кто-то читает именно это предложение?


person IMUXIxD    schedule 15.05.2013    source источник
comment
Спецификация находится здесь: Спецификация Web Speech API. Однако на данный момент браузеры не поддерживают его из коробки.   -  person VisioN    schedule 16.05.2013


Ответы (2)


Как и сейчас, SpeechSynthesis функции, которые являются частью спецификации Web Speech API. еще не были реализованы ни в одном браузере.

Однако вы можете взглянуть на это расширение для Chrome.

РЕДАКТИРОВАТЬ:

Похоже, что последняя сборка Chrome Canary может включать эту функцию, однако в ней указано только, что эта функция была запущена (http://www.chromestatus.com/features), и мне не удалось найти более существенную информацию об этом.

РЕДАКТИРОВАТЬ2:

Как упоминалось в комментариях @cdf, кажется, что теперь вы можете поиграть с этой функцией, запустив хром с флагом --enable-speech-synthesis. См. это сообщение.

РЕДАКТИРОВАТЬ3:

Кажется, сейчас это есть в Webkit, но не на iOS. Даже в Chrome на iOS. Демо @BrandonAaskov

person plalx    schedule 15.05.2013
comment
Ах я вижу. Даже не хромированная канарейка? - person IMUXIxD; 16.05.2013
comment
@IMUXIxD, я обновил ответ ... на самом деле это может быть, однако реализация еще не завершена. - person plalx; 16.05.2013
comment
Запустите Chrome из командной строки с параметром --enable-speech-synchronous groups.google.com/a/chromium.org/forum/#!msg/blink-dev/ - person cdf; 15.10.2013
comment
Кажется, сейчас это есть в Webkit, но не на iOS. Даже в Chrome на iOS. jsbin.com/gosaqihi/9/edit?js,console - person Brandon Aaskov; 26.04.2014
comment
@BrandonAaskov Потрясающе, добавлено к ответу. - person plalx; 26.04.2014

Этот код работает как в Chrome, так и в Safari (взято из моего приложения ttsreader):

if (!('speechSynthesis' in window)) {
        // Synthesis not supported. 
            alert('Speech Synthesis is not supported by your browser. Switch to Chrome or Safari');
        }

var msg = new SpeechSynthesisUtterance('hello world');
msg.volume = 1; // 0 to 1
msg.rate = 0.9; // 0.1 to 10
msg.pitch = 1; //0 to 2
msg.lang = "en-GB";
msg.text = "I will speak this out";
speechSynthesis.speak(msg);
person Ronen Rabinovici    schedule 09.08.2015