Да просто создают ~/bin
каталог и затем создает ссылку. Я сомневаюсь, что это должно быть там, но это обычно - лучшая практика в системах Unix для создания a ~/bin
поддержать посторонние исполняемые файлы, которые требуется использовать в персональной среде.
Дополнительно необходимо будет удостовериться, что этот каталог находится также на ПУТИ (echo $PATH
) так, чтобы можно было выполнить эту команду от любого местоположения в системе, без должны явно вызвать его как:
$ ~/bin/subl
Я рекомендую использовать SoX следующим образом:
sox <input> <output> tempo 0.5
Это замедляет темп в 2 раза и записывает результат в
.
Вы можете добавить опцию --show-progress
для отображения соответствующей информации и процента прогрессии.
Обратите внимание, что если - это, например,
normal.wav
, а -
half-tempo.ogg
, SoX сам определит разную аудиокодировку (для большего контроля над этой частью читайте man sox
).
Алгоритм tempo
должен дать результаты, аналогичные модулю scaletempo
VLC. Однако вы можете попробовать альтернативный алгоритм stretch
:
sox <input> <output> stretch 2
Результат ожидается более синтетическим (опять же, читайте man sox
для подробностей) и имейте в виду, что параметр является обратным тому, который задается в tempo
(2
вместо 0.5
в этом примере).
SoX предлагает еще больше возможностей манипуляции временем через speed
, pitch
и bend
, которые можно легко изучить.
Чтобы установить SoX с помощью apt-get
:
sudo apt-get install sox
Чтобы включить дополнительные кодеки (включая MP3), добавьте эту библиотеку:
sudo apt-get install libsox-fmt-all
В качестве последнего замечания, я бы вернулся к VLC, поскольку вы можете воспроизвести ваш файл замедленным из командной строки таким образом:
cvlc --rate 0.5 <input>
Таким образом, может быть способ попросить VLC сохранить результат в какой-нибудь файл, или вывести аудио в JACK, а затем использовать JACK совместимый рекордер.
Следующий сценарий делает это с помощью ffmpeg.
#!/bin/sh
# Usage:
# slow_down.sh infile.mp3 outfile.mp3 0.75
# Can't slow down more than by a factor of 0.5 (limitation of ffmpeg).
if [ $# -lt 3 ]; then
echo 1>&2 "$0: not enough arguments"
exit 2
fi
rm -f $2 temp.mp4
ffmpeg -i $1 -filter_complex "[0:a]atempo=$3[a]" -map "[a]" -c:a aac temp.mp4
ffmpeg -i temp.mp4 -ar 48000 $2
rm -f temp.mp4
Вероятно, это можно было бы упростить, но я не смог понять, как объединить две команды ffmpeg в одну.
Я обнаружил, что результаты этого метода звучат намного лучше, чем результаты двух алгоритмов, предоставленных sox. Для меня это звучит так же хорошо, как результаты замедления звука в интерфейсе YouTube.