word timestamps
Временные метки для каждого слова в транскрипции — момент начала и окончания произнесения.
Что такое word timestamps
Word timestamps (временные метки слов) — информация о том, в какой момент аудиозаписи начинается и заканчивается каждое слово в транскрипции. Необходима для точной синхронизации субтитров, поиска по аудио и совмещения с диаризацией.
Получение word timestamps в Whisper
faster-whisper поддерживает word timestamps через параметр word_timestamps=True:
from faster_whisper import WhisperModel
model = WhisperModel("large-v3", device="cuda", compute_type="int8_float16")
segments, info = model.transcribe(
"audio.mp3",
language="ru",
word_timestamps=True
)
for segment in segments:
for word in segment.words:
print(f" [{word.start:.2f}s → {word.end:.2f}s] {word.word} (prob={word.probability:.2f})")
Вывод:
[0.00s → 0.32s] Добро (prob=0.98)
[0.32s → 0.78s] пожаловать (prob=0.97)
[0.82s → 0.98s] на (prob=0.99)
[1.00s → 1.34s] наш (prob=0.96)
[1.38s → 1.96s] подкаст (prob=0.94)
Применения word timestamps
Karaoke-стиль субтитры: подсвечивать слово по мере произнесения.
Синхронизация с диаризацией: назначить каждому слову спикера по перекрытию временных меток:
def assign_speaker(word_start, word_end, diarization):
for turn, _, speaker in diarization.itertracks(yield_label=True):
if turn.start <= word_start and word_end <= turn.end:
return speaker
return "UNKNOWN"
Контент-навигация: поиск по тексту с переходом к нужному моменту видео.
Выравнивание (alignment): исправление неточных меток через alignment.
Точность word timestamps
Whisper large-v3 даёт точность word timestamps ±100–200 мс. Для более точного выравнивания можно применить принудительное выравнивание через stable-ts или ctc-forced-aligner.
Связанные термины
- транскрипция — текст, для которого нужны метки
- alignment — уточнение временных меток
- диаризация — объединяется с word timestamps
- Whisper — предоставляет word timestamps
Готовы запустить GPU-задачу?
Запустить GPU-сервер