Sox不能直接处理音频,需要其他依赖包。
yum install gcc-c++ libmad libmad-devel libid3tag libid3tag-devel lame lame-devel flac-devel libvorbis-devel make
如果报错需要root权限,加sudo:
sudo yum install gcc-c++ libmad libmad-devel libid3tag libid3tag-devel lame lame-devel flac-devel libvorbis-devel make
1、首先查看CentOS7 系统有没有安装wget:
rpm -qa|grep wget
如果安装了,会显示相关版本信息,例如:
wget-1.14-15.el7_4.1.x86_64
如果没有安装,则通过yum安装wget:
yum install -y wget
2、通过wget远程下载Sox及其相关依赖包:
下载lame:
wget https://sourceforge.net/projects/lame/files/latest/download/lame-3.100.tar.gz
如果报验证信息过期,可用以下命令下载:
wget --no-check-certificate https://sourceforge.net/projects/lame/files/latest/download/lame-3.100.tar.gz
下载sox:
wget https://sourceforge.net/projects/sox/files/sox/14.4.2/sox-14.4.2.tar.gz
如果验证信息过期,同样使用以下命令:
wget --no-check-certificate https://sourceforge.net/projects/sox/files/sox/14.4.2/sox-14.4.2.tar.gz
3、解压并编译上述依赖包:
lame 解压并进行编译
tar -zxvf lame-3.100.tar.gz
cd lame-3.100
./configure
make && make install
sox 解压并进行编译
tar -zxvf sox-14.4.2.tar.gz
cd sox-14.4.2
./configure --prefix=$HOME #这里一定加prefix参数
make
软件包全部安装完之后执行sox, 如果出现sox的相关介绍则表示安装成功
常见错误
1, 执行sox后,可能会出现以下错误
1.1,sox: error while loading shared libraries: libmad.so.0: cannot open shared object file: No such file or directory
1.2,sox: error while loading shared libraries: libmp3lame.so.0: cannot open shared object file: No such file or directory
1.3,sox: error while loading shared libraries: libamrnb.so.3: cannot open shared object file: No such file or directory
解决方法
1.1 | 1.2 解决
find / -name libmad.so.0,
find / -name libmp3lame.so.0
找到对应文件所在目录后,在/etc/ld.so.conf文件中追加即可(图-conf-edit-one)
1.3 解决
find / -name libamrnb.so.3 找到资源文件所在的位置(通常为/usr/local/bin目录下)
在/etc/ld.so.conf.d/目录下新建文件 libso.conf并将搜到的文件路径进行填写最后保存退出
然后执行ldconfig -v 即可
测试:
将file.amr转为wav格式并保存为test.wav:
sox file.amr -b 16 test.wav channels 1 rate 16k fade 3 norm