Громче, ещё громче. Новые умные телевизоры Sber с голосовым управлением — технологией Farfield

в 15:20, , рубрики: farfield, GigaChat, json, loopback, vqe, звук, ТВ, умный телевизор, устройства sber
Громче, ещё громче. Новые умные телевизоры Sber с голосовым управлением — технологией Farfield - 1

Салют!

Сегодня мы представили новые умные телевизоры Sber серии 7000 с голосовым управлением без пульта, которое обеспечивает технология Farfield. Этим телевизорам достаточно дать голосовую команду, чтобы включить фильм, поставить его на паузу, изменить громкость и так далее. 

Сегодня расскажем, что нового (и как именно) реализовали в серии 7000. В статье:

  • Farfield, loopback и особенности настройки звука в умных ТВ;

  • зачем обходить дерево для голосового управления в сторонних приложениях;

  • ГигаЧат в умных ТВ.

Технология Farfield для голосового управления (а также звук умных ТВ)

Фактически телевизорами Sber и до этого можно было управлять голосовыми командами —  через кнопку на пульте с вызовом ассистента или умн��ю колонку бренда. Голосовая навигация экономит время пользователя: команды легко отдавать, и выполняются они быстро.  

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

Farfield реализован с помощью микрофонной матрицы на четыре микрофона; как показал инженерный анализ похожих устройств, это золотой стандарт рынка. Как происходит распознавание голоса:

  • информация со всех четырёх микрофонов объединяется и обрабатывается локально в прошивке ТВ. 

  • Она попадает на вход в VQE (Voice Quality Enhancement, блок улучшения качества звука), а следовательно, в споттер (модель, которая детектирует ключевое слово для запуска ассистента) и ASR (Automatic Speech Recognition, автоматическое распознавание речи).

Проблема в том, что в VQE попадает не только сигнал с микрофонов, но и loopback — сигнал с динамиков или выходной сигнал усилителя, поданный обратно в звуковую карту. Нам нужно и важно, чтобы по форме loopback был максимально близок к тому сигналу, который воспроизведут динамики. Именно на основе loopback VQE для очистки речи моделирует ту составляющую в микрофонном сигнале, которую создаёт звучан��е динамика. Это и звук, который проникает в микрофон через корпус устройства, и то, что доносится к нему от динамика, и отражения звука от стен и потолка. Чем лучше смоделирована эта составляющая, тем качественнее VQE сможет очистить речь пользователя. При большой разнице между тем, что «видит» VQE в loopback, и тем, что воспроизведётся, речь будет очищена плохо, и споттер не «услышит» ключевое слово.

Звук, который реально воспроизведёт динамик, отличается от того, что было на выходе звуковой карты. И даже от того, что подано непосредственно на вход динамика. Причина — искажения, которые вносят усилитель и сам динамик. Они могут быть намеренными и управляемыми (например, коррекция ЧХ, управлением динамическим диапазоном) либо случайными, неуправляемыми. Это прежде всего нелинейные искажения, которые сложнее всего поддаются моделированию и управлению. Поэтому для эффективной очистки речи пользователя от звуков самого устройства нужно минимизировать нелинейные искажения, вносимые усилителем и динамиком.

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

Громче, ещё громче. Новые умные телевизоры Sber с голосовым управлением — технологией Farfield - 2

Если у телевизора высокая громкость, микрофон хуже распознаёт речь; также есть шанс ухудшить качество звука. Для лучшего качества нужно жертвовать или распознаванием споттерного слова, или громкостью динамиков. При фокусе на качество споттера может получиться либо тихий телевизор с очень качественным звуком, либо громкий, но с плохим звуком. Задача — найти баланс. По сути это сотни разнообразных комбинаций параметров. Так, обработка сигнала усилителем звука происходит в три стадии: цифровое усиление — авторегулировка уровня — аналоговое усиление. На каждой из этих стадий существует от 1 до 10 различных параметров, которые можно настроить. 

Когда динамики, микрофоны для Farfield и умная «начинка» в корпусе, мы начинаем анализировать получающийся звук. Сначала — на физическом уровне. Для определения вибрации и резонансов к телевизору подключается компьютер с генератором тонов. Смотрим и фиксируем артефакты на всём спектре от 20 Гц до 25 кГц. В динамиках мы определяем проблемные места генератором тона и подтверждаем с помощью амплитудно-частотной характеристики.

Дополнительно нужно выстроить уровни: 

  • настроить максимальную громкость кривой так, чтобы не было искажений в динамиках;

  • подобрать порог DRC (Dynamic Range Compression, сжатия динамического диапазона) так, чтобы избежать клиппинга в loopback — искажения аудиосигнала при максимальной громкости телевизора.

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

