Как эффективно создавать спектрограмму многих аудиофайлов с помощью Sox?

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

sox audiofile.flac -n spectrogram 

Однако я не знаю, как расширить этот метод до более чем одного файла. В идеале я хотел бы, чтобы мой выходной файл .png имел имя файла, связанное с его соответствующим звуковым файлом; например audiofile1.png для audiofile1.flac , audiofile2.png для audiofile2.flac и т. д.

Кто-нибудь знает, как это сделать?

2 Solutions collect form web for “Как эффективно создавать спектрограмму многих аудиофайлов с помощью Sox?”

Вы можете заключить команду в цикл:

 for file in *.flac do outfile="${file%.*}.png" sox "$file" -n spectrogram "$outfile" done 

Что касается имен файлов, справочная страница sox (1), похоже, предполагает, что вы можете явно указать свой выходной файл в командной строке, чтобы вы могли использовать это в цикле.

Первая строка в цикле использует замену параметров Bash, чтобы удалить расширение .flac из имени файла и добавить расширение .png .

Сделал учетную запись, чтобы опубликовать это, надеюсь, что это поможет кому-то в будущем.

Спасибо Иосифу за его ответ. Возможно, это сработало во время его публикации, но мне пришлось добавить -o сразу после spectrogram для sox, чтобы принять команду.

 for file in *.flac;do outfile="${file%.*}.png" sox "$file" -n spectrogram -o "$outfile" done 

Я буду бить их всех в своей папке для архивирования. Оно работает!

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

 for file in *.flac;do outfile="${file%.*}.png" title_in_pic="${file%.*}" sox "$file" -n spectrogram -t "$title_in_pic" -o "$outfile" -x 2000 done 

Опять же, благодаря Иосифу. Это помогает тонне!

  • Могу ли я записывать звук до тишины или максимальной продолжительности записи?
  • добавление дополнительных треков с помощью sox и командной строки
  • Создание длинного звукового файла с SOX без фактического воспроизведения тона
  • Воспроизвести последние несколько секунд mp3
  • Завершить запись sox после того, как обнаружено молчание
  • Как добавить аудиофайл в сценарий оболочки
  • Как использовать sox или ffmpeg для определения интервалов молчания в длинном звуковом файле и их замены нулями (например, подавление фонового шума)?
  • sox возвращает ошибку, когда я пытаюсь обрабатывать mp3-файлы
  • Воспроизведение и одновременная запись через внешнюю звуковую карту USB
  • Разделить большое количество wav-файлов на мелкие части
  • Sox: конвертировать WAV-файл с требуемыми свойствами в одной команде
  • Создайте пакетный скрипт SOX для извлечения первых 15 секунд и переименуйте несколько файлов в папку
  • Interesting Posts

    Почему некоторые изменения файлов не отображаются в хвосте -f?

    Изменить значение по умолчанию для Nautilus (file_manager) с «Забыть пароль немедленно»?

    Сопоставьте ключ символа с некоторым ключом-модификатором ?

    Как установить файл xmodmap для диспетчера сеансов (или, по крайней мере, SLiM) из-за сломанного физического ключа

    Где mimeopen сохраняет конфигурацию приложения по умолчанию?

    Является ли копирование корневой папки адекватной формой резервного копирования?

    Доступное консольное решение для физической машины под управлением OpenBSD?

    Iptables – лимитные соединения для каждого порта

    systemd запускает службу только в том случае, если другая служба работает без ошибок

    Не удалось удалить файлы через терминал

    Как скопировать папку, в которой владельцы и разрешения не сохранены?

    vmstat на виртуальной машине и большие значения

    создавать несколько файлов / dev / xconsole автоматически при загрузке

    Удаление начального 10 МБ из открытого файла

    Как установить python на debian?

    Linux и Unix - лучшая ОС в мире.