Случайны выбор дневника Раскрыть/свернуть полный список возможностей


Найдено 160 сообщений
Cообщения с меткой

распознавание речи - Самое интересное в блогах

Следующие 30  »
rss_rss_hh_new

Открытые проблемы в области распознавания речи. Лекция в Яндексе

Воскресенье, 10 Сентября 2017 г. 18:57 (ссылка)




Leono


сегодня в 18:57

Разработка





Открытые проблемы в области распознавания речи. Лекция в Яндексе










    Работа большинства специалистов по речевым технологиям состоит не в том, чтобы придумывать концептуально новые алгоритмы. Компании в основном фокусируются на существующих подходах. Машинный интеллект уже умеет распознавать и синтезировать голос, но не всегда в реальном времени, не всегда локально и не всегда «избирательно» — когда нужно реагировать только на ключевые фразы, робот может ошибаться. Подобными проблемами как раз и заняты разработчики. Муаммар Аль-Шедиват @Laytlas рассказывает об этих и других вопросах, которые пока не удаётся решить даже большим компаниям.







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



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



    Общая схема распознавания речи. Изначально на вход нам поступает звуковая волна.



    Ее мы дробим на маленькие кусочки, фреймы. Длина фрейма — обычно 25 мс, шаг — 10 мс. Они идут с некоторым захлестом.



    После этого из фреймов мы извлекаем наиболее важные признаки. Допустим, нам не важен тембр голоса или пол человека. Мы хотим распознавать речь вне зависимости от этих факторов, так что мы извлекаем самые важные признаки.



    Затем нейронная сеть натравливается на все это и выдает на каждом фрейме предсказание, распределение вероятностей по фонемам. Нейронка старается угадать, какая именно фонема была сказана на том или ином фрейме.



    Под конец все это запихивается в граф-декодирование, которое получает распределение вероятностей и учитывает языковую модель. Допустим, «Мама мыла раму» — более популярная фраза в русском языке, чем «Мама мыла Рому». Также учитывается произношение слов и выдаются итоговые гипотезы.



    В целом, именно так и происходит распознавание речи.



    Естественно, о метрике нужно пару слов сказать. Все используют метрику WER в распознавании речи. Она переводится как World Error Rate. Это просто расстояние по Левенштейну от того, что мы распознали, до того, что реально было сказано в фразе, поделить на количество слов, реально сказанных во фразе.



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







    Как мы будем это улучшать? Я выделил четыре основных подхода, которые пересекаются друг с другом, но на это не стоит обращать внимания. Основные подходы следующие: улучшим архитектуру нейронных сетей, попробуем изменить Loss-функцию, почему бы не использовать подходы End to end, модные в последнее время. И в заключение расскажу про другие задачи, для которых, допустим, не нужно декодирование.



    Когда люди придумали использовать нейронные сети, естественным решением было использовать самое простое: нейронные сетки feed forward. Берем фрейм, контекст, сколько-то фреймов слева, сколько-то справа, и предсказываем, какая фонема была сказана на данном фрейме. После чего можно посмотреть на все это как на картинку и применить всю артиллерию, уже использованную для обработки изображений, всевозможные сверточные нейронные сети.



    Вообще многие статьи state of the art получены именно с помощью сверточных нейронных сетей, но сегодня я расскажу больше о рекуррентных нейронных сетях.



    Рекуррентные нейронные сети. Все знают, как они работают. Но возникает большая проблема: обычно фреймов намного больше, чем фонем. На одну фонему приходится 10, а то и 20 фреймов. С этим нужно как-то бороться. Обычно это зашивается в граф-декодирование, где мы остаемся в одном состоянии много шагов. В принципе, с этим можно как-то бороться, есть парадигма encoder-decoder. Давайте сделаем две рекуррентных нейронных сетки: одна будет кодировать всю информацию и выдавать скрытое состояние, а декодер будет брать это состояние и выдавать последовательность фонем, букв или, может быть, слов — это как вы натренируете нейронную сеть.



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



    Димой Богдановым, выпускником ШАД, был придуман метод Attention. Давайте encoder будет выдавать скрытые состояния, и мы их не будем выкидывать, а оставим только последнее. Возьмем взвешенную сумму на каждом шаге. Декодер будет брать взвешенную сумму скрытых состояний. Таким образом, мы будем сохранять контекст, то, на что мы в конкретном случае смотрим.



    Подход прекрасный, работает хорошо, на некоторых датасетах дает результаты state of the art, но есть один большой минус. Мы хотим распознавать речь в онлайне: человек сказал 10-секундную фразу, и мы сразу ему выдали результат. Но Attention требует знать фразу целиком, в этом его большая проблема. Человек скажет 10-секундную фразу, 10 секунд мы ее будем распознавать. За это время он удалит приложение и никогда больше не установит. Нужно с этим бороться. Совсем недавно с этим поборолись в одной из статей. Я назвал это online attention.



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



    Тут можно серию лекций прочитать, я постараюсь просто сформулировать идею.



    Когда начали тренировать нейронные сети для распознавания речи, старались угадывать фонему. Для этого использовали обычную кросс-энтропийную функцию потерь. Проблема в том, что даже если мы соптимизируем кросс-энтропию, это еще не будет значить, что мы хорошо соптимизировали WER, потому что у этих метрик корреляция не 100%.



    Чтобы с этим побороться, были придуманы функции Sequence Based Loss: давайте саккумулируем всю информацию на всех фреймах, посчитаем один общий Loss и пропустим градиент обратно. Не буду вдаваться в детали, можете прочитать про CTC или SNBR Loss, это очень специфичная тема для распознавания речи.



    В подходах End to end два пути. Первый — делать более «сырые» фичи. У нас был момент, когда мы извлекали из фреймов фичи, и обычно они извлекаются, стараясь эмулировать ухо человека. А зачем эмулировать ухо человека? Пусть нейронка сама научится и поймет, какие фичи ей полезны, а какие бесполезны. Давайте в нейронку подавать все более сырые фичи.



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



    Какие еще есть задачи? Допустим, задача фреймспоттинга. Есть какой-нибудь кусок звука, откуда надо извлечь информацию о том, была ли сказана фраза «Слушай, Яндекс» или не была. Для этого можно фразу распознать и грепнуть «Слушай, Яндекс», но это очень брутфорсный подход, причем распознавание обычно работает на серверах, модели очень большие. Обычно звук отсылается на сервер, распознается, и распознанная форма высылается обратно. Грузить 100 тыс. юзеров каждую секунду, слать звук на сервер — ни одни сервера не выдержат.



    Надо придумать решение, которое будет маленьким, сможет работать на телефоне и не будет жрать батарейку. И будет обладать хорошим качеством.



    Для этого давайте всё запихнем в нейронную сеть. Она просто будет предсказывать, к примеру, не фонемы и не буквы, а целые слова. И сделаем просто три класса. Сеть будет предсказывать слова «слушай» и «Яндекс», а все остальные слова замапим в филлер.



    Таким образом, если в какой-то момент сначала шли большие вероятности для «слушай», потом большие вероятности для «Яндекс», то с большой вероятностью тут была ключевая фраза «Слушай, Яндекс».



    Задача, которая не сильно исследуется в статьях. Обычно, когда пишутся статьи, берется какой-то датасет, на нем получаются хорошие результаты, бьется state of the art — ура, печатаем статью. Проблема этого подхода в том, что многие датасеты не меняются в течение 10, а то и 20 лет. И они не сталкиваются с проблемами, с которыми сталкиваемся мы.



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



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



    Какие задачи остались? Там state of the art побили, тут задачи решили… Приведу график WER за последние несколько лет.



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



    У нас есть и множество других задач, о которых меня можно спросить. Спасибо за внимание.


    Original source: habrahabr.ru (comments, light).

    https://habrahabr.ru/post/337572/

    Комментарии (0)КомментироватьВ цитатник или сообщество
    rss_rss_hh_new

    Голосовой интерфейс для заказа автомобиля по телефону в действии

    Среда, 30 Августа 2017 г. 14:20 (ссылка)

    robophone

    Привет Хабр.

    Долго я думал как подойти к этой большой и сложной статье.

    Год назад было решено запустить сервис заказа автомобиля нового формата в старой обертке.

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

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

    Всем кому интересно как запускать новый для рынка проект, не имеющий аналогов, но имеющий кучу конкурентов прошу под кат.
    Читать дальше ->

    https://habrahabr.ru/post/334816/

    Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
    rss_rss_hh_new

    [Перевод] Будущее веб-технологий: создаём интеллектуального чат-бота, который может слышать и говорить

    Вторник, 22 Августа 2017 г. 13:15 (ссылка)

    Голосовые интерфейсы в наши дни вездесущи. Во-первых — всё больше пользователей мобильных телефонов используют голосовых помощников, таких как Siri и Cortana. Во-вторых — устройства, вроде Amazon Echo и Google Home, становятся привычным элементом интерьера. Эти системы построены на базе программного обеспечения для распознавания речи, которое позволяет пользователям общаться с машинами с помощью голосовых команд. Теперь же эстафета, в обличье Web Speech API, переходит к браузерам.



    image
    Читать дальше ->

    https://habrahabr.ru/post/336088/

    Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
    rss_rss_hh_new

    Чем грозит преждевременная автоматизация

    Среда, 28 Июня 2017 г. 15:29 (ссылка)

    image

     

    Оды автоматизации на основе технологий перевода речи в текст и обратно не утихают. Кто только не хвалится тем, как оптимизировал бизнес и сократил издержки. Да взять хотя бы нас самих: не только автоматизируем собственные процессы, а еще и другим помогаем. Но важно понимать, что автоматизация не только полезна, но и вредна. Под катом пара примеров второго вида (без имен, разумеется) плюс чек-лист, с помощью которого удастся не превратить первое во второе.



    Начнем с вредного



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



    Из-за ограничений технологии распознавания и возможности робота понимать живую речь получилось громоздко и неудобно. Клиентам приходилось использовать строго заданный набор слов (чтобы робот их понимал). Для этого составили подсказки для «правильных» ответов на поставленный роботом вопрос. Несмотря на инструкцию, робот переспрашивал, правильно ли он понял решение человека.



    Все это сделало общение с машиной крайне утомительным и неприятным для людей, и помощника тихо погасили, заменив старым добрым IVR с передачей решений человека по DTMF. И правильно сделали.



    Кстати, о DTMF. Еще один неудачный пример автоматизации — объединенный сервис рекомендаций и бронирования, в котором клиенту нужно провзаимодействовать с роботом-ассистентом, выпытывающим предпочтения и на их основе предлагающим различные варианты досуга.



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



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



    Оба кейса объединяет одно: интеллект ассистента и ограничения технологии не позволяют строить сложные дискуссии с автоматизированной системой по телефону. Люди быстро устают от механического помощника и пытаются соединиться с живым оператором. Либо просто отказываются от использования.



    Запилим автоматизацию с распознаванием и роботами



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




    • автоматизация принесет пользу продукту, за которую определенная аудитория захочет платить?

    • она снизит/устранит барьеры при использовании продукта?

    • точно не привнесет новых проблем и барьеров?

    • предусмотрены все точки касания в пользовательском интерфейсе — от типового кейса до нестандартного, например, реакция системы на ошибки?



    Добавить общение с роботом можно, если он сможет ответить на ряд вопросов и разгрузить службу поддержки. Поставить робота перед продавцом — практически подарить клиента конкуренту.



    Еще несколько рекомендаций, которые помогут при внедрении технологии Text-to-speech:




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

    • хорошо, если система синтеза речи поддерживает разметку интонации: это помогает сделать искусственную речь более естественной;

    • количество касаний должно быть небольшим: вряд ли кому-то понравится продираться сквозь сложносочиненную структуру вопросов и уточнений; с каждым новым касанием вероятность отказа пользователя будет расти;

    • то же самое можно сказать и про общее время взаимодействия — в идеале задача пользователя должна решаться за несколько секунд.



    А вот на что стоит обратить внимание при использовании обратной технологии, Speech-to-text:




    • качество распознавания должно чуть превышать порог, при котором система сможет неверно истолковать пользователя;

    • если качество распознавания не очень высокое, то нужно продумать структуру диалога так, чтобы ответы человека (и их вариации — например, согласие можно выразить множеством способов: от простого «угу» до какого-нибудь редкого «есть такое дело») были максимально разнесены по звучанию;

    • краткая инструкция для человека поможет ему отвечать понятнее для системы;

    • линейность диалога, а также переход на оператора поможет спасти от негатива.



    Text-to-speech мы внедрили давно, на ее основе работает несколько инструментов Виртуальной АТС, а прямо сейчас тестируем Speech-to-text, о чем я писал в прошлом материале. Интерактивная обработка вызова поможет увеличить отдачу от этих технологий, например, с помощью Text-to-speech можно для каждого звонящего «на лету» готовить персональное приветствие или меню с индивидуальными опциями.


    Original source: habrahabr.ru (comments, light).

    https://habrahabr.ru/post/331838/

    Комментарии (0)КомментироватьВ цитатник или сообщество
    Аноним

    Среда, 01 Декабря 1970 г. 03:00 (ссылка)

    Комментарии ()КомментироватьВ цитатник или сообщество
    Аноним

    Среда, 01 Декабря 1970 г. 03:00 (ссылка)

    Комментарии ()КомментироватьВ цитатник или сообщество
    noiblenevgleb

    Помощник PM-505 - cлуховой аппарат

    Воскресенье, 18 Сентября 2016 г. 19:27 (ссылка)

    bigimg (197x700, 84Kb)
    F9kzmHBvt4DFAQ36KuFfNnFBXA3AzQzQdkCAOVtjxiObKKCT
    F9kzmHBvt4DFAQ36KuFfNnFBXA3AzQzQdkCAOVtjxiObKKCT

    Комментарии (0)КомментироватьВ цитатник или сообщество

    Следующие 30  »

    <распознавание речи - Самое интересное в блогах

    Страницы: [1] 2 3 ..
    .. 10

    LiveInternet.Ru Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат
    О проекте: помощь|контакты|разместить рекламу|версия для pda