На следующем шаге измерение THD-N (коэффициента нелинейных искажений) плюс анализ спектрограммы и осциллограммы записанных сигналов показывают проблемные частоты — перегрузку микрофонных каналов и другие артефакты звука. Тестирование споттера выявляет слишком высокий FRR (false rejection rate — долю запросов, на которые ТВ не откликнулся). За три дня мы делаем сотни записей, производя настройки и перенастройки для оптимального звучания и отработки споттера.

Финальный шаг — это настройка PEQ (параметрического эквалайзера), который позволяет настроить частотную характеристику аудиосигнала. PEQ настраивается как на слух, так и по допустимому уровню THD-N. При необходимости корректируется порог DRC (Dynamic Range Compression) — управления динамическим диапазоном звука, то есть разницей между самыми громкими и самыми тихими звуками.

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

Когда мы достигли объективно хорошего результата, начинаются субъективные пользовательские прослушивания с поиском точек роста для звучания умного телевизора. В тестах используется абсолютно разный контент, который обеспечивает разные типы нагрузки на блок Farfield. Поэтому команда наизусть выучила трек Eminem — Mockingbird — и фильм «Пчеловод». После каждого обновления настроек мы вновь измеряем THD и тестируем споттер, чтобы убедиться, что всё в порядке.

В линейку умных телевизоров Sber входит несколько диагоналей — 43", 50", 55", 65". При одинаковой архитектуре (и спикеры, и блок Farfield находятся внизу) в них встроены разные динамики и отличается механика корпуса. Следовательно, некоторые физические артефакты появляются в разных местах и на разных частотах. Часть настроек общая, а часть приходится подбирать индивидуально. У каждой диагонали — своя характеристика звука. 

Голосовое управление в сторонних приложениях  

Раньше в интерфейсе умных телевизоров Sber действовали только простые навигационные команды — вверх, вниз, влево, вправо, нажми. Понятная система, но не всегда удобная. Эти команды обрабатываются глобально в системном сервисе без информации о приложении. С бэкенда приходит ответ NAVIGATION_COMMAND {direction: UP} — система через Instrumentation.sendSyncKeyEvent() отправляет событие, равное нажатию на физическую кнопку пульта. 

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

Достаточно произнести «Салют, игра престолов, пятая серия», и обложка нажмётся сама.

Сторонние разработчики могут сами заложить в своё приложение для Салют ТВ управление голосом. Эта фича реализована с помощью item_selector. Но на телевизорах без технологии Farfield о��а не нужна, поэтому разработчики редко её использовали (хотя она есть в приложениях экосистемы Сбер — Okko, Самокат и других).  

Для управления в сторонних приложениях мы реализовали голосовое управление для всех приложений — так называемый vc_item_selector. Наш сервис VoiceControl по сути парсит интерфейс стороннего приложения и передаёт эту информацию ассистенту в умном телевизоре. Когда пользователь произнёс запрос, после распознавания тот попадает в пайплайн обработки запроса. Первый из них — Intent Recognizer; цепочка небольших фильтров для сортировки запроса.  

vc_item_selector для голосового управления в приложении — один из первых элементов NLP-платформы Intent Recognizer, куда попадают все запросы пользователя. Здесь один за другим идут два элемента: обычный item_selector на случай, если разработчик сам реализовал в приложении голосовое управление, потом уже vc_item_selector. 

Происходит лемматизация запроса, так же, как и лемматизация элементов интерфейса. Сравнение идёт по бинарному принципу.

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

Громче, ещё громче. Новые умные телевизоры Sber с голосовым управлением — технологией Farfield - 3

Соответственно это реализовано в коде.

{
“item_selector”: [
{
“title”: <смотреть трейлер>,
“aliases”: [“8,6”]
}
]
}

Отметим, что эту задачу можно было решить без сжатия дерева: обойти все View, собрав все тексты и их координаты, и передать их в item_selector — когда один триггернулся, кликаем по его координатам. Это решение обеспечивает ту же скорость навигации, но в нём есть минусы. Во-первых, координаты тексты могут измениться, пока обрабатывается запрос. Во-вторых, они могут оказаться за пределами кликабельной зоны. Первый подход с сжатием дерева лишён этих недостатков. Кроме того, такая компоновка обещает нам больше возможностей в будущем.

Итак, у нас есть лемматизированный запрос пользователя, есть view. Если произошёл мэтч, ассистент сообщает сервису Voice Control, что необходимо кликнуть на конкретный элемент интерфейса. Готово!

