Разное

Глючит ютуб в яндекс браузере: YouTube глючит и лагает в Yandex браузере: причины и способы устранения неисправности

23.07.2023

как он устроен и чем отличается от перевода обычных видео / Хабр

Осенью прошлого года мы рассказали читателям Хабра, как работает голосовой перевод видео в Яндекс Браузере. За первые десять месяцев пользователи посмотрели видеоролики с закадровым переводом 81 миллион раз. Механизм действует по запросу: нейросеть получает аудиодорожку целиком, а звук на понятном пользователю языке появляется с задержкой в пару минут.

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

Чтобы всё заработало, перезапустите Яндекс Браузер. Анонсы новых устройств, спортивные соревнования, вдохновляющие космические запуски — этот и другой контент теперь можно смотреть сразу на родном языке. Закадровый голосовой перевод сейчас доступен для некоторых каналов на YouTube, а в будущем, конечно, включить дубляж можно будет в любой YouTube-трансляции. Чтобы адаптировать механизм перевода для стримов, потребовалось переработать всю архитектуру.

Как работает потоковый перевод

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

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

Если очень коротко описывать принцип работы потокового перевода, то в его основе лежат пять моделей. Одна нейросеть распознает аудиодорожку и превращает её в текст. Вторая определяет пол спикеров, третья нарезает текст на предложения — расставляет знаки препинания и выделяет из текста части, содержащие законченную мысль.

Четвёртая нейросеть переводит полученные куски, а пятая синтезирует речь.

Выглядит просто, но внутри много подводных камней. Рассмотрим процесс подробнее.

Из чего состоит потоковый перевод в Браузере

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

Задача распознавания речи (ASR, Automated Speech Recognition) отлично решается с использованием глубоких нейронных сетей. Архитектура нейросети должна допускать потоковый сценарий использования, то есть уметь обрабатывать аудио по мере поступления. Такое ограничение может сказаться на точности предсказания, но мы можем позволить модели смотреть на несколько секунд в будущее.

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

На вход алгоритм получает последовательность кусочков аудио, берёт последние N из них, извлекает акустические признаки (мел-спектрограмму) и подает на вход нейросети. Она, в свою очередь, выдаёт множество последовательностей слов (так называемых гипотез), из которых языковая модель выбирает наиболее правдоподобную гипотезу. Когда приходит новый кусочек аудио, процесс повторяется.

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

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

На вход нейросети текст поступает в токенизированном виде, как правило, это BPE-токены. Такое разбиение не слишком мелкое, чтобы длина последовательности не сильно увеличилась, но и не слишком крупное, чтобы избежать проблемы out-of-vocabulary — когда токена нет в словаре. На выходе модели после каждого слова метка: ставить ли тот или иной символ пунктуации.

Чтобы обеспечить работу в потоке, нужно задать некоторый ограниченный контекст. Его размер — компромисс между качеством и задержкой. Если мы не уверены, нужно ли разбивать на предложения в данном месте, то можем подождать чуть дольше, пока не придут новые слова. Тогда мы либо лучше определимся с разбиением, либо превысим ограничение по контексту и будем вынуждены разбивать там, где почти уверены.

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

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

В прошлом году мы также рассказывали, как устроен речевой синтез Яндекса. Базовая технология синтеза в Алисе и переводе видео одна и та же. Разница в том, как осуществляется применение (inference) этих нейросетей. Спикер на видео может произнести реплику очень быстро или перевод предложения может оказаться в два раза длиннее оригинала.
В таком случае придётся сжать синтезированное аудио, чтобы успеть в тайминг. Это можно сделать двумя способами: на уровне звуковой волны, например, при помощи PSOLA (Pitch Synchronous Overlap and Add) или внутри нейросети. При втором способе речь звучит натуральнее, но для этого нужна возможность редактирования скрытых параметров.

Важно не только привести длительности синтезированных фраз к нужной длине, но и разложить их по нужным моментам времени. Идеально получится не всегда, придётся либо ускорить запись, либо сдвинуть тайминги. За это у нас отвечает алгоритм укладки. В переводе стримов нельзя менять прошлое, поэтому может получиться ситуация, когда нужно озвучить фразу в два раза быстрее, чем она произносится в оригинальном видео. Для справки: ускорение более чем на 30% существенно влияет на восприятие.

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

Результирующую аудиодорожку нарезаем на фрагменты и оборачиваем в аудиострим, который будет микшироваться на клиенте браузера.

Как архитектурно устроен сервис потокового перевода


Когда вы смотрите трансляцию, браузер опрашивает сервис стриминга (например, YouTube) на предмет новых фрагментов видео и аудио; если такие есть, он их скачивает, а затем последовательно воспроизводит.

Когда пользователь нажимает на кнопку перевода стрима, Яндекс Браузер запрашивает у своего бэкенда ссылку на стрим с переведенной аудиодорожкой. Эту дорожку Браузер накладывает по таймингам поверх основной.

В отличие от video-on-demand (то есть перевода уже готовых роликов), стрим обрабатывается переводом всё время своего существования. Stream Downloader читает аудиопоток и отправляет его в ML-pipeline обработки, компоненты которого мы разобрали выше.

