Инструмент для массового ускорения / преобразования аудиофайла

Я хочу слушать некоторые подкасты на моем телефоне, но у меня есть две распространенные проблемы:

  1. аудио в каком-то странном формате (некоторые не играют на моем телефоне).
  2. звук медленный.

Я хочу использовать что-то вроде sox или avconv для массового преобразования файлов. Так как это просто голос и собирается на мобильный телефон, небольшие файлы низкого качества было бы лучше для меня. Я имел некоторый хороший успех используя avconv:

avconv -i weird.wma normal.ogg

но эта команда создает огромный файл OGG и я не могу заставить его играть быстрее. В идеале, этот конкретный файл будет играть на 170% от первоначальной скорости.

7
задан User1
06.03.2023 17:41 Количество просмотров материала 3558
Распечатать страницу

1 ответ

конвертировать с FFmpeg

FFmpeg имеет встроенный звуковой фильтр для изменения темпа без изменения высоты тона. Нам нужно закодировать файл в какой-то формат, который воспроизводит ваш телефон. Это зависит от телефона конечно. Многие современные смартфоны, такие как AAC audio:

ffmpeg -i weird.wma -filter:a "atempo=1.7" -c:a libfaac -q:a 100 final.m4a

здесь вы можете изменить качество с -q:a опция, где значение в процентах и выше означает лучше.

или, аудио MP3 с (средним) качеством 4, где меньше Середин лучше (0 в результате около 245 кбит/с):

ffmpeg -i weird.wma -filter:a "atempo=1.7" -c:a libmp3lame -q:a 4 final.mp3

если ваш телефон не поддерживает любой из них, нам придется копать дальше. О, и я использую ffmpeg синоним avconv здесь. Они не совсем то же самое, но для вышеуказанных случаев вы можете использовать любой инструмент. Если ваша версия FFmpeg или avconv не связывает FAAC или LAME, перейдите к статической сборке Linux из Страница загрузки FFmpeg.


если вам не нравятся фильтры FFmpeg, здесь есть другой подход:

извлечь raw аудио

прежде всего, вам нужно извлечь необработанный аудиопоток в несжатом формате, например, 16-битный стереофонический звук PCM в WAV-контейнере.

ffmpeg -i weird.wma temp.wav

теперь мы можем использовать файл temp.wav чтобы сократить аудио. У нас есть несколько вариантов для этого:

Вариант 1: SoX

SoX предлагает несколько различных фильтров, которые позволяют изменять скорость, высоту и темп. Просто изменение скорость увеличит высоту тона, чтобы компенсировать длину, поэтому это может показаться неестественным.

tempo фильтр использует расширенный алгоритм, чтобы сократить файлы, но сохранить высоту, разделив его на меньшие временные окна, а затем "слияние" их, тем самым ускоряя темп. Например:

sox temp.wav output.wav -tempo 1.7

это может показаться немного странным. Если это так, прибегните к варианту 2.

Вариант 2: экстремальный звук пол стрейч

эта программа обещает предложите лучшее качество, чем SoX, и есть версия командной строки, написанная на Python доступно с GitHub. Команда может выглядеть так-имейте в виду, что по умолчанию она растягивает файл, поэтому для его сокращения мы вычисляем обратное значение 1.7, которое равно 0.59:

python paulstretch_stereo.py -s 0.59 temp.wav output.wav

преобразование raw аудио в сжатый файл

теперь у нас есть укороченный WAV файл, но он все еще несжат, так что нам нужно сжать его снова. См. параметры в верхней части это пост для различных форматов.

ffmpeg -i output.wav -c:a …

методы, отличные от ffmpeg, описанные выше, потеряют ваши метаданные; вы можете добавить их снова при преобразовании вывода.wav в сжатый формат, например:

ffmpeg -i output.wav -i weird.wma -map 0 -map_metadata 1 -c:a ...
9
отвечен slhck 2023-03-08 01:29

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх