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

Распознавание речи — это процесс преобразования речи в текст. SpeechKit Cloud позволяет распознавать спонтанную речь на нескольких языках.

Языки

  • русский

  • английский

  • украинский

  • турецкий

Языковые модели

SpeechKit решает задачу распознавания в два этапа. На первом этапе в аудиосигнале выделяются наборы звуков, которые могут быть интерпретированы как слова. Для каждого набора звуков обычно существует несколько вариантов слов — то есть несколько гипотез.

На втором этапе подключается языковая модель, которая позволяет проверить каждую гипотезу с точки зрения структуры языка и контекста — насколько данное слово согласуется со словами, распознанными ранее. Система распознавания проверяет гипотезы, пользуясь языковой моделью как словарем. Создание такого словаря — это сложная вычислительная задача, здесь используется машинное обучение нейронных сетей.

Нейронная сеть обучается на речи, которая обычно используется в той или иной области. Поэтому языковые модели специализируются на распознавании речи определенной тематики. Например, для распознавания номера телефона лучше всего подходит модель Числа, а для того чтобы распознать имя и фамилию абонента, следует использовать модель Имена.

Список доступных языковых моделей приведен ниже.

  • Короткие запросы (queries) — фразы (3—5 слов) на различные темы, в том числе запросы в поисковых системах (на сайтах).

    Например:

    • [покажи следующий поворот]
    • [соединить с отделом продаж]
    • [еще чашку кофе и две мягких французских булочки]
    • [какая погода во владивостоке]
    • [напомни купить овощей и фруктов по дороге домой]
  • Адреса (maps) — адреса, названия организаций и географических объектов.

    Например:

    • [поехали на улицу кирпичные выемки пять]
    • [сколько ехать от льва толстого до новой земли]
    • [покажи маршрут до музея маяковского]
  • Даты (dates) — названия месяцев, порядковые и количественные числительные.

    Например:

    • [второго ноль седьмого две тысячи первого]
    • [двадцать седьмое апреля тысяча девятьсот девятнадцатого года]
  • Имена (names) — имена и фамилии, просьбы соединить по телефону.

    Например:
    • [щукин платон]
    • [соедините с людчиком]
    • [переговорить с васей васиным]
  • Числа (numbers) — количественные числительные от 1 до 999 и разделители — точка, запятая, тире. Модель подходит для диктовки номеров телефонов, счетов, документов.

    Например:

    • [два двенадцать восемьдесят пять ноль шесть]
    • [сто пятьдесят семь запятая пятнадцать сорок три]
  • Музыка (music) — названия музыкальных произведений и исполнителей. Модель не предназначена для распознавания музыкальных фрагментов. Подходит только для распознавания названий, имен авторов и исполнителей песен.

    Например:

    • [третий концерт рахманинова для фортепиано с оркестром]
    • [алла пугачева любовь похожая на сон]
  • Заказы (buying) — фразы, связанные с оформлением заказов в интернет-магазинах (подтверждение заказа и форма доставки).

    Например:

    • [верно хочу купить]
    Полный список словосочетаний

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

Для подготовки моделей используются большие массивы данных из сервисов и приложений Яндекса. Это позволяет постоянно улучшать качество распознавания.

Качество распознавания

Точность распознавания зависит от качества исходного звука, качества кодирования аудио, разборчивости и темпа речи, сложности фраз и их длины. Важно, чтобы тематика речи соответствовала выбранной языковой модели — это повышает точность распознавания.

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

Формат передаваемых данных описан в разделе Формат запроса. Следует учитывать, что SpeechKit Cloud преобразует полученные аудио данные в моно PCM/16 бит/16 кГц.