Есть несколько способов организовать взаимодействие между компонентами. Мы остановились на варианте с очередями сообщений, где каждый компонент оформлен в виде отдельного сервиса:

  • Запустить все модели в рамках одной машины проблематично — они просто не уместятся по памяти или потребуют очень специфичную конфигурацию железа.
  • Требуется балансировать нагрузку и иметь возможность горизонтально масштабироваться. Например, у сервисов перевода и синтеза различные пропускные способности, поэтому количество реплик может быть разное.
  • Сервисы иногда падают (out-of-memory на GPU, утечка памяти или просто отключили питание в дата-центре), и очереди предоставляют механизм retry.
Стрим не привязан к отдельно взятому инстансу, но для обработки может потребоваться некий контекст (предыстория). Например, синтезу нужно хранить записи, которые он ещё не уложил на финальную аудиодорожку. Отсюда возникает необходимость в глобальном хранилище контекстов для всех стримов. На схеме он обозначен как Global Context — по сути, это просто in-memory key-value storage.

Полученный аудиопоток нужно доставить пользователю. Здесь за дело берётся Stream Sender — он оборачивает фрагменты аудио в стриминговый протокол, и клиент читает этот стрим по ссылке.

Что дальше

Сейчас мы отдаём потоковый перевод со средней задержкой 30-50 секунд. Иногда вылетаем за этот диапазон, но не сильно: стандартное отклонение — примерно 5 секунд.

Основная сложность в переводе стримов — гарантировать стабильность задержки. Простой пример: вы запустили стрим и через 15 секунд начали получать перевод. Если продолжать просмотр, то рано или поздно одна из моделей захочет большего контекста — скажем, если спикер произносит длинное предложение без пауз, нейросеть попробует получить его целиком. Тогда задержка увеличится, возможно, на десять дополнительных секунд. Чтобы такого не происходило, лучше на старте дать чуть большую задержку.

Наша глобальная задача — уменьшить задержку примерно до 15 секунд. Это чуть больше, чем при синхронном переводе, но достаточно для стримов, где ведущие общаются с аудиторией — например, в Twitch.

Почему тормозит видео в Яндекс Браузере и как это исправить

Июль 29th, 2019 Екатерина Васильева

Приятно смотреть потоковое видео в интернете, когда нет пауз и торможений. Но как только начинаются частые прерывания, мы вспоминаем, какие на самом деле мы бываем нервными. Всё поправимо — нужно лишь найти причину и обезвредить её. Что можно сделать, к примеру, в «Яндекс.Браузере», расскажем.

Содержание

  • 1 Почему тормозит видео в «Яндекс.Браузере» и как это исправить

    • 1.1 Проверяем видео в других обозревателях

    • 1.2 Закрываем ненужные вкладки и завершаем процессы

    • 1.3 Уменьшаем качество видео

    • 1.4 Обновляем браузер

    • 1.5 Чистим кэш обозревателя

    • 1.6 Сброс настроек или переустановка

Причин может быть уйма. Расскажем поэтапно о самых распространённых, а также о решениях, которые вы можете применить здесь и сейчас.

Проверяем видео в других обозревателях

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

Если видео тормозит во всех браузерах, здесь уже виноват либо медленный интернет, либо система — ей может не хватать аппаратных ресурсов.

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

  1. Перейдите на Speedtest. Закройте все программы, которые потребляют трафика, например, менеджер загрузок для торрентов.
  2. Щёлкните по «Вперёд» и дождитесь завершения проверки — входящей и исходящей скорости.

    Запустите проверку скорости интернета

  3. Если результаты 1 Мбит/с и меньше, видео тормозит из-за интернета. Перепроверьте скорость ещё несколько раз — с помощью кнопки «Снова» или «Проверить ещё».

    Оцените результат проверки и запустите её ещё раз

  4. Если результат так и остался неудовлетворительным (он гораздо ниже того, что изначально предлагал провайдер), попробуйте перезагрузить роутер или проводное подключение (если кабель провайдера подключён у вас напрямую к ПК — достаньте его, а затем снова вставьте). Проверьте также все кабели на целостность.
  5. Если не помогло, обращайтесь в службу поддержки вашего провайдера. Возможно, сейчас линия компании перегружена или на ней ведутся ремонтные работы.

Если скорость хорошая, но видео на сайте всё равно тормозит, возможно, дело в сайте. К этому ресурсу, возможно, сейчас обращается слишком много пользователей. Чтобы проверить эту теорию, попробуйте посмотреть видео на другом сайте. Учтите, что эта теория не касается крупных ресурсов, к примеру, «Вконтакте» и «Ютуб».

Закрываем ненужные вкладки и завершаем процессы

Если в вашем «Яндекс.Браузере» открыта уйма вкладок, видео, конечно же, будет постоянно прерываться. Даже неактивная вкладка потребляет трафик интернета за счёт рекламных баннеров и других элементов сайта. Закройте все ненужные вкладки — проблема может решиться сама собой.

