Главная → Блог → Расшифровка подкаста: шоу-ноуты, главы и выпуски, которые находит поиск
Расшифровка подкаста: шоу-ноуты, главы и выпуски, которые находит поиск
Для поисковика звук невидим. Часовой выпуск, набитый экспертными ответами, приносит ровно столько же органического трафика, сколько пустая страница, — пока вы не опубликуете текст. Расшифровка заодно оказывается самым дешёвым источником шоу-ноутов, глав, цитат и постов для соцсетей.
Что расшифровка даёт подкасту
Один запрос на распознавание закрывает сразу четыре задачи:
- Органический поиск. Страница выпуска начинает выходить по вопросам, на которые отвечал гость, а не только по названию шоу.
- Доступность. Слушатели с нарушениями слуха и все, кто едет без наушников, могут прочитать вместо того, чтобы слушать.
- Переупаковка. Цитаты для соцсетей, сводка для рассылки и статья в блог получаются из одного и того же текста.
- Навигация. Главы с таймкодами позволяют сразу перейти к той части, ради которой человек пришёл.
Подготовка файла
Отправляйте выпущенную версию — сведённую и отмастеренную, а не исходные дорожки. Если она не влезает в лимит запроса в 25 МБ, пережмите отдельную копию только для распознавания:
ffmpeg -i episode-42.wav -ac 1 -ar 16000 -b:a 48k episode-42.mp3
Эта копия нужна только для расшифровки, поэтому потеря качества роли не играет: моно 16 кГц — то, с чем модель и так работает внутри.
Получаем текст с таймкодами
Запрашивайте verbose_json: возвращается и полный текст, и сегменты с временем начала и конца, а главы строятся именно из сегментов.
from openai import OpenAI
client = OpenAI(base_url="https://voicesscribe.com/v1", api_key="ваш ключ")
with open("episode-42.mp3", "rb") as f:
r = client.audio.transcriptions.create(
model="whisper-1", file=f,
response_format="verbose_json",
prompt="Гость: Мария Алварес, технический директор Nordwind Systems. Темы: наблюдаемость, OpenTelemetry, дежурства.",
)
open("episode-42.txt", "w", encoding="utf-8").write(r.text)
Имя гостя, компанию и главные термины кладите в prompt. Имена собственные общая модель путает первыми — и именно их люди набирают в поиске.
Собираем главы из сегментов
Главы — это всего лишь таймкоды с названиями. Сгруппируйте сегменты в блоки по несколько минут, а названия попросите у языковой модели:
blocks, cur, start = [], [], 0
for s in r.segments:
cur.append(s.text)
if s.end - start > 300: # блоки примерно по пять минут
blocks.append((start, " ".join(cur)))
cur, start = [], s.end
blocks.append((start, " ".join(cur)))
for t, text in blocks:
print(f"{int(t)//60:02d}:{int(t)%60:02d} {title_for(text)}")
Результат кладётся прямо в описание выпуска на площадках, которые понимают таймкоды глав, и на страницу выпуска на вашем сайте.
Пишем шоу-ноуты из расшифровки
Шоу-ноуты — это сводка плюс ссылки плюс цитаты. Черновик всех трёх частей получается из текста за один проход:
notes = llm(f"""По расшифровке подкаста сделай:
- аннотацию выпуска в два предложения,
- пять пунктов о том, что именно утверждает гость,
- три цитаты дословно,
- список всех упомянутых книг, инструментов и компаний.
{transcript}""")
Список имён и продуктов обязательно проверяйте руками. Расшифровка точна на обычной речи и наименее надёжна ровно там, где встречаются имена собственные, — а именно там фактическая ошибка заметнее всего.
Публикуем так, чтобы текст читали поисковики
Расшифровка работает на поиск, только если она лежит на странице текстом:
- Обычный HTML, не PDF и не картинка. Текст в теле страницы, а таймкоды удобно оформить подзаголовками.
- Отдельная страница на выпуск со своим заголовком и описанием, а не одна длинная страница-архив.
- Дорожка VTT рядом с плеером, чтобы слушатель следил за текстом:
response_format="vtt"возвращает её готовой. - Микроразметка. Разметьте страницу как PodcastEpisode — выпуск будет показан медиаобъектом, а не статьёй.
Не выкладывайте сырой вывод распознавания. Десять минут на разбивку по абзацам и правку имён — это разница между страницей, которую читают, и стеной текста, с которой уходят.
Во сколько это обходится
Оплата идёт за минуты аудио, поэтому арифметика предсказуема: еженедельное шоу с часовыми выпусками — это около четырёх часов расшифровки в месяц. Это самая дешёвая часть подкаста: дешевле хостинга и несопоставимо дешевле монтажа, из которого выпуск получился.
Обработка идёт быстрее реального времени, поэтому весь старый каталог расшифровывается одним ночным прогоном и превращается в архив страниц, которые находит поиск.
Попробуйте на своих записях. Регистрация занимает минуту, бесплатных минут хватает, чтобы оценить качество.
Получить ключ бесплатноЧастые вопросы
Публиковать полную расшифровку или только сводку?
Публикуйте полный текст: именно он делает выпуск находимым по длинным низкочастотным запросам, на которые отвечал гость. Короткая аннотация сверху помогает читателю решить, читать ли дальше.
Правильно ли распознаётся имя гостя?
Передайте имя и компанию в параметре prompt — обычно этого достаточно. Имена собственные остаются слабым местом любой модели распознавания, поэтому перед публикацией их стоит проверить.
Как получить главы с таймкодами?
Запросите verbose_json: в ответе будут сегменты с временем начала и конца. Сгруппируйте их в блоки по несколько минут и дайте каждому название.
Можно ли расшифровать выпуск с двумя ведущими и гостем?
Да, речь распознаётся полностью, но один сведённый файл не размечается по говорящим. Если сохранилась многодорожечная сессия, расшифруйте дорожки по отдельности.
Что делать с выпуском на двух языках?
Язык определяется по началу записи, поэтому двуязычный выпуск лучше разрезать на фрагменты и расшифровать каждый на своём языке.
Читайте также
- Автоматические субтитры SRT и VTT из видео и вебинаров — Как получить готовые субтитры с таймкодами из записи вебинара или ролика: извлечение звука, форматы SRT и VTT, примеры кода и разбор частых проблем.
- Как повысить точность распознавания речи: восемь рабочих приёмов — Восемь изменений, которые действительно двигают качество расшифровки: подготовка звука, подсказка языка, параметр prompt, нарезка по паузам, форматы и замер ошибок.
- Как расшифровать запись встречи и получить готовые заметки — Как превратить запись Zoom, Teams или Google Meet в текст с таймкодами и вытащить из него решения и задачи: где лежит файл, что отправлять, как собрать протокол.