Как повторно выборить Hi-Res FLAC в Linux

Изображение на обложке High Resolution Flac Sox Resample 00

Файлы Hi-Res FLAC являются одной из вершин Hi-Fi аудио опыта. Однако, если вы рипуете свой CD в FLAC файлы, вы можете обнаружить, что их часто трудно воспроизвести вне оборудования, для которого они предназначены. Это может быть проблемой для пользователей, которые владеют аудиотреками высокого разрешения, но не имеют инструментов для их корректного воспроизведения.

Один из способов решить эту проблему — использовать sox для повторной выборки ваших Hi-Res FLAC файлов. Этот учебник обучает основам sox и тому, как использовать его для повторной выборки FLAC файлов в Linux.

Советы: если вы запутались в различных аудиоформатах, посмотрите это руководство, чтобы понять различия между MP3, AAC, FLAC и многими другими форматами.

Список содержимого

  • Что такое Sox и как работает повторная выборка?
  • Повторная выборка Hi-Res FLAC файла с помощью sox
  • Автоматизация процесса повторной выборки
  • Часто задаваемые вопросы

Что такое Sox и как работает повторная выборка?

По сути, sox — это программа обработки аудио в командной строке. В отличие от Audacity, она позволяет вам манипулировать аудиофайлами прямо из вашего терминала. Это делает sox полезным для тех, кто хочет сделать простые изменения или автоматизировать сложную аудиозадачу.

Экран помощи High Resolution Flac Sox Resample 02

С другой стороны, повторная выборка — это процесс использования сложных алгоритмов для преобразования сигнала высокой четкости в более низкий. Такой подход сохраняет качество аудиотрека, одновременно уменьшая объем данных, которые вы храните на своем компьютере.

Кроме того, повторная выборка также позволяет воспроизводить ваши Hi-Res FLAC файлы на устройствах более низкого класса. Например, iPod Video с Rockbox будет зависать и заикаться при воспроизведении 24-битного аудиофайла.

Экран загрузки High Resolution Flac Sox Resample 04 Rockbox

Альтернатива: кроме sox, вы также можете использовать flac2all для транскодирования FLAC файлов в другие современные аудиоформаты.

Повторная выборка Hi-Res FLAC файла с помощью sox

Примечание: шаги, указанные ниже, предназначены для Ubuntu, но использование остается таким же независимо от используемого дистрибутива Linux.

Первый шаг в повторной выборке FLAC файлов — установить утилиту sox и ее зависимости. Выполните следующую команду в Debian и Ubuntu:

sudo apt install sox flac ffmpeg

Установка Sox High Resolution Flac Sox Resample 05

Проверьте, правильно ли она установлена: sox --version.

Проверка версии Sox High Resolution Flac Sox Resample 06

Узнайте как глубину битов, так и частоту дискретизации вашего FLAC файла, используя встроенную программу file для отображения этих данных в терминале:

file sample.flac

В моем случае, мой FLAC файл имеет глубину битов 24 бит и частоту дискретизации 96 кГц.

Проверка глубины битов FLAC и частоты дискретизации High Resolution Flac Sox Resample 07

Найдите правильную частоту повторной выборки для sox

Найдите правильную частоту повторной выборки для вашего FLAC файла. Общее правило повторной выборки состоит в том, что целевая частота повторной выборки должна делиться на оригинальную частоту дискретизации на 2 или 4.

Делимые частоты дискретизации High Resolution Flac Sox Resample 08

Вы должны повторно выбрать 192 кГц FLAC файл либо на 96, либо на 48 кГц, чтобы убедиться, что алгоритм повторной выборки может преобразовать оригинальный сигнал с наименьшими искажениями возможными.

Оптимизация повторной выборки в вашем Hi-Res FLAC файле

Как только вы знаете правильную частоту повторной выборки, вы можете выполнить sox для повторной выборки вашего FLAC файла. В моем случае, я повторно выбираю файл 96 кГц, так что я выполняю следующую команду:

sox -S sample.flac -b 16 resample.flac rate -v -L 48000 dither
  • Флаг -b говорит sox установить новую глубину битов для выходного файла. Например, значение 16 установит новую глубину битов на 16 бит.
  • С другой стороны, опция rate говорит sox установить новую частоту дискретизации для выходного файла.
  • Флаг -v заставляет sox использовать алгоритм повторной выборки “Очень Высокое Качество”.
  • Флаг -L также заставляет sox использовать “Линейную Фазу” в ответ на повторной выборке. Это фильтр, который пытается нейтрализовать любое “эхо сигнала” в файле FLAC.
  • Наконец, опция dither генерирует небольшое количество шума по всему треку. Это служит маской, которая скроет любые недостатки в процессе повторной выборки.

Одиночная задача повторной выборки High Resolution Flac Sox Resample 09

Автоматизация процесса повторной выборки

Хотя это осуществимо использовать sox на основании каждого файла, также возможно автоматизировать весь процесс с помощью оболочки. (Посмотрите руководство для начинающих по сценариям оболочки.) Это полезно, если вы намерены повторно выбирать целый альбом треков Hi-Res FLAC.

Один из самых быстрых способов автоматизировать процесс повторной выборки — использовать цикл for Bash. Например, вы можете выполнить следующие строки кода для повторной выборки всей папки FLAC файлов:

mkdir -p ./flac-dir/resample && cd ./flac-dir  
for flac in *.flac; do sox -S "${flac}" -b 16 resample/"${flac}" rate -v -L 48000 dither; done

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

Цикл задачи повторной выборки High Resolution Flac Sox Resample 10

Часто задаваемые вопросы

Можно ли повторно выбрать MP3 файл с помощью sox?

Команда rate для sox не работает с форматами с потерями, поэтому ее нельзя использовать для повторной выборки MP3 файла.

Я получаю ошибку “нет обработчика для обнаруженного типа файла”. С sox что-то не так?

Нет! Это происходит, когда sox не может читать и декодировать ваш High Resolution FLAC файл. Наиболее частые причины этой проблемы — отсутствующая библиотека системы и отсутствующий флаг компилятора.

Чтобы исправить отсутствующую библиотеку системы, выполните следующую команду: sudo apt install libsox-fmt-all. Исправление отсутствующего флага компилятора потребует от вас удалить текущий пакет sox и скомпилировать его из исходников.

Sox сообщает, что мой Hi-Res FLAC файл клипируется. Моя повторная выборка закончилась неудачей?

Это нормально, что файл высокого разрешения FLAC клипируется во время повторной выборки, так как процесс повторной выборки пропускает большую часть более высокочастотных и неслышимых данных файла FLAC.

Несмотря на это, все еще можно указать sox компенсировать возможные клипирования во время повторной выборки. Для этого добавьте флаг -G к вашей команде sox: sox -S sample.flac -G -b 16 resample.flac rate -v -L 48000 dither.