Если у вас запущенно на ПК много приложений (не только «Яндекс.Браузер») и системе не будет хватать аппаратных средств на обработку всех запросов (перегружен процессор, «оперативка» и т. д.), ПК в целом будет подтормаживать, выдавать ошибки. Видео тоже будет «лагать». Что в этом случае делаем:

  1. Закрываем вручную все ненужные программы. Если они не закрываются, идём в «Диспетчер задач»: кликните по «Панели задач» правой клавишей мышки — выберите диспетчер. Либо зажмите Ctrl + Alt + Delete — через синее меню откройте диспетчер.
  2. Обратите внимание на загруженность ЦП, «оперативки» и жёсткого диска. Если там показатели близятся к 100%, сразу снизьте нагрузку.

    Посмотрите, как загружен ваш ЦП

  3. Закройте ненужные программы в диспетчере. Для этого выберите правой кнопкой мышки по пункту программы. Затем кликните по «Снять задачу» или «Завершить процесс».

    Выберите «Завершить процесс»

  4. Можете сразу снять задачу и с «Яндекс.Браузера», а потом открыть его снова. Так браузер перезапустится и, возможно, начнёт нормально воспроизводить потоковое видео.
  5. Если аппаратные ресурсы сильно загружены, но при этом программ у вас открыто мало, возможно, дело в «мусоре», который накопился в системе. Почистите компьютер от него с помощью стандартного средства «Виндовс» «Очистка диска» либо через стороннюю программу CCleaner.

Уменьшаем качество видео

Если ваш интернет изначально не предназначен для просмотра видео в высоком качестве, например, вы пользуетесь мобильным интернетом через USB-модем от оператора, вам остаётся только снизить требования к потоковому видео. Это может быть также и вариантом временного решения проблемы, пока вы не определили причину торможения.

Чтобы уменьшить качество, найдите справа внизу окошка с видео обозначение качества — должно стоять число 360, 480, 720 или 1080. Может стоять не число, а иконка в виде шестерёнки, как в «Ютубе», например. Кликните по числу или шестерне и выберите более низкое качество, а затем посмотрите, как работает видео.

Выберите качество видео ниже

Обновляем браузер

Если оказалось, что виноват всё-таки «Яндекс.Браузер», проверьте, есть ли в сети обновления для него. Как это сделать:

  1. Кликните по значку меню (три горизонтальные полоски).
  2. Откройте пункт «Дополнительно». Щёлкните по строчке с информацией о браузере.

    В меню «Дополнительно» щёлкните по «О браузере»

  3. Обозреватель запустит вкладку, где будет указана текущая версия программы. Одновременно запустится поиск апдейта. Подождите, пока он закончится, а затем перезагрузите приложение.
  4. Если обновлений не будет, вы увидите сообщение о том, что вы используете актуальный вариант браузера.

    В итоге должна появиться надпись «Вы используете актуальную версию браузера»

Чистим кэш обозревателя

Если обновление ничего не дало, уберите все данные из кэша:

  1. В меню откройте раздел с настройками.
  2. Переключитесь сразу на системные параметры. В самом конце страницы щёлкните по очистке истории.

    В системных настройках выберите очистку

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

    Выберите нужные пункты для очистки

Сброс настроек или переустановка

Если и очистка ничего не дала, сбросьте настройки «Яндекс. Браузера». Для этого перейдите в настройки — в блок «Системные», как это было описано в предыдущем разделе. Только на этот раз кликните по «Сбросить настройки» и подтвердите действие. Сброс не затронет ваши закладки и установленные расширения — можете за них не переживать.

Крайняя мера — переустановка браузера. Сначала вам нужно его удалить с компьютера. Но перед удалением сохраните все свои закладки:

  1. В адресной строке перейдите на страницу browser://bookmarks. Кликните по трём точкам справа вверху на панели с закладки. Выберите пункт для экспорта.

    Выберите экспорт закладок в меню

  2. Выберите место для сохранения файла. Можно также синхронизировать все данные, включая пароль, закладки и дополнения, используя учётную запись «Яндекса», если, к примеру, у вас есть электронная почта от этой компании.
  3. Теперь для удаления используйте сторонний деинсталлятор, например, Revo Uninstaller, чтобы полностью почистить систему от файлов браузера. Скачайте бесплатную версию Freeware.

    Установите Revo Uninstaller на ПК и с помощью него удалите «Яндекс.Браузер»

  4. После удаления браузера перезагрузите ПК.
  5. Перейдите на официальный сайт «Яндекс.Браузера» и скачайте свежий дистрибутив для установки обозревателя. Запустите скачанный файл и начните инсталляцию.

    Загрузите заново установщик браузера

  6. Перейдите снова в панель с закладками. В меню уже выберите вместо экспорта импорт закладок. В «Проводнике» укажите на файл, который вы сохранили ранее перед удалением браузера.

Сначала проверьте, как прогружается видео в других браузерах. Если там всё хорошо, решайте проблему с «Яндекс.Браузером»: обновите его, почистите кэш, переустановите. Если видео тормозит во всех обозревателях на ПК, возможно, дело в медленном интернете. Перезапустите соединение, проверьте целостность кабелей. Если не помогло, обращайтесь к провайдеру.

  • Автор: Екатерина Васильева