GigaChat в умном телевизоре

Ещё одна новая фича — это переход части возможностей умных телевизоров Sber под контроль ИИ-помощника ГигаЧат. Ранее мы переадресовали к ГигаЧату часть запросов к умным колонкам, а теперь и к телевизорам. Напомним, как в целом происходит обработка запроса к умному устройству Sber:

Громче, ещё громче. Новые умные телевизоры Sber с голосовым управлением — технологией Farfield - 4

После ASP запрос попадает в Intent Recognizer, где проходит серию фильтров. Фильтры могут, например, распределить запрос в навык (такой запрос не попадает в ГигаЧат вовсе). Или повесить на него какой-то флаг.  

Если запрос не принадлежит ни к одному из навыков, он попадает в пространство GigaNLP. Ранжировщик определяет список функции, которые потенциально понадобятся ИИ-помощнику для выполнения запроса. Функции описаны в формате JSON-схем. ГигаЧат выбирает из списка и вызывает нужную функцию, а если требуется, формирует ответ для пользователя.

У пайплайна обработки запроса в умном телевизоре Sber есть два ключевых отличия от пайплайна умной колонки. Дело в том, что ТВ имеет дело с куда большим количеством типов контента и сервисов, чем колонка. Это телепередачи, фильмы и сериалы, видео, музыка, подкасты, радио; их можно включать в онлайн-кинотеатрах, видеосервисах, просто в браузере… Поэтому в пайплайне запроса в ТВ мы реализовали две большие доработки. 

Во-первых, потребовалось расширить классификатор популярного контента в Intent Recognizer. Если в колонках он распространяется только на музыку, то в ТВ — на все типы ко��тента. Этот классификатор позволяет «подсветить» для ГигаЧата, о чём речь. Например, выходит сериал «Король и шут» — становится больше запросов сериала — мы добавляем его в список для классификатора (на грамматиках). Таким образом, вместе с распознанным интентом пользователя ГигаЧат получает название классификатора и значение флага — true или false.

Во-вторых, вместо отдельных JSON-функций для музыки, радио и проч. ИИ-помощник вызывает функцию-фасад FindContent. Она принимает решение, какой пользовательский сценарий будет обработан. Решение Find Content принимает с опорой на:

  • внутреннюю классификацию ТВ-каналов (если найден канал — запускаем ТВ);

  • значения флагов классификаторов популярного видео и популярной музыки;

  • запущенное сейчас на экране приложение (так, если открыт RuTube, музыкальные запросы будут открываться в нём);

  • есть ли в запросе ключевое слово. Например, если присутствует упоминание трека/группы/ радиостанции, запрос переадресуется в музыкальный навык, который обернёт свой ответ под требования функции FindContent. Если упоминается сериал, клип или фильм — в видео. 

  • запрошен ли конкретный источник фильма или сериала. Так, интент «Запусти фильм „Пчеловод“ в ОККО» и «запусти фильм «Пчеловод» будут обрабатываться по-разному. В первом случае контент запустится бесшовно, во втором пользователь увидит карточку фильма и доступные кинотеатры.

Словом, основные сценарии Find Content — запуск ТВ-передач, запуск видео-контента, поиск контента по всем контент-вертикалям или в конкретном источнике, делегация музыкальных запросов в соответствующий навык, поиск в интернете. 

Ещё одна JSON-функция отвечает за программу телепередач. Для подключённых по кабелю умных ТВ — например, на даче — она работает с опорой на контекст: не обязательно уточнять, программа на каком канале вас интересует. Можно задать спросить «Что я смотрю?», «Что будет в 19:00 на этом канале?». ГигаЧат ответит с учётом информации о включённом сейчас на телевизоре канале.

Заключение

Мы знаем, что умные телевизоры — самая понятная для потребителя категория устройств. А это значит, что они начинают знакомиться с умными девайсами именно через эту категорию. Кроме фич, о которых мы рассказали выше, умный телевизор Sber оснащён no screen режимом: с выключенным экраном он работает как умная колонка — ставит музыку, отвечает на запросы о погоде, управляет умным домом. 32 Гб встроенной памяти позволяют установить любые нужные .apk, три HMDI-ввода — подключить Playstation и саундбар. Чем больше возможностей предоставляет умный телевизор, тем более универсально и удобно устройство — а значит, с ним пользователю проще привыкнуть к умному. 

В подготовке статьи участвовали: Сергей Стилик, Михаил Макаров, Артём Султан, Александр Кудинов, Алексей Терентьев, Антон Трещин, Грайр Марухян

Автор: valentina-p

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js