«Бу бу бу бу бу... Салют!». Почему умное устройство срабатывает, только если назвать по имени

И как колонка отличает голосовую команду от подкаста, который сама и воспроизводит.

«Бу бу бу бу бу... Салют!». Почему умное устройство срабатывает, только если назвать по имени

Голосовое управление может быть в смартфоне или автомобиле. Интеллектуальной колонке, телевизоре. Очках или украшении. Если оно есть, устройство умеет: слышать команды и опознавать их как адресованные именно ему, обрабатывать. А мы любим рассказывать, как что-нибудь работает. Сегодня объясняем, как устроено распознавание речи в умных устройствах Сбер и в целом.

Как девайс слышит пользователя

У смартфона, колонки, телевизора есть минимум один встроенный микрофон (чаще больше). Его задача — искать в речи споттерное слово. Это имя устройства, после которого оно начинает расшифровывать речь. У интеллектуальных устройств Сбер споттерное слово — «Салют». Если колонка услышала это слово, она понимает, что говорят с ней, и начинает фиксировать голосовую команду.

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

  • изолирующий звуковой канал

«Гнездо» для микрофона из материалов, которые поглощают звук. Даже голос пользователя, который попадает в устройство и отражается от стенок.

  • виброизоляционные прокладки и втулки

Резина и силикон помогают смягчать механические колебания внутри устройства. Например, когда колонка «качает» на полную громкость.

Виброизоляция деталей корпуса в SberBoom Micro 
Виброизоляция деталей корпуса в SberBoom Micro 

У интеллектуальных колонок Сбер микрофоны можно отключить — на устройстве есть соответствующая кнопка. Когда нажимаешь на неё, они перестают получать питание. У интеллектуальных ТВ с голосовым управлением тоже есть решение для отключения микрофонов.

Можно ли отличить рэп от голосовой команды

Умному устройству нужно понимать, когда к нему обращаются, даже если оно одновременно воспроизводит музыку/подкаст (колонка) или фильм (ТВ). Оно должно не слышать само себя. Ведь динамик:

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

Колонке необходимо услышать команду пользователя в любом шуме... включая тот, что издаёт сама. В устройствах Сбер за эту задачу отвечает блок улучшения качества звука (VQE). Внимание: он улучшает не то, как колонка играет музыку, а именно звук, который «слышит» микрофон.

VQE связан с алгоритмом подавления акустического эха (AEC). «Эхо» здесь — вообще весь звук, который после динамиков попал в микрофон. А этот алгоритм опирается на оцифрованный сигнал непосредственно из аудиотракта. Из него алгоритм может понять: какая часть звуков, которая попала в микрофон, связана с тем, что играет колонка? И смоделировать акустическое эхо, то есть:

  • звуки музыки/фильма;
  • голос ассистента;
  • отражение этих звуков от стен;
  • их передачу через корпус прямо в колонку.

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

На этой стадии в аудиодорожке ещё есть внешние шумы: за окном едут машины, на сковороде шипит картошка. Их «вычитает» шумоподавление.

Результат — более чистая аудиодорожка, где устройство может искать своё имя.

Почему нужно говорить «Салют»

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

— Салют, какая сейчас погода?

— Салют, до скольки работает ближайшая аптека?

«Бу бу бу бу бу... Салют!». Почему умное устройство срабатывает, только если назвать по имени

Пока в аудио, которое попадает в микрофон, нет споттерного слова, оно остаётся для устройства бессмысленной последовательностью чисел. Условно, колонка слышит: «Бу-бу-бу-бу-бу... Салют!» и понимает, что пора распознавать команду.

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

Зачем колонке вероятности

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

Основу ASR составляют две модели, акустическая и языковая. Вот что происходит, когда колонка ловит голосовую команду:

  • Аудиосигнал превращается в условное представление амплитуд частот вашей речи — спектрограмму.

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

«Бу бу бу бу бу... Салют!». Почему умное устройство срабатывает, только если назвать по имени
  • Спектрограмма поступает в акустическую модель

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

  • За акустической моделью следует языковая

Акустическая говорит «судя по звуку, здесь вероятны такие-то буквы». Языковая добавляет: «С точки зрения языка, после этих слов логичнее вот такое продолжение».

  • Специальный алгоритм (beam search) выбирает из вариантов расшифровки тот, который больше всего устраивает обе модели

Именно так колонка понимает похоже звучащие слова в команде: контекст помогает выбрать правильный вариант.

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

66