Салют, Хабр!

Сегодня мы представили новые умные телевизоры 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, и тем, что воспроизведётся, речь будет очищена плохо, и споттер не «услышит» ключевое слово.

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

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

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

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

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

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

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

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

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

После 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 и саундбар. Чем больше возможностей предоставляет умный телевизор, тем более универсально и удобно устройство — а значит, с ним пользователю проще привыкнуть к умному. 

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

Комментарии (14)


  1. KbRadar
    19.11.2025 15:31

    Много ли людей согласится заменить удобное и надёжное управление с пульта на постоянно работающие в доме микрофоны?


    1. uuger
      19.11.2025 15:31

      есть же полно людей, которые предпочитают три минуты препираться с "алисой", вместо того, чтобы найти конкретную песню в spotify/apple music


  1. anonymous
    19.11.2025 15:31


    1. Astus
      19.11.2025 15:31

      Любители голосовых сообщений должны быть в восторге.


  1. wizpnz
    19.11.2025 15:31

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


  1. anonymous
    19.11.2025 15:31


  1. anonymous
    19.11.2025 15:31


  1. Verona90210
    19.11.2025 15:31

    Шёпот шёпотом, а ближнее поле всё равно никто не отменял. Интересно, как это будет работать, когда рядом ещё одна такая же коробка орёт


  1. journalisto
    19.11.2025 15:31

    У меня предыдущая версия с пультом и одна особенность была совершенно дикая. Месяц не работали на Сбер девайсе приложения ОККО и Кинопоиск. Обращался и к сбер ассисту и на почту писал и вообще ноль реакций. И вот если даже с пультом не смогли ничего сделать то как быть когда вообще без пульта?


  1. DanilaMihailovich
    19.11.2025 15:31

    А если просто разговаривать в доме с человеком, он будет каналы переключать сам? Лучше работать над оптимизацией.


    1. Evgenym
      19.11.2025 15:31

      Тогда можно будет пригрозить телевизору расстрелом и он будет работать на пределе возможностей.

      Машина начинает работать на пределе возможностей, заявил банковский деятель. Также она начнет работать лучше, если пригрозить расстрелом, добавил господин Греф. «Удивительные вещи!»,— отметил он

      Извините, не смог удержаться.

      Когда вижу рядом слова "ИИ", "Сбер" или "Греф", то сразу вспоминаю эту чудесную цитату.


  1. Evgenym
    19.11.2025 15:31

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

    https://habr.com/ru/news/797823/


    1. alpaca
      19.11.2025 15:31

      Ужасная история.


  1. achekalin
    19.11.2025 15:31

    Скажите, а сколько из ваших телевизоров (где под капотом в качестве прошивки Android, верно?), имеют хотя бы 4 Гб (а лучше - больше) ОЗУ?

    Т.е. ОЗУ нынче стоит копейки, и даже в китайских телефонах по 4 Гб прямо совсем не проблема найти, а в телевизорах всерьез продается по 1.5 Гб (!!!), которые "забиваются" прямо влегкую.

    Уточню: наверное, в паре топовых ваши телевизорах и есть памяти, как в десятилетней давности топовом телефоне, но вот в моделях в стиле "поставить в спальню/на кухню" (на кухне, кстати, управление голосом порой востребовано) - там тупо глушняк, 1.5-2 Гб и радуйся, что у тебя деньги взяли.

    Я понимаю, что чатгпт гигачат развивается, но качество работы самого оборудования он никак не улучшит. А купить в 2025 году аппарат, который будет тупить как мой десятилетний телефон - мне идея не нравится. Понимаю так, Сбер за качество работы (и вообще непозорную работу) постыдится взять на себя ответственность?