Реализация автоматического транскрибирования интервью
Транскрибация интервью нужна журналистам, HR-специалистам, исследователям. Ключевые требования: точная атрибуция реплик двум говорящим (интервьюер/респондент), сохранение пауз и интонационных маркеров, поддержка форматирования вопрос-ответ.
Быстрое решение через API
import assemblyai as aai
config = aai.TranscriptionConfig(
language_code="ru",
speaker_labels=True, # диаризация 2 говорящих
speakers_expected=2,
punctuate=True,
format_text=True,
)
transcriber = aai.Transcriber(config=config)
transcript = transcriber.transcribe("interview.mp3")
# Форматирование в стиле интервью
output = []
current_speaker = None
for utterance in transcript.utterances:
if utterance.speaker != current_speaker:
label = "— " if current_speaker else ""
output.append(f"\n**Спикер {utterance.speaker}:** {utterance.text}")
current_speaker = utterance.speaker
else:
output.append(utterance.text)
print("\n".join(output))
Self-hosted с форматированием Q&A
async def format_as_interview(transcript: dict) -> str:
"""Форматируем транскрипт в стиль интервью"""
turns = transcript["turns"]
response = await client.chat.completions.create(
model="gpt-4o",
messages=[{
"role": "system",
"content": """Отформатируй транскрипт как журналистское интервью:
- Определи кто интервьюер, кто респондент
- Добавь метки: [Вопрос] / [Ответ] или имена если известны
- Исправь очевидные ошибки распознавания
- Сохрани оригинальные слова"""
}, {
"role": "user",
"content": "\n".join(f"Спикер {t['speaker']}: {t['text']}" for t in turns)
}]
)
return response.choices[0].message.content
Форматы экспорта для разных платформ
- Medium / Substack: Markdown с bold-именами
- Word: стандартное форматирование интервью
- Notion: автоматическое создание страницы через API
Стоимость транскрибации через AssemblyAI: 1 час интервью ≈ $0.72. Через Whisper self-hosted: ~$0.01–0.05 (стоимость GPU).
Сроки: базовый скрипт транскрибации + форматирование — 1–2 дня. Веб-сервис с загрузкой файлов — 3–5 дней.







