В далёком 2018 году мы представили наше первое умное устройство с Алисой — Яндекс Станцию. С тех пор пользователи успешно взаимодействуют с виртуальным ассистентом с помощью голосовых команд. Но, к сожалению, бывают и сложности. Алиса не всегда правильно понимает запрос: ей могут мешать шумы, сливающиеся голоса или невнятно произнесённая фраза. Эта проблема особенно актуальна для пользователей с различными речевыми нарушениями — например, с заиканием, ДЦП, последствиями инсульта или травмы. Часто речь искажается так, что Алиса не понимает её, а значит, пользователь сталкивается с ограничениями.
Меня зовут Даня, я представляю команду, которая разрабатывает в Алисе технологию распознавания речи. Сегодня я расскажу небольшую историю о том, как мы решали описанную выше проблему. Пожалуй, было бы слишком смело предполагать, что такую сложную задачу можно навсегда победить одним быстрым решением (даже людям не всегда удаётся корректно понимать речь с особенностями). Тем не менее нам удалось сократить разрыв между точностью распознавания обычной речи и речи с искажениями в среднем на 20%. При некоторых лёгких формах нарушений звукопроизношения Алиса теперь понимает речь не хуже человека, а при тяжёлых формах нарушений — даже лучше. Это самый большой шаг в этом направлении с момента создания нашего помощника.
Под катом вы не найдёте хардкорных подробностей обучения нейросетевых моделей, потому что основная сложность таилась вовсе не в вопросах применяемых технологий. Ключом к успеху стала помощь сообщества и экспертов.
Зарождение идеи
Немного предыстории. Около года назад на еженедельной встрече всех сотрудников Яндекса (мы называем её Хурал) выступали наши коллеги из команды инклюзии. Их доклад не был связан с указанной темой (если память меня не подводит, это было что-то про важность поддержки слабовидящих пользователей в наших приложениях). Тем не менее он побудил нашу команду отвлечься от текучки и посмотреть по сторонам в поисках нерешённых проблем. В результате, как это часто бывает в Яндексе, из личной инициативы нескольких сотрудников родился новый проект.
Начали думать, как в принципе подступиться к этой задаче. Чтобы модель распознавания речи в Алисе стала лучше понимать фразы и слова, произнесённые необычным способом, её нужно дообучить на большом количестве подобных аудиофрагментов с текстовой расшифровкой. Значит, нам нужен русскоязычный датасет из таких фрагментов. А его нет. Нигде нет.
Хуже того: никто из нас не понимал, из чего именно он должен состоять. Например, знаете ли вы, какие бывают речевые нарушения? Возможно, большинство слышали про заикание и проблемы с буквой Р, но в реальности особенностей существенно больше. Невозможно собрать примеры того, в чём ты не разбираешься. Поэтому мы обратились за помощью.
Быстрый подход
Мы поделились идеей с той самой командой инклюзии, с доклада которой всё и началось. У них был большой опыт сотрудничества с самыми разными некоммерческими организациями, которые помогают людям с особенностями здоровья. Так нам удалось найти четыре организации, которые разбирались в предметной области лучше нас. Они же, в свою очередь, предложили поучаствовать в нашем проекте своим подопечным с нарушениями речи, из которых три десятка человек согласились. Более того, помочь нам согласились ещё и два специалиста-дефектолога. И вот наконец нам удалось приступить к первой фазе — проверке осуществимости самой идеи.
Происходило это следующим образом. Пользователи зачитывали подготовленные нами примеры обращений к Алисе (мы отобрали наиболее критичные и популярные команды). Так нам удалось собрать более 619 тысяч записей (суммарно это около 600 оплаченных нами часов работы). На этом этапе мы не классифицировали записи по типам нарушений речи. Нашей целью было как можно быстрее собрать датасет, дообучить на нём нашу модель и убедиться, что качество распознавания положительно реагирует на все наши старания. К счастью, ровно это мы и увидели. А значит, дальше нам предстояло сделать всё уже не быстро, а по уму.
Системный подход
Что было не так с нашим первым подходом? Мы просто использовали те примеры, которые получилось собрать, и не понимали, насколько они разнообразны и покрывают ли все основные типы нарушений речи. Кроме того, мы не знали, как измерять качество распознавания отдельно для каждого типа нарушений. Системно и долгосрочно развиваться в таких условиях было нельзя.
Для начала нам нужно было существенно увеличить количество готовых помогать нам людей с особенностями речи. Чем больше людей, тем разнообразнее датасет, а значит, качественнее результат. К этому моменту с нами тесно сотрудничали уже шесть фондов и ещё более десятка помогали распространять информацию о нашем проекте. В результате к нам поступило более 1700 (!) заявок, которые нужно было верифицировать на наличие нарушений в речи и систематизировать по типам. Самим нам было уже не справиться.
Мы пригласили в компанию в качестве главного специалиста доцента МГПУ Ольгу Караневскую, и она предложила использовать для первичного отбора простой тест — чтение скороговорок. Потому что скороговорки — это очень контрастный текст, по которому проще распознавать различные особенности речи. Так нам удалось отобрать для участия в проекте чуть более 300 человек (напомню, что на первом этапе было около 30 участников). С их помощью мы собрали более 236 тысяч записей. Внимательный читатель в этот момент может спросить, а почему при большем количестве людей мы собрали меньшее количество записей? Потому что эти 236 тысяч были куда более разнообразными и хорошо размеченными. Кроме того, мы же не выбрасывали предыдущие 619 тысяч и продолжали использовать их для дообучения. Часть новых записей мы добавили к ним, повысив общее качество датасета, а другую часть оставили для оценки качества результата (на всякий случай напомню, что бессмысленно измерять качество на тех же примерах, на которых вы и проводили обучение).
Результаты
Классическая метрика распознавания речи — Word Error Rate (WER). Если очень упростить, WER вычисляется как доля неправильно распознанных слов в запросе. Например, «Алиса, включи мой любимый трек» модель распознала как «Алиса, выключи мой любимый тренд». Тогда неправильно распознаны два слова из пяти, соответственно WER равен 2 / 5 = 0,4 (40%).
Для замеров качества мы с помощью специалистов выделили четыре группы речевых нарушений: заикания, звукопроизношения, слоговую структуру и интонацию. Дефектологи также проставляли степень нарушения (лёгкая, средняя, тяжёлая).
Кроме того, мы сравнивали старую и новую модели не только друг с другом, но и с людьми. Для этого мы попросили асессоров прослушать записи и перевести их в текст.
Итак, наши результаты.
Нарушения звукопроизношения
Это самая распространённая категория речевых нарушений. В неё входят разнообразные по сложности особенности: от простых и понятных замен шипящих и сонорных звуков до более тяжёлых вроде ДЦП и последствий инсульта.
Для всех проявлений особенностей звукопроизношения есть значимое уменьшение WER (т. е. улучшение качества): при лёгкой форме — на 16,4%, при средней — на 20,7%, при тяжёлой — на 23,1%. Для лёгкой и средней форм мы стали распознавать речь не хуже человека, а для тяжёлой — даже лучше!
Заикания
В лёгкой и средней формах заикания доля ошибок снизилась на 20,8% и 6,5% соответственно. Для лёгкой формы этот результат уже сопоставим с результатом человека. К сожалению, для тяжёлой формы заикания улучшение не такое существенное. Алисе нужно угадывать, завершил ли пользователь запрос, чтобы начать на него отвечать. При заикании эта задача становится значительно сложнее.
Нарушения слоговой структуры
Сюда относятся пропуски и замены звуков, пропуски или перестановки слогов в словах, а также другие трансформации слов. Например, вместо «игрушечный молоток» человек может сказать «ушиный томок».
При лёгкой форме нарушения слоговой структуры слова относительное улучшение — 6,2%, при средней форме — 12,0%. Это значит, что модель научилась лучше понимать по контексту молоток это или всё-таки томок.
Особенности интонации, темпа и ритма
Сюда попали респонденты, чья речь отличается скандированностью, громким началом и последующим снижением громкости, необычным или неверным выделением ударных слогов в словах. Бывают и более сложные случаи: слова могут растягиваться, разделяться паузами, а тембр голоса меняться, что затрудняет понимание.
При нарушениях интонации в лёгкой форме ошибок стало меньше на 20,1%. Опять же, это результат на уровне человека.
Заключение
С одной стороны, это самый значимый наш шаг в сторону улучшения понимания Алисой людей с нарушениями речи. С другой, очевидно, что мы только в начале длинного пути. Мы хотим, чтобы однажды технология распознавания речи Яндекса не просто сравнялась с человеком по уровню понимания любых особенностей, но и даже превзошла его, чтобы многие тысячи пользователей, которые испытывают неудобства в повседневном общении, сумели преодолеть и этот барьер.
В заключение хочу сказать отдельное спасибо за вклад в наше общее дело таким организациям, как «Центр лечебной педагогики», «Живи сейчас», «Жизненный путь», «Весна», «Перспектива», «Лучшие друзья» и многим другим, а также специалистам-дефектологам и каждому из сотен присоединившихся к проекту помощников.
UPD. Кстати, вот наглядный пример того, какую проблему мы учимся решать. Видео взято из канала Ивана Бакаидова.
Комментарии (7)
leotsarev
22.07.2024 08:21+3А можно эту функцию отключить как-нибудь?
С первым ребенком Алиса оказывала большое дисциплинирующее влияние на дикцию.
Типа «давай старайся, говори разборчиво, иначе Алиса сказку не включит».Младшей стараться не надо, Алиса и так поймет
mikelavr
22.07.2024 08:21+1Так эта функция влияет в положительную сторону и на распознавание речи без дефекта, просто (например) если человек пришел с мороза... Или обжег язык.
trankov
22.07.2024 08:21+3Ну детям с логопедическими нарушениями важно, что их не переспрашивают. Они в постоянном стрессе, что их почти никто не понимает с первого раза, что они не такие как все, потому что не владеют одним из основных навыков, "я плохо говорю". И терапевтический эффект тут непереоценимый, потому что они же вообще перестают говорить с кем-то, кроме родителей (особенно, если нет возможности ходить в логопедическую группу). А когда они болтают с голосовыми роботами, те их понимают, и поведение не блокируется. "Я могу говорить, и меня будут понимать не только родители".
mihmig
22.07.2024 08:21Могли бы Вы передать обращение в соответствующий отдел с такой просьбой:
Добавить в мобильное приложение следующий функционал:
2.1 Добавить элемент управления громкостью колонки (увеличить/Уменьшить)
2.2 Добавить элемент управления Стоп (аналог голосовой команды "Алиса, стоп!"
2.3 Добавить элемент управления "Следующий трек" (аналог голосовой команды "Алиса, дальше!"-
Обоснование необходимости
Навскидку две ситуации
3.1. Ребёнок засыпает, слушая сказку - плавно уменьшаем громкость, не входя в комнату.
3.2. Вечеринка - корректируем громкость музыки/пауза/следующий трек плейлиста, не перекрикивая музыку.
У зелёного конкурента есть Телеграм-чат и бот поддержки, у синего - веб-ресурс, где пользователи накидывают идеи.
А у вас только сухая техподдержка в мессенджере...
BarakAdama
22.07.2024 08:21+1Добрый день. Ваши сценарии вполне можно реализовать через наше приложение Умный дом. Создаёте сценарий, добавляете его в избранное и управляете по кнопке. Собрал в своём приложении пример для ваших сценариев — вполне работоспособно получилось. Вот скриншот.
Что касается поддержки и сообщества, то рекомендую заглянуть в чат сообщества пользователей Станций и Алисы. Оно большое и активное. Может помочь с разными вопросами.
-
virtualvoyager
очень вдохновляющий пример технологической инклюзивности)