sox处理mp3_sox :音频文件转换命令

本文介绍了音频处理工具sox的使用,特别是在开发呼叫中心场景下,如何将wav格式转换为gsm格式。通过sox命令可以实现音频文件的格式转换、音量调整、截取、合并以及各种音频效果处理,如resample、trim、mixer等。此外,文章还探讨了sox的其他功能,如采样率转换、声道调整、回声和淡入淡出效果,并提供了多个实例演示。
摘要由CSDN通过智能技术生成

在开发呼叫中心的过程中要播放语音,要把自己录制的语音的wav格式转换为gsm格式,asterisk中也支持wav格式,但是不清楚为什么wav文件大一些就无法播放,所以只有转换为gsm格式。

命令 :sox 00.wav -r 8000 -c 1 00.gsm resample -ql

下面的是在网上找到的一篇文章 文章来源

Sox是最为著名的Open Source声音文件格式转换工具。已经被广泛移植到Dos、windows、OS2、S

un、Next、Unix、Linux等多个操作系统平台。

Sox项目是由Lance Norskog创立的,后来被众多的开发者逐步完善,现在已经能够支持很多种声

音文件格式和声音处理效果。基本上常见的声音格式都能够支持。更加有用的是,Sox能够进行

声音滤波、采样频率转换,这对那些从事声讯平台开发或维护的朋友非常有用。当然,Sox里面

也包括一些DSP算法,有兴趣的朋友可以下载回去研究。Sox可以用于任何用途。但是发布源代码

时必须包括版权声明,发布二进制代码必须声明作者。

首先来一个简单的命令,如下:

sox file1.wav -v 0.6 file2.wav

-v是调整音量的选项,0.6是参数,它是一种线性调整,并不是调整到原先的0.6,而是幅值调整,fi

-le2.wav是输出文件。如果-v后面的数字比1大,则增加音量,反之则减少音量,如果是负数那么

在调整的同时还对音频进行反相变换,但也不是可以任意增加的,取值太大容易产生削波现象。要

取什么只好呢?键入下列命令:

sox file1.wav -n stat -v

命令输出结果如下"

1.003

这就得出不失真最大调整量了。上面的stat为效果器,作用是对音频文件做一个统计分析,并将结

果打印到标准错误文件,选项"-v"将打印跟音量调整有关的以"Volume Adjustment:’字样开始的

哪一行。至于-n表示输出文件为空。这样在不干扰音频文件的情况下可得到文件信息。

sox的语法格式如下所示:

sox  全局参数  格式化参数  输入文件1  格式化参数  输入文件2 ... 格式化参数   输出文

件 效果器

首先全局参数在最前面,每个输入文件都有相应的格式化参数,可以有多个输入文件,在来一个输

出文件,前面再加上格式化参数,最后是效果器。这到后面再说。

上面的语法格式很间洁,应该很容易明白。

在用SoX输出一个文件之前,用SoX附带的play命令先听一下效果是个不错的想法。

下面让我们做另外一件事,切掉音频文件。假如我们有一个文件,开头有10秒钟左右我们不想要,

那么我们可以这样做,首先看文件有多长:

sox 杨望.wav -n stat

得到下面输出信息:

Samples read:          20889600

Length (seconds):    236.843537

Scaled by:         2147483647.0

Maximum amplitude:     0.996857

Minimum amplitude:    -0.993195

Midline amplitude:     0.001831

Mean    norm:          0.084509

Mean    amplitude:    -0.000000

RMS     amplitude:     0.119258

Maximum delta:         0.729645

Minimum delta:         0.000000

Mean    delta:         0.058931

RMS     delta:         0.080600

Rough   frequency:         4743

Volume adjustment:        1.003

我们现在关心的是"Length (seconds):236.843537"这一行,它说明了这文件是236.843537秒长,

约等于237秒吧。再键入下列命令:

sox 杨望.wav 杨望1.wav trim 0 10

上面的命令说明了从文件开始截取10秒钟的文件,输出名字是杨望1.wav,0是文件开始,10是时间

概念,表示时长,而非文件长度。再调用SoX的play命令用耳麦听一下,确认了杨望1.wav就是要去

掉的长度以后,就可以开始截取操作了:

rm -rfv 杨望1.wav

sox 杨望.wav 杨望1.wav trim 10 227

输出文件杨望1.wav就是我们想得到的文件。上面的227是最终文件时间长度,等于237减去10。

SoX能够执行常见大多数音频格式转换,如:

sox 杨望.wav sox 杨望.mp3

在安装了mp3lame或libmad库支持以后,能将wav格式转为mp3格式。

下面谈谈文件的联和,假如不指定特别的参数,例如:

sox file1.mp3 file2.mp3 file3.mp3

象上式那样,将file1.mp3, file2.mp3按照次序连接在一起,输出文件是file3.mp3,对于SoX附带的&#

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值