Як розповів Халед Елтохі на Reddit, весь програмний код був розроблений за допомогою Claude Code: командний інтерфейс CLI writ, пайплайн для стрімінгу, система персоналій для ведучих, генератори контенту та парсер розкладу.
Читайте также: Нова позначка в «Резерв+» унеможливлює бронювання. Як перевірити
Технологічний стек: Python, ffmpeg, Icecast, Claude CLI для сценаріїв, Kokoro TTS для озвучення, ACE-Step для створення музичних заставок за допомогою ШІ. Працює на Mac Mini.
Як працює WRIT-FM
Через Claude CLI створюється кожне слово, що звучить в ефірі. Станція має 5 унікальних ШІ-ведучих: The Liminal Operator (нічна філософія), Dr. Resonance (історія музики), Nyx (нічні роздуми), Signal (аналіз новин) та Ember (соул/фанк). Кожен із них має визначену ідентичність, стиль голосу, філософію та чіткі «антипатерни» (фрази чи теми, які вони ніколи б не сказали).
Система генерує сценарії обсягом 1500–3000 слів для 7 типів сегментів: глибокі аналітичні розбори, симульовані інтерв’ю, панельні дискусії (дебати між двома ШІ-ведучими), аналіз новин (на основі реальних RSS-стрічок), історії, музичні есеї та рубрики з листами слухачів.
Kokoro TTS синтезує аудіо зі сценаріїв, розбиваючи довгі фрагменти за межами речень та об’єднуючи їх за допомогою ffmpeg.
У щотижневому розкладі представлено 8 різних шоу, і Claude пише сценарії для кожного з них, адаптуючи тон, фокус на темах та манеру мовлення під кожного окремого ведучого. Новинне шоу використовує реальні заголовки з RSS-стрічок, які Claude інтерпретує крізь призму нічного ефіру, а не просто переказує їх.
Читайте также: «росія посипеться за кілька днів»: Денис Штілерман закликав до морської блокади та знищення нафтового експорту рф
Модуль мовлення (stream_gapless.py) працює виключно на евристиках — без участі ШІ під час ефіру. Він визначає активне шоу через пошук у файлі, відтворює розмовні блоки з черги відповідного шоу, вставляє між ними згенеровані ШІ музичні заставки (ACE-Step) і видаляє сегменти після програвання.
Скрипти-демони відстежують кількість сегментів і запускають генерацію, коли запаси падають нижче порогового значення. Історія відтворень у SQLite запобігає повторам протягом 4-годинного вікна.
Висновки
«Ключовим архітектурним рішенням стала відмова від використання ШІ безпосередньо в циклі виконання (runtime). Попередня генерація контенту в черги файлової системи, які потім споживає стрімер, гарантує, що ефір ніколи не зупиниться в очікуванні відповіді від API. Також виявилося, що „антипатерни“ персонажів (чіткі списки того, чого ведучий НІКОЛИ не повинен робити) важать більше для стабільності образу, ніж позитивні інструкції», — поділився висновками розробник.
Радіостанція доступна WRIT-FM за посиланням. Також ознайомитися з проєктом можна на GitHub.
Читайте также: Міноборони допустило до використання систему Droid Box, яку вже інтегрували в понад 1000 НРК
