Как расшифровать большой аудиофайл: делить или сжимать

Перетащите аудио или видео или нажмите, чтобы выбратьMP3 · WAV · M4A · OGG · MP4 · до 30 минут
Пример результата – так выглядит готовая расшифровка
00:47РусскийСпикеры: 2
00:00Спикер 1

Давай коротко по срокам. Мы успеваем к пятнице или переносим на следующую неделю?

00:07Спикер 2

К пятнице успеваем, если макеты придут завтра. Если позже, то реалистичнее вторник, и это я ещё не закладываю правки после ревью.

00:18Спикер 1

Понял. Тогда я тереблю дизайн сегодня, а ты пока начинаешь с той части, которая от макетов не зависит.

00:25Спикер 2

Договорились. И ещё момент: на прошлой неделе мы забыли записать решение по интеграции, потом полчаса вспоминали. Давай в этот раз зафиксируем сразу.

AI-саммари

Фрагмент рабочего созвона: обсуждают сроки по задаче и договариваются, кто отвечает за следующий шаг.

Вопрос «как расшифровать большой аудиофайл» прилетает к нам в пятницу вечером. Трёхчасовой вебинар на полтора гигабайта почтой не уходит, вкладка браузера умирает на семидесяти процентах. Дальше самодеятельность. Кто-то режет запись наугад, кто-то жмёт её до телефонной трубки. Знакомо?

Главное подозрение я сниму сразу. Длина файла нам безразлична. Мы тратим 1–2% от длительности, получасовое совещание расшифруем за 25 секунд, час речи за минуту, три часа за три минуты. На тех же тридцати минутах Yandex SpeechKit тратит две минуты, OpenAI около десяти. Ломается у вас канал, формат и терпение.

Почему большой аудиофайл превращается в проблему

Сначала определитесь, какой у вас «большой». Файл бывает тяжёлым физически. Несжатый WAV с диктофона (44,1 кГц, 16 бит, стерео) съедает около 10 МБ на минуту, поэтому трёхчасовое заседание подбирается к 1,8 ГБ, а мобильный аплоад разваливается на первом переключении вышки.

Бывает, что вес нормальный, а пугает вас длительность.

А третью беду вы увидите вечером. Три часа речи разворачиваются в документ, который никто не прочитает подряд.

Дорого ли это? Нет. Три часа по тарифу от 0,29 ₽/мин обойдутся вам рублей в 52, пятичасовая конференция около 87. Дорого обходится другое. Чем длиннее запись, тем хуже она записана, к третьему часу микрофон сдвинули локтем. Мы держим WER 7,10% (WAcc 92,9%) на бенчмарке из семи датасетов, но снимали мы его на чистых записях. Вашу чините на входе.

Как разделить большой аудиофайл и не потерять слова на стыке

Вопрос «как разделить большой аудиофайл» я начинаю со встречного. Зачем вы его делите? Нам дробить файл незачем, мы берём его целиком. Резать стоит, когда канал слабый и переотправить вы хотите только неудавшийся кусок. Ещё когда части нужны вам сами по себе (дни заседания).

Режьте по паузам. Разрез на тридцатой минуте попадёт в середину слова, и оно пропадёт дважды. Нарезка по паузам делается в аудиоредакторе, вы находите тишину и оставляете пару секунд нахлёста. А если кусков тридцать? Тут за дело берётся ffmpeg. Команда ffmpeg -i zapis.wav -f segment -segment_time 1800 -c copy chast_%03d.wav нарежет запись получасовыми кусками, флаг -c copy копирует поток без повторного сжатия. Но ffmpeg рубит по таймеру, стыки вы проверяете глазами.

Ломается при нарезке вот что.

  • Тайм-коды. Отсчёт в каждом куске стартует с нуля, к третьей части прибавляйте час.
  • Спикеры. Диаризация нумерует голоса заново, «Спикер 2» из второй части станет у вас «Спикером 1».
  • Порядок. Называйте части с ведущим нулём (chast_001, chast_002), иначе десятая встанет после первой. Мы так однажды собрали текст задом наперёд.
  • Контекст. Мы опираемся на соседние слова, и разрезанная посередине фраза распознаётся хуже целой.

