Speech

транскрипция

Текстовый вывод ASR-системы — преобразованная в текст речь с опциональными временными метками.

Что такое транскрипция

Транскрипция (transcription) — процесс и результат преобразования речевого аудио в текст с помощью ASR. В контексте ML — структурированный output ASR-модели, содержащий текст и (опционально) временные метки.

Форматы транскрипции

Plain text: просто строка с текстом, без временных меток.

Сегментированная: текст разбит на временные отрезки (сегменты):

{
  "segments": [
    {"start": 0.0, "end": 3.2, "text": "Добро пожаловать на наш подкаст."},
    {"start": 3.5, "end": 7.1, "text": "Сегодня мы обсудим языковые модели."}
  ]
}

Word-level: временные метки для каждого слова — нужны для точной синхронизации субтитров.

SRT/VTT: стандартные форматы субтитров, поддерживаемые видеоплеерами:

1
00:00:00,000 --> 00:00:03,200
Добро пожаловать на наш подкаст.

2
00:00:03,500 --> 00:00:07,100
Сегодня мы обсудим языковые модели.

Транскрипция в Python

from faster_whisper import WhisperModel

model = WhisperModel("large-v3", device="cuda", compute_type="int8_float16")

# Получить транскрипцию
segments, info = model.transcribe(
    "interview.mp3",
    language="ru",
    word_timestamps=True,
    beam_size=5,
)

# Собрать в текст
full_text = " ".join(seg.text.strip() for seg in segments)

# Экспорт в SRT
with open("subtitles.srt", "w") as f:
    for i, seg in enumerate(segments, 1):
        start = seg.start
        end = seg.end
        f.write(f"{i}\n{format_time(start)} --> {format_time(end)}\n{seg.text.strip()}\n\n")

Постобработка транскрипции

Часто после ASR требуется:

  • Пунктуация и регистр: Whisper добавляет, но можно улучшить LLM
  • Нормализация: числа, аббревиатуры, специальные термины
  • Disfluency removal: убрать «э-э», «ну», «как бы»
  • Speaker labels: добавить метки спикеров через диаризацию

Связанные термины

  • ASR — система, создающая транскрипцию
  • Whisper — популярная ASR-модель
  • word timestamps — временные метки для каждого слова
  • диаризация — кому принадлежит каждая реплика
  • WER — метрика качества транскрипции

Готовы запустить GPU-задачу?

Запустить GPU-сервер