Read in Other Languages
В путь — вместе с искусственным интеллектом, от Китченер-Ватерлоо до Оттавы
Это была не обычная поездка. Руль был в моих руках, а взгляд — на дороге; но всю трансляцию от начала и до конца собрал и вёл искусственный интеллект. Я лишь отдавал команды голосом — а он превращал их в реальность. Ниже вы прочтёте всё, что мы пережили, как историю одного путешествия, а при желании заглянете внутрь раскрывающихся блоков и найдёте техническую механику, скрытую за кулисами.
🚗 Утро, первая команда
Утром мы выехали из Китченер-Ватерлоо, держа курс на Оттаву. Ещё не тронувшись с места, я попросил его подготовить сегодняшнюю трансляцию: новости дня, прогноз погоды, маршрут… Я отдал голосовую команду — остальное он сделал сам. Через несколько минут на экране уже бежали субтитры на семи языках, на боковой панели проступали заголовки дня, а вступительная речь, озвученная моим собственным клонированным голосом, ждала своего часа.
Тут же случилась и первая неожиданность: подготовленный им звук воспроизводился на моём компьютере, но в эфир не уходил. Я-то думал: «всё, идёт»; а он сказал: «то, что я слышу звук, ещё не значит, что он ушёл в эфир» — и проверил, как обстоит дело на самом деле. Оказалось, звук действительно не доходил, и он это исправил.
- Субтитры и боковая панель были заполнены контентом дня на 7 языках (TR·EN·FR·DE·ES·RU·HI): маршрут, погода, повестка дня.
- Вступительная речь была сгенерирована клонированным голосом (локальный XTTS).
- Было замечено, что звук не уходит в эфир: в OBS отсутствовал источник, захватывающий системный звук. На сцену был добавлен браузерный источник
Ses, а факт того, что звук пошёл в эфир, был подтверждён по индикатору уровня (meter) в OBS — ограничиваться словами «я слышу» не стали. - Озвучка была сгенерирована на 7 языках; сначала бесплатными системными голосами, затем — качественным ElevenLabs, с отдельным голосом для каждого языка.
- Во время речи музыка автоматически приглушалась, а по её окончании возвращалась к прежней громкости; каждый шаг проверялся по индикатору уровня.
- Сгенерированные аудиозаписи были заархивированы; на панели была создана страница библиотеки контента.
📡 Одна палочка сигнала
Мы вышли в эфир и поехали дальше. По мере надобности готовились новые сводки; второй выпуск был обновлён ещё до того, как мы тронулись. А там и интернет начал нас испытывать. На хайвее связь то падала, то возвращалась; мы свернули на стоянку и сделали привал. Затем снова двинулись в путь и въехали в глубинку — а с ней начались и её беды: одна палочка сигнала, то и дело обрывающаяся связь, а порой и полностью мёртвые зоны.
В дороге я снова отдавал голосовые команды; он следил за системой. Вместе мы увидели одну важную истину: когда мне казалось, что «трансляция оборвалась», чаще всего обрывался интернет на моём телефоне — а сам эфир на деле продолжался. Правду говорил не мой глаз, а его проверка через YouTube.
- Найдена настройка, убивавшая трансляцию: эфир на YouTube запускался с параметром
enableAutoStop=true— обрыв в несколько секунд полностью завершал трансляцию, и ссылка становилась мёртвой. - Один случай был разобран в цифрах: ~4-минутный реальный обрыв интернета из-за автостопа и ручного восстановления обернулся 16-минутным затемнением эфира.
- Автоматическая остановка была отключена (как в момент прямого эфира, так и в значениях панели по умолчанию) → теперь обрыв не убивает трансляцию, а она продолжается по той же ссылке с того места, где прервалась.
- Качество было снижено под условия глубинки: 360p + динамический битрейт; переподключение ускорено; благодаря буферу задержки эфира в 90 сек короткие обрывы скрывались от зрителя.
- Выведен критически важный принцип: восстановление должно быть локальным и автономным — оно не должно зависеть от меня через интернет, ведь при обрыве связь со мной обрывается тоже.
⛽ На этот раз эфир запустил я
В глубинке я остановился на заправке. Тем временем он готовил третью трансляцию — и на этот раз мы поменяли формат: вместо того чтобы выстроить всё единым потоком, мы сделали радиоформат, в котором между озвучками на разных языках вплетается музыка. И самое прекрасное: на этот раз эфир запустил я, а он сам продолжил с того места, где остановился — мне не пришлось говорить «начинай», система сама заметила старт и сама пустила контент в эфир. Так, шаг за шагом, мы двигались к Оттаве; обрывы случались и теперь, но трансляция уже восстанавливалась сама.
- На панели был обнаружен уже существовавший механизм
auto_recover: если стрим неожиданно падает, панель сама его перезапускает — локально, без моего участия. - Важное различие: намеренную остановку следует выполнять со стороны самой панели, чтобы система не приняла её за «падение» и не запустила эфир заново.
- Стандарты отказоустойчивости были намертво вшиты в профиль OBS → даже без меня и даже при ручном запуске действуют те же правила.
- Был настроен наблюдатель автономного запуска: как только эфир переходит в состояние «активен + основная сцена», контент запускается сам собой.
- Формат с вплетением: музыка ↔ озвучка на 7 языках + специальное видео о Кингстоне; субтитры и боковая панель всегда синхронны с языком, на котором идёт речь.
На протяжении целого дня человек и искусственный интеллект, в дороге, разговаривая голосом, вместе выпускали трансляцию. Я задавал направление — он строил; я уставал — он держался на ногах. От Китченер-Ватерлоо до Оттавы — и мы всё ещё в пути.
📺 Сегодняшние трансляции: единым списком (плейлист) — утром прямая поездка Driver & Dasher, днём и вечером выпуски новостей DunDem News.