РУКОВОДСТВО · ОБНОВЛЕНО 2026-11-02
Длинная запись разбита на части: как сохранить общие таймкоды транскрипции
Контракт сборки расшифровки, когда несколько аудиофрагментов распознаются отдельно.
Если запись распознают по частям, таймкод ответа часто относится к началу конкретного фрагмента. Чтобы перейти к месту в оригинале, нужно знать фактическое смещение этой части. Не считайте его только по порядковому номеру и запланированной длине: нарезка, паузы и перекрытия могут изменить границы. Храните таблицу сегментов с версией исходника и проверяйте переход в плеере. Поддержку временных меток выбранным ASR API уточняйте отдельно. Наличие текста само по себе не гарантирует точное выравнивание каждого слова с исходным звуком.
1. Зафиксируйте карту аудиофрагментов
Для каждой части сохраняйте идентификатор исходной записи, её версию, фактическое начало и конец. Уточните единицы и правила отсчёта, включая возможную задержку подготовки. Документация FFmpeg описывает сегментацию и управление временными метками, но конкретные границы нужно проверять в вашем выводе. Не переименовывайте файлы вручную так, чтобы потерять связь с картой. Если исходник заменили или обрезали, прежние смещения нельзя автоматически применить к новой записи только из-за одинакового имени.
2. Соберите общий таймкод по контракту
Если ASR возвращает локальные start и end, преобразуйте их в координаты оригинала с известным смещением и сохраните исходные значения для проверки. Убедитесь, что сервис действительно использует локальный отсчёт: некоторые процессы могут сохранять другие временные метки. Не прибавляйте смещение дважды. Для частично провалившейся расшифровки показывайте пропуск, а не сдвигайте последующие фрагменты вплотную. Общая временная шкала должна сохранять расположение тишины и нераспознанных участков оригинальной записи.
3. Разберите перекрытия и стыки
Если части пересекаются для сохранения контекста, один и тот же отрывок может быть распознан дважды с разными словами и временем. Сопоставляйте область перекрытия, сохраняя связь с аудио. Не удаляйте все повторяющиеся фразы по тексту: человек мог действительно произнести их несколько раз. Проверьте речь на границе частей, короткие реплики и паузы. При неоднозначности лучше оставить проверяемую отметку, чем уверенно соединить две несовместимые версии в гладкий, но неверный рассказ.
4. Проверьте переходы и итоговый экспорт
Используйте синтетическую запись с известными маркерами в начале, середине и на стыках. Откройте несколько таймкодов в исходном плеере и проверьте фактическое совпадение. При экспорте субтитров убедитесь, что порядок и допустимая точность времени соответствуют формату. Отдельно проверьте повтор обработки одной части, отсутствие результата и перезапуск сборки. Это локальная проверка конвейера; она не подтверждает качество конкретной модели распознавания или работающую генерацию в выбранном сервисе без отдельной приёмки.
Частые вопросы
Можно ли прибавлять ровно длину предыдущих частей?
Только если границы и длительности точно соответствуют этой схеме. Надёжнее использовать сохранённые фактические координаты каждого сегмента в исходнике.
Почему на стыке повторяются слова?
Причиной может быть перекрытие фрагментов или разное распознавание одной области. Сверяйте звук, а не удаляйте повтор только по текстовому совпадению.
Каждый ASR API возвращает таймкоды слов?
Нет. Формат и уровень меток зависят от модели и маршрута. Возможность нужно проверить по документации выбранного сервиса.
Что делать, если одна часть не распозналась?
Сохраните пропуск на общей шкале и отдельный статус задания. Не сдвигайте последующие метки и не придумывайте текст отсутствующего участка.