Жалко тайм-коды? Тогда оставьте запись целой и уменьшите вес.

Как подготовить аудио к расшифровке и чем его конвертировать

Как подготовить аудио к расшифровке, вы решите за пару минут, и начинается всё с формата. Мы принимаем mp3, wav, m4a, ogg и aac файлом либо запись с микрофона. Поля для ссылки у нас нет, запись из облака вы сначала скачиваете файлом и потом грузите нам.

Конвертировать аудио вам нужно в двух случаях. Первый, файл несжатый. Час речи в WAV весит сотни мегабайт, в mp3 или m4a несколько десятков, и ffmpeg -i zapis.wav zapis.mp3 сделает это за проход. Второй, у вас видео, и тогда ffmpeg -i vebinar.mp4 -vn -c:a copy zvuk.m4a вытащит звуковую дорожку без перекодирования. В остальных случаях не трогайте.

Лёгкость файла вы оплачиваете полосой. На телефонной дорожке с её 8 кГц мы держим около 90% против 92,9% на чистой записи, и эта пара пунктов съедает фамилии и суммы. Одно перекодирование из несжатого в сжатое мы переживём, повторное даст вам артефакты. А если жать не хочется вовсе? У нас транскрибация wav в текст работает и с исходником, вопрос в терпении на аплоаде.

Что на входеЧто делаемЧем платите
WAV на три часа, 1,8 ГБжмём в mp3 или m4aодно сжатие, речи некритично
MP4 вебинаратащим звуковую дорожкуничем, видеоряд не нужен
Конференция с перерывамирежем по перерывамтайм-коды и спикеры заново
Файл из мессенджерагрузим как естьон уже пожат

Как расшифровать большой аудиофайл целиком

Файл вы привели в порядок, дальше скучное.

  • откройте страницу, где живёт транскрибация аудио в текст, и загрузите файл; идёт встреча прямо сейчас, пишите с микрофона;
  • включите деление на спикеров, диаризация разложит вам реплики по голосам;
  • подождите, пока мы обработаем запись, на трёх часах это три минуты;
  • заберите результат, txt для чтения, verbose_json для сегментов с тайм-кодами, srt или vtt для видео.

Сколько вы заплатите? Только за обработанные минуты, от 0,29 ₽/мин. Секунды мы округляем вниз, подписки нет, баланс не сгорает. Бесплатно попробуйте нас в Telegram-боте @VoicePalatineBot, до 100 транскрибаций в день. Но он ограничивает размер файла, многочасовой WAV туда не влезет.

А когда длинных записей у вас поток? Наш speech-to-text API принимает файлы и распознаёт поток по WebSocket, документацию мы держим на docs.speech.palatine.ru. Вебхуков у нас нет, статус задачи вы опрашиваете сами.

Отдельно для тех, у кого на записи зарплаты. Мы обрабатываем файлы в четырёх ЦОД Tier III в России, передаём по TLS, работаем по 152-ФЗ, на ваших записях модели не дообучаем. Языков у нас около сотни (русский и языки СНГ), но текст мы отдаём на языке записи. Казахская конференция станет казахским текстом, перевода мы не сделаем.

Что делать с расшифровкой на три часа речи

Кто прочитает три часа речи подряд? Никто, и вам не надо. Открывайте текст как базу. Поиск по слову приведёт вас туда, где обсуждали бюджет, тайм-код вернёт к секунде, диаризация подскажет, кто говорил. Формат verbose_json берите для скрипта, там мы отдаём сегменты с границами.

Резали запись? Собирайте обратно сразу, ко второй получасовой части прибавьте тридцать минут тайм-кодов, к третьей час. Через неделю вы не вспомните, какой кусок откуда.

Вычитывать всё подряд незачем, пройдитесь там, где ошибка дорого стоит. Суммы, даты, фамилии и отрицания в решениях, ведь «согласовали» и «не согласовали» отличаются одним словом. Минут десять на трёхчасовую запись.

Помните файл, который лежит у вас с прошлого месяца? Посмотрите, в чём он записан. WAV или mp4 вы приведёте к загружаемому виду одной командой ffmpeg. Три часа обойдутся вам рублей в 52 и три минуты ожидания, к концу перекура вы узнаете, о чём говорили во второй половине встречи.