Хабрахабр

Как Яндекс создавал первое устройство с Алисой. Яндекс.Станция на базе технологии IO

Это первое мультимедийное устройство с Алисой, которое воспроизводит музыку и фильмы, рассказывает детям сказки, помогает в повседневных делах, а также поддерживает навыки от сторонних разработчиков. Несколько минут назад на конференции YaC 2018 мы впервые рассказали о Яндекс.Станции.

На практике перед разработчиками подобных систем стоят серьёзные технологические проблемы, о решении которых в Станции мы и расскажем сегодня читателям Хабра. Может показаться, что для создания подобных устройств достаточно взять голосового помощника, добавить к нему простой микрофон из смартфона и спрятать всё это в корпусе недорогой аудиоколонки. IO, на основе которой и создано устройство.
В посте о создании Алисы мы рассказывали о развитии компьютерных интерфейсов: от командной строки до управления мышью и голосом. Вы также узнаете, что именно представляет из себя технологическая платформа Yandex. Чем более доступным становился компьютер, тем быстрее развивались технологии, упрощался способ взаимодействия с устройством.

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

Именно эта идея легла в основу голосового помощника Алиса и нашего первого устройства на её основе – Яндекс.Станции. Мы верим, что пришло время научить домашние устройства общаться на языке людей, а не кнопок.

Говорит и показывает

Станция – первое устройство Яндекса с голосовым помощником Алиса. Она подскажет погоду, установит будильник, расскажет новости, прочтёт сказку ребёнку или поможет с другими повседневными делами. Но ценность нашего устройства не только в этом. Когда мы начинали работать над Станцией, то поставили перед собой задачу создать домашнее мультимедийное устройство, возможности которого не ограничивались бы навыками голосового помощника. Эта задача включала в себя два важных требования:

Станция должна воспроизводить треки из Яндекс.Музыки или с любого другого устройства через Bluetooth. 1.

Станция должна находить и воспроизводить видео: как из базы партнёрского контента, так и ролики из сети. 2. Были даже варианты с собственным встроенным экраном, но от них быстро отказались в пользу HDMI-разъема для подключения к любому телевизору.

Наше устройство должно справляться с аудиодорожкой лучше, чем динамики типичного телевизора (это касается как глубоких басов, так и общей мощности). И всё это – с качественным звуком. А эти задачи немного противоречат друг другу. При этом Станция должна не только хорошо звучать, но и отчётливо понимать речь пользователя. И здесь начинается самое интересное.

Расположение имеет значение

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

Нет лишних динамиков – нет проблемы. Если направить часть динамиков в стену, то возникает проблема интерференции звуковых волн, которую пришлось бы компенсировать на уровне софта. Но даже с их расположением в корпусе не всё так просто. Поэтому в Станции мы используем два фронтальных динамика (в том числе для поддержания стереоэффекта), один вуфер и два пассивных излучателя (для глубоких басов).

Но в нашем случае вуфер направлен вниз. Обычно и твитеры (высокочастотные динамики), и вуфер направляют в сторону слушателя, чтобы добиться минимального искажения звука. Почему?

Человеческая речь – это преимущественно средние частоты (хотя полный диапазон шире: 300-3400Гц). Помните, мы говорили, что Станция должна не только выдавать качественный звук, но и уметь слышать голосовые команды? Одним из решений этой задачи является увеличение «эхо-пути» звука в спектре человеческой речи от динамиков до микрофонов. Перед нами стояла задача по уменьшению влияния излучаемого Станцией звука на микрофоны, которые должны улавливать человеческую речь. Это увеличивает «эхо-путь», улучшает качество распознавания голоса и незначительно влияет на качество воспроизведения звука. За средние частоты в обычном режиме Станции отвечает вуфер, поэтому мы направили его вниз.

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

Adaptive Сrossfade

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

Нет, вуфер при этом не разворачивается в сторону пользователя, но мы перенаправляем средние частоты на твитеры. В режиме максимальной громкости больше не нужно думать о распознавании речи, поэтому мы отбросили компромиссы и сфокусировались на звуке. А ещё при высокой громкости Станция переключается в стерео режим, который отключен в обычном режиме из-за своего негативного влияния на качество распознавания речи. Выше мы называли их исключительно высокочастотниками, но они подобраны так, чтобы при необходимости справляться и со средними частотами (уверенно держат от 2к до 20к Гц).

Кстати, некоторые аудиофилы из нашей команды рекомендуют ещё и внешний кожух снимать, чтобы выиграть пару децибел (да, он съёмный). Всё это мы назвали технологией Adaptive Сrossfade, которая, хочется верить, придётся по вкусу поклонникам качественного звука.

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

Yandex.IO

Динамики – важная часть устройства, но далеко не главная. Станция построена вокруг платформы Yandex.IO, которая включает в себя два компонента. Прежде всего, это главная плата, которая отвечает за «мозги» всего устройства: воспроизводит музыку и фильмы, а также обеспечивает работу Алисы и всех её навыков (в том числе тех, которые уже могут создавать сторонние разработчики с помощью сервиса Диалоги).

Краткая спецификация:

  • Quad-core ARM Cortex-A53 @ 1 GHz (12000 MIPS)
  • RAM: 1 GB DDR3 SDRAM
  • Flash storage: 8 GB eMMC
  • WiFi: 802.11 b/g/n/ac, dualband, MIMO 2x2
  • Bluetooth: BLE 4.1 with A2DP support
  • Video: HDMI 1.4 + CEC. FullHD support (1080p)
  • Audio input: 16-channel digital audio capturing (I2S with TDM)
  • Audio output: 3-channel digital D-class amplifier 30 W + 2x10 W

Мы выбрали ARM Cortex-A53 не только из-за тяжелой задачи воспроизведения потокового видео, но и для работы с голосом. Несколько слов о процессоре. Но это работает не так, а главная плата Станции несёт в себе целый стек технологий, который направлен на улучшение распознавания голоса. Со стороны может показаться, что никаких особых нагрузок здесь нет: записывайте весь аудиопоток с микрофона и транслируйте его в облако, где волшебная нейросеть всё распознает. И здесь мы переходим ко второму важному компоненту платформы IO.

Микрофонная матрица

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

Один простой микрофон не справляется с задачей, но если взять несколько и заставить их работать согласованно, по принципу фазированных антенных решёток, то получим хороший направленный микрофон. В индустрии эту проблему решают с помощью микрофонных матриц. Причём они подключены к отдельному контуру питания, и когда вы нажимаете кнопку Mute на корпусе, микрофоны физически обесточены. Так и в Станции используется микрофонная матрица собственной разработки, состоящая из 7 микрофонов: 1 в центре и 6 по окружности.

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

Голосовая активация

Распознавание речи – крайне ресурсоемкий процесс, поэтому работает он только в облаке. Но Станция не может позволить себе отправлять весь окружающий шум в сеть: это ухудшает отзывчивость, потребляет трафик и энергию, провоцирует отключение голосового управления. Поэтому наше устройство начинает слушать и посылать звук с микрофонов на сервер только в том случае, когда пользователь произнёс ключевые слова «Алиса» или «Яндекс». Но как это работает без доступа к сети?

Мы обучаем небольшую нейронную сеть находить в потоке шума конкретные ключевые слова, например «Алиса». Распознавание ключевых слов построено на технологии Phrase Spotting (голосовая активация). Более того, для Станции нам потребовалось собирать эти записи вновь, а не использовать те, которые остались после запуска Алисы для смартфонов. Для этого требуется порядка 100 тысяч записей на каждое слово, причём для различных акустических условий (тихая комната, работающий телевизор в фоне, ...). Причина в том, что образцы голоса должны записываться под конкретное устройство, иначе итоговое качество распознавания будет хромать.

Только после того, как Станция «услышала» в звуковом потоке ключевое слово, речь пользователя начинает отправляться на сервера Алисы для анализа запроса и подготовки ответа. Нейросеть, обученная для голосовой активации, способна распознать лишь несколько слов, но зато работает быстро и встроена в само устройство, поэтому не требует подключения к интернету. Но не сразу.

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

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

Как только направление речи определено, микрофонная матрица «разворачивается» в этом направлении и направляет на него «луч». Алгоритм Direction of Arrival отвечает за определение направления, в котором находится источник речи. На этом же этапе работают алгоритмы Noise Suppression (шумоподавление) и De-reverberation (устранение реверберации). Технология Beamforming позволяет выделить звук, приходящий с целевого направления, подавляя звуки, приходящие с других направлений.

Казалось бы, излучаемый Станцией сигнал известен и поэтому его можно вычесть из сигнала, поступающего на микрофоны. Источником звука, мешающим распознаванию речи, может быть и сама Станция во время воспроизведения музыки и фильмов. Этот звук приходит с многократными повторениями и нелинейными искажениями (например, из-за переотражения от стен), и его удаление является нетривиальной задачей. Но не всё так просто. Алгоритм Acoustic Echo Cancelation решает эту проблему.

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

В этом посте мы не стали описывать все продуктовые возможности устройства, а сфокусировались на главных технологических вызовах, которые стоят перед разработчиками умных устройств с голосовым управлением. Яндекс.Станция вскоре поступит в продажу — если вы оставите адрес на сайте, мы сообщим, когда это произойдёт. Яндекс.Станция и технология IO – наш первый шаг к этому будущему. Хочется верить, что в ближайшем будущем мы сможем попросить Алису включить стиральную машину, купить билеты или даже накормить кота – и она выполнит просьбу.

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»