AI-система транскрибации и суммаризации подкастов

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1Все 1566 услуг
AI-система транскрибации и суммаризации подкастов
Простой
от 1 дня до 3 дней
Часто задаваемые вопросы

Направления AI-разработки

Этапы разработки AI-решения

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1285
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1198
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    902
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1122
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    589
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    859

AI-транскрибация и саммаризация подкастов

Автоматическая транскрибация подкастов решает задачи SEO (текстовый контент под поисковики), доступности, создания шоунотов и ретрансляции контента в соцсети. Whisper large-v3 даёт WER 4–8% на чистых записях студийного качества.

Базовый пайплайн

import whisper
from openai import AsyncOpenAI

async def transcribe_and_summarize_podcast(audio_path: str) -> dict:
    # Транскрибация
    model = whisper.load_model("large-v3")
    result = model.transcribe(
        audio_path,
        language="ru",
        task="transcribe",
        verbose=False,
        word_timestamps=True
    )
    transcript = result["text"]
    segments = result["segments"]  # [{start, end, text}, ...]

    # Генерация shownotes через GPT-4o
    client = AsyncOpenAI()
    response = await client.chat.completions.create(
        model="gpt-4o",
        messages=[{
            "role": "system",
            "content": "Создай shownotes для подкаста: краткое описание эпизода (3-5 предложений), ключевые темы списком, временные метки для основных тем в формате MM:SS."
        }, {
            "role": "user",
            "content": transcript[:6000]
        }]
    )

    # Временные метки ключевых тем
    chapters = extract_chapters(segments)

    return {
        "transcript": transcript,
        "shownotes": response.choices[0].message.content,
        "chapters": chapters,
        "duration_sec": segments[-1]["end"] if segments else 0
    }

def extract_chapters(segments: list) -> list[dict]:
    """Выделяем тематические блоки по паузам и семантике"""
    chapters = []
    # Ищем паузы > 3 секунды как границы глав
    for i in range(1, len(segments)):
        gap = segments[i]["start"] - segments[i-1]["end"]
        if gap > 3.0:
            chapters.append({
                "timestamp": int(segments[i]["start"]),
                "text": segments[i]["text"][:80]
            })
    return chapters

RSS-интеграция для автоматической обработки

import feedparser
import httpx

async def process_podcast_feed(rss_url: str) -> list[dict]:
    feed = feedparser.parse(rss_url)
    results = []

    for entry in feed.entries[:5]:  # последние 5 эпизодов
        audio_url = next(
            (enc.href for enc in entry.enclosures if enc.type.startswith("audio")),
            None
        )
        if not audio_url:
            continue

        async with httpx.AsyncClient() as client:
            audio_data = await client.get(audio_url)

        with open(f"/tmp/{entry.id}.mp3", "wb") as f:
            f.write(audio_data.content)

        result = await transcribe_and_summarize_podcast(f"/tmp/{entry.id}.mp3")
        result["title"] = entry.title
        result["published"] = entry.published
        results.append(result)

    return results

Whisper обрабатывает 1 час аудио примерно за 3–4 минуты на GPU (RTX 3090). На CPU — около 30–40 минут. Для регулярной обработки подкастов достаточно облачного инференса через API (OpenAI Whisper API: $0.006/мин). Сроки: скрипт обработки одного подкаста — 1–2 дня. Сервис с RSS-мониторингом и публикацией shownotes — 1–2 недели.