Аудио и видео в Whisper: форматы и звуковые дорожки

См. также — глоссарий

Видео — контейнер с потоками. Если текст пустой или не соответствует записи, сначала убедитесь, что выбрана нужная звуковая дорожка. Пример принимает локальные файлы WAV, MP3, M4A, MP4, FLAC, OGG, OPUS, WebM и MKV; фактический кодек должен поддерживаться PyAV.

Начните с оригинала

Для обычной записи с одной дорожкой передайте аудио или видео прямо в пример. faster-whisper декодирует звук через PyAV, поэтому основному Python-сценарию не нужен исполняемый файл ffmpeg. Для диагностических команд ниже FFmpeg устанавливается отдельно.

Переименование расширения не конвертирует кодек. Не перекодируйте сжатую запись многократно: преобразование MP3 в WAV не восстанавливает данные, потерянные при исходном сжатии.

Выберите дорожку

Для фильма с несколькими языками, записи экрана или экспорта встречи сначала посмотрите потоки, затем извлеките нужный звук:

ffprobe -v error -show_entries stream=index,codec_type,codec_name,channels \
  -of json input/lecture.mp4
ffmpeg -nostdin -n -i input/lecture.mp4 -map 0:a:0 -vn \
  -ac 1 -ar 16000 input/lecture-audio.wav

0:a:0 означает первый аудиопоток, а не первый поток любого типа. Меняйте индекс после проверки списка и прослушивания. -n запрещает перезапись готового файла. -nostdin не даёт FFmpeg читать ввод терминала при обработке пакета. Распознавайте отдельно lecture-audio.wav либо складывайте конвертированные файлы в другую папку, чтобы не обработать обе версии.

Для ASR пример сводит каналы. Если слева и справа записаны разные люди или один канал намного чище, обычный mono mix может потерять полезное разделение. Сохраните оригинал и при необходимости подготовьте файлы отдельных каналов; это не универсальная диаризация спикеров.

Длинные записи и хранение

Размер сжатого файла не определяет необходимую память. Декодированные отсчёты занимают значительно больше RAM, а декодирование происходит до получения полного текста. Проверьте характерный длинный файл, наблюдайте за RAM и при необходимости экспортируйте более короткие исходные фрагменты. У независимых фрагментов таймкоды начинаются с нуля: для сборки полных субтитров сохраняйте смещения.

Передавайте файлы по SSH/SFTP или другим способом с контролем доступа. Не открывайте папку с аудио всему интернету только ради переноса. До завершения аренды убедитесь, что оригиналы и результаты скопированы в ваше хранилище.

Далее — проверка субтитров или обработка папки.

Все инструкции по Whisper · Скачать пример

Готовы запустить?

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