Как я генерю подкасты с помощью ИИ и их даже кто-то слушает

 Публичный пост
16 февраля 2024  1242
ОХУЕННО

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

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

Собираю технологии и техники

Мое увлечение началось в марте прошлого года. Сначала я погрузился в мир prompt engineering, стремясь улучшить качество моих англоязычных постов. Затем я перешел к экспериментам с OpenAI API и LangChain, следя за каждым их обновлением и новостью в блогах. Это было реально очень естественно и легко. Мой респект обоим сервисам.

В какой-то момент отец рассказал как он подтягивает английский для поездки в Великобританию и просит Google Translate озвучить текст. На тот момент их синтезатор речи звучал жутковато. Это заставило меня задуматься о возможностях ИИ в генерации голоса. Неужели ИИ, способный создавать тексты, изображения и видео, не может качественно синтезировать голос? Оказалось, что может! После нескольких сервисов я остановился на ElevenLabs.

ElevenLabs (попиарю, можно скипануть)

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

  • Пол (мужской, женский)
  • Возраст (молодой, средний, пожилой)
  • Акцент (американский, британский, африканский, австралийский, индийский, иногда случайно можно получить грузинский).
  • Сила акцента (спектр от низкого до высокого)
  • Эмоции (Ха-ха, Ммм и т. д.)
  • Prompts
  • Украинская (!) озвучка

В общем, я доволен и рекомендую этот сервис всем, кто интересуется text-to-speech. Ребята очень постарались. (Скрестим пальцы в ожидании поддержки беларуского языка — я написал им запрос.)

Собираю Идею

Expresso Today
Expresso Today

К лету 2023 года у меня были все основные наработки для создания подкастов. Но мне не хватало той последней творческой искры — пока я не услышал один из эпизодов Latent Space. Тогда у меня возникла идея: а что, если генерировать подкаст из рассылки с помощью искусственного интеллекта?

Для справки, моя жена Оли Морозова ведет рассылку Expresso Today. Это не просто дайджест новостей, а яркий коллаж субъективности, иронии и юмора. Я его обожаю и всем рекомендую подписаться.

На самом деле, я очень доволен что Олин проект был первый, потому что у нее очень своеобразный подход к дизайну рассылки: очень много картинок, интересные подписи к ним, юмор, объявления в случайных частях и уникальное форматирование всего этого добра. Поэтому, обычные парсеры сразу были отправлены на полку и пришлось контекст разбирать с помощью ИИ.

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

Как все устроено

Триггер: каждый выпуск рассылки запускает пайплайн. Чтобы абстрагировать почтового провайдера и процесс реализации, я полагаюсь на API Nylas. В качесте платформы работы с данными использую Databricks.

Структурирование: используя модели OpenAI GPT-3.5 и GPT-4, неструктурированное содержимое рассылки организуется в связные сегменты — резюме, новости, рассказы, рекламу. Это требует структурированного вывода в json формате. (Я был очень рад, когда в последнем апдейте OpenAI улучшил качество такого вывода.)

Сценарий подкаста, перевод и стилизация: GPT-4 преобразует каждый блок в реплики подкаста для двух ведущих с плавными переходами от одной темы к другой. Переводом и стилизацией занимается модель GPT-3.5. Стили помогают не только придать контектсу окраску, но и делает модель более "поддатливой" для моих задач. Интересный факт, что работа со стилями пришла ко мне не сразу, а после разговора с фаундером capital.com Виктором Прокопеней, который собственно и предложил поиграться с этим.

Синтез речи: для этого я использую синтезатор речи ElevenLabs.

Распространение: последний этап — загрузка аудио на платформу transistor.fm, которая распространяет его по подкастинговым сервисам, вроде Spotify или Apple Podcasts.

Может непонятно, зато красиво
Может непонятно, зато красиво

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

Что получилось

Сейчас у меня уже три подкаста.

Статистика по прослушиваниям. Чистая органика, никакого маркетинга
Статистика по прослушиваниям. Чистая органика, никакого маркетинга

Тут цифры уже накручены маркетингом
Тут цифры уже накручены маркетингом

  • AI Aficionados Недавно запущенный подкаст про тренды в ИИ.

Что делать дальше?

