Синтез и распознавание речи в 50 строк на JavaScript

Если вы, как большинство нормальных людей, не следите пристально за развитием веб-API, то вот краткая сводка их успехов в обработке речи.

Синтез речи

Вовсю работает в нормальных браузерах. Реализуется в 4 строчки на джаваскрипте:

See the Pen Синтез речи by Anton (@nalgeon) on CodePen.

Функция speak создаёт говорилку и озвучивает переданный текст на русском языке.

Распознавание речи

Работает только в хроме и фаерфоксе, причём у каждого по-своему. На андроиде тоже работает, хотя функциональность ограничена по сравнению с десктопом. Реализуется посложнее, но тоже терпимо — 40 строчек джаваскрипта:

See the Pen Распознавание речи by Anton (@nalgeon) on CodePen.

Распознавалка — в классе Recognizer. Начинает слушать после вызова start(), заканчивает после stop(). Накапливает распознанный текст в свойстве transcript. Умеет возвращать промежуточные результаты распознавания, если передать обработчик в start():

recognizer.start((text) => {
  txtInterim.value = text;
  txtMessage.value = recognizer.transcript;
});

Добрый человек Tal Ater сделал удобную обёртку над API распознавания — библиотеку annyang. С ней всё ещё проще.