Реализация автоматического транскрибирования подкастов
Транскрибация подкастов открывает контент для SEO, делает его доступным слабослышащим, позволяет создавать статьи и тезисы из аудиоконтента. Основные требования: хорошее качество на разговорной речи нескольких говорящих, поддержка длинных записей (1–3 часа).
Оптимальный стек
Whisper large-v3 + pyannote диаризация — лучший open-source выбор для подкастов. AssemblyAI — лучший облачный вариант с готовой диаризацией и chapter detection.
Быстрое решение через AssemblyAI
import assemblyai as aai
aai.settings.api_key = ASSEMBLYAI_KEY
config = aai.TranscriptionConfig(
language_code="ru",
speaker_labels=True, # диаризация
punctuate=True,
format_text=True,
auto_chapters=True, # автоглавы
entity_detection=True, # упоминания людей/компаний
iab_categories=True, # категоризация контента
)
transcriber = aai.Transcriber(config=config)
transcript = transcriber.transcribe("https://podcast.example.com/episode.mp3")
# Вывод с атрибуцией говорящих
for utterance in transcript.utterances:
print(f"[Спикер {utterance.speaker}] {utterance.text}")
# Автоглавы
for chapter in transcript.chapters:
print(f"## {chapter.headline} ({chapter.start//1000}с)")
print(chapter.summary)
Self-hosted для длинных записей
from faster_whisper import WhisperModel
model = WhisperModel("large-v3", device="cuda", compute_type="int8_float16")
def transcribe_podcast(audio_path: str) -> str:
segments, _ = model.transcribe(
audio_path,
language="ru",
vad_filter=True,
vad_parameters={"min_silence_duration_ms": 1000},
word_timestamps=False,
beam_size=5
)
return "\n".join(seg.text for seg in segments)
Для подкаста длиной 1 час: faster-whisper large-v3 на RTX 4090 = 15–18 минут обработки.
Экспорт в разные форматы
- Markdown с главами — для публикации на сайте
- SRT — для добавления субтитров к видеоверсии
- PDF — для скачивания
Сроки: базовая транскрибация подкастов — 1–2 дня. Система с публикацией и SEO-оптимизацией — 1 неделя.