Есть некоторые идеи. Но было бы здорово послушать и чужое мнение.

  • В рассылке Оли используется множество изображений, что делает идею применения мультимодальных моделей для распознавания контекста особенно привлекательной. Хотя с мемами сложно достичь значимых результатов, эксперимент стоит того.

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

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

  • По поводу продвижения подкастов: использование ИИ для создания постов в TikTok — перспективная идея. С помощью Content Posting API можно публиковать видео, созданное через модели Stable Diffusion. Это лишь первый шаг. В зависимости от контента подкаста можно генерировать истории и хэштеги, специально адаптированные под контекст выпуска.

Аватар Игорь Морозов
Игорь Морозов @ihar
ArchitectCapital.com
📍Лондон, Великобритания

Придумываю решения для финтех, увлекаюсь ИИ и генерирую подкасты.

linkedIn
ящик

15 комментариев 👇
🕵️ Юзер скрыл свои комментарии от публичного просмотра...
Сергей Драган Java-консультант, тимлид 15 февраля в 08:11

Я человек простой. Вижу упоминание Оли Морозовой - ставлю лайк.

  Развернуть 1 комментарий
Иван Бурнатов градостроительное проектирование 14 февраля в 12:20

Ух, звучит довольно кринжово

Но в принципе не сильно хуже передач по радио, когда ведущие друг друга перекрикивают, видимо за счет информационного наполнения

Похоже писакам популярной фикшн-литературы не долго осталось, пара лет и их заменит ИИ

  Развернуть 1 комментарий

@orbit, Спасибо за предвидение! Уверен, что когда-нибудь ИИ заменит и пророков.

В целом, когда-то люди считали, что радио тоже звучит кринжово по сравнению с живой музыкой. Времена меняются, это да.

  Развернуть 1 комментарий

Я пытался слушать этот подкаст после рекомендации у Оли в рассылке, и чет прям совсем какая-то долина крипоты была, не осилил. Хотя само техническое решение клевое и об этом интересно читать:)

  Развернуть 1 комментарий

Мы сейчас живём в обществе, где хорошие данные и идеи ценнее убитого мамонта. Некоторые идеи настолько хороши, что люди готовы запихивать тебе в глотку денег, чтобы ты с ними поделился. Взять, например, книги про Гарри Поттера, Акунина или Игру Престолов. Некоторые идеи - так себе.

Хорошие подкасты/ТГ каналы или тиктоки взлетают благодаря тому, что в них есть идея и исполнение. Идея не обязательно должна быть сложной.

Ну так вот, эта самая идея - это вещь достаточно удивительная. Если ты сам придумал сказку про Шестилапую Электрическую Кошку и Дракона, но при этом никому про эту сказку не рассказал, то эта сказка существует только у тебя в голове, и никто никогда про неё не узнает. Как и ГПТ не сможет рассказать эту сказку, ведь генератор не подключен к твоему сознанию, и не видит того, о чём ты думаешь. А если ты возьмёшь и напишешь/расскажешь/запишешь аудиокнигу, то твоя идея появится у других людей. И некоторые будут готовы тебе платить за неё.

Это то, что генеративные системы делать не могут. У ChatGPT есть большой набор данных. Из этого набора эта штука выбирает себе следующее слово. Да, несомненно, ГПТ ответит на вопрос “придумай сказку”. Но сказка эта будет ну совсем уже не новой. А зачастую - скатится в крипоту. Как во сне после пол-бутылки водки. Тебе захочется пойти и найти гуся, чтобы опорожнить в корыто пальто для лошади. Выглядит, как что-то осмысленное, но по факту никакущее и блёклое. (Тут надо оговорится, что так как через ГПТ прогнали много данных, то выглядит так, что он придумывает новые вещи, хотя на самом деле, просто рекомбинирует уже существующие).

Прикол в том, что ГПТ может очень хорошо помочь с исполнением. Подправить стиль, подтянуть ошибки, перевести на другой язык. Когда ты создал основную идею и описал её боту, то тот может тебе нагенерить гигабайты текста. Только любой, кто писал что-то в “соавторстве с гпт” прекрасно знает, что надо постоянно держать бота в узде. Он через два-три предложения начинает уходить не туда.

И чем лушче ты описываешь ГПТ свою идею, тем лучше он будет генерить контент. Тебе самому надо придумать всю историю, от начала до конца. А уже потом можно будет пихать всё это в ГПТ, и просить его переписать, допилить или доделать. И даже в этом случае, твой текст будет усеян различными ненужными словами и оборотами, да и стиль превратится в “разговаривающего робота” вместо “интересного рассказа”.

У вас как раз и получилось очень хорошо в данном случае использовать ГПТ как инструмент. Одна пишет статьи - другой генерирует их в ГПТ. Проблема с шутками - как раз и заключается в том, что Олины идеи (конкретная шутка) оказываются “размазанными” по тексту. Я бы рекомендовал ручную правку. Потому что эти шутки - это и есть идея автора. Просто брать текст сгенерированной статьи и править руками небольшие вещи, например, ту же шутку про церковь. А вещи побольше - можно просто заставлять переписывать с уточнениями, пока не будет более менее похоже на правду.

А что касается вот этой конкретно части:

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

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

И, у тебя переводчиком работает 3.5. Я, если честно, из 4.0 не смог выжать хороших переводов. Несмотря на то, что переводил с русского на английский, текст получался нечитаемым. В основном потому, что ГПТ не мог справится с эпитетами и смысловой нагрузкой оригинала.

А так - эй! Поздравляю! У тебя есть слушатели. Причём, относительно не мало. Ты не пошёл по пути 90% идиотов на хабре, которые просто пишут в ГПТ "Напеши статью для Хабра, и вставь ссылку на мой ТГ канал". Мне кажется, что чем больше ты будешь корпеть над нагенерированным текстом и чем больше ты его будешь править ручками, тем лучше и интереснее будет подкаст.

  Развернуть 1 комментарий
Roman Ventskus Конвертирую кофе в код 15 февраля в 21:26

Спасибо за офигенный пост! :)

А для чего использовал Databricks? Он предоставляет удобный инструментарий для пайплайнов с chagtpt?

И если решишь написать отдельный пост с более детальным обзором архитектуры, кодом, промптами - будет вообще бомба

  Развернуть 1 комментарий

Пост навеял воспоминания о 2018г, когда я уволился с работы, чтобы делать "стартап" на пару с бывшим коллегой. Проект назывался "Voizzy".

Суть такова: мобильное приложение с подписками на каналы. Каналами являлись популярные новостные сайты типа TechCrunch или Медузы. Но их не нужно было читать, потому что статьи с сайтов были озвучены TTS от Amazon и Yandex. Так что это было что-то вроде маленькой платформы с подкастами.

Voizzy, 2018
Voizzy, 2018

Также можно было сделать свой канал прямо в Voizzy, слушать самому и давать слушать другим. Редактор статей был внутри приложения и в нём была вторая главная фича – копирование ссылки на текстовый контент. Бэкенд сначала сверялся с базой, если такая ссылка уже была, то предлагалось сделать репост. Если это новый контент, то он озвучивался на лету.

Новая запись в канал
Новая запись в канал

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

Мы выпустили релиз под iOS и Android и не придумали, что делать дальше. Такой вот стартап.

Больше технических подробностей от кофаундера тут.

  Развернуть 1 комментарий

Классная статья! Здорово придумал.
Послушал сгенерированый подкаст (не целиком, пару минут). Очень ухо резанула интонация ИИ.. понятное дело, что все это уйдёт в будущем с допиливанием библиотеки, но в этой итерации очень сложно слушать. Она каждое предложение заканчивает с одинаковым придыханием что ли.. ну кто слушал - тот поймёт. Но конечно огромный разлёт с тем что умела "гугл баба" лет пять назад.

  Развернуть 1 комментарий

@FedorChe, Спасибо! Первые пару минут - это вступление, где перечисляются все темы, по возможности с юмором, но обычно очень сухо. Я недавно начал смотреть курсы по подкастам и, оказалось, очень важно сделать первые секунды очень захватывающими внимание (спасибо кэп:).
Это в планах, так как на самом деле интонации очень классные бывают, только их надо правильно готовить. А это, собственно, и сама задача, где цепочка ИИ последовательно готовит материал в наиболее подходящем виде. Если послушать дольше и на разных языках, это можно легко уловить.

  Развернуть 1 комментарий
Evgeniy Petukhov Фулл-стек TypeScript разработчик 16 февраля в 17:32

Не в тему поста (он охуенный), но подумалось:

Чем больше "успехов" делает ИИ в области креатива, тем кринжовее и отвратительнее становится результат.

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

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

  Развернуть 1 комментарий

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб