SoX使用手册(中文版)

说明:近期项目需要用到这个东西,网上找了一下下,发现几乎没有什么中文资源,于是在官网上down了一份英文版操作说明,本着想着锻炼下自己的英文水平的目的,翻译翻译,后期慢慢更新,英文水平不太好,翻译不好请见谅~

**************************************************************

此翻译文本为官方文档,仅作为交流使用,未经本人同意禁止转载。

作者:程序

***************************************************************

########################下面开始啦##################################

名字

SoX-声音转换、音频处理中的瑞士军刀

简介
    sox [global-options] [format-options] infile1
[[format-options] infile2] ... [format-options] outfile
[effect [effect-options]] ...
    play [global-options] [format-options] infile1
[[format-options] infile2] ... [format-options]
[effect [effect-options]] ...
    rec [global-options] [format-options] outfile
[effect [effect-options]] ...


描述
     介绍

     SoX可以读写最流行格式的音频文件,并且可以对音频进行任意操作。它可以将多个输入源合成音频。在许多系统,它可以作为一个大众的音频播放器或者多轨录音机。它也可以进行少量的将输入文件切割成多个文件。

所有的SoX功能都能通过sox命令进行使用,为了简化播放和记录音频,如果SoX被调用去播放,输出文件将自动被设置成默认的声音设备。如果被作为录音调用,默认声音设备将被作为输入预案。另外,soxi 命令提供一个更加方便的方式去查询音频文件头信息。

SoX的核心是一个叫做libSoX的库文件,它致力于扩展SoX 或者将它使用在其他项目中,但是其他项目必须引用libSoX。

SoX是一个命令行式的音频处理工具,特别适合去进行快速、简单的编辑和进行批处理,如果你需要一个交互、图形界面的音频编辑器,使用audacity。

然而注意,在SoX命令行中,输出文件的位置和效果是交换了的,上面的逻辑图已经显示了。也需要注意,与文件选择有关的被放入到各自的文件名中,对效果来说,相反的是正确的。为了证明在实际操作中是如何工作的,下面是一个关于SoX如何被使用的样例,例子如下:


sox recital.au recital.wav
将Sun公司的AU格式文件转换成Microsoft公司的WAV文件

sox recital.au −b 16 recital.wav channels 1 rate 16k fade 3 norm
执行相同的格式转换,但是应用四种效果(组合成一个通道、改变重采样率、淡化、性能) ,并且将该结果存储为16位深度的文件。

sox −r 16k −e signed −b 8 −c 1 voice-memo.raw voice-memo.wav
将原始(又称为无标头)音频转换成一个自描述文件格式

sox slow.aiff fixed.aiff speed 1.027
调整音频速度

sox short.wav long.wav longer.wav
连接两个文件

sox −m music.mp3 voice.wav mixed.flac
将两个文件混合

play "The Moonbeams/Greatest/*.ogg" bass +3
播放一个音频集同时应用低音增强效果

play −n −c1 synth sin %−12 sin %−9 sin %−5 sin %−2 fade h 0.1 1 0.1
利用管风琴播放一个合成的小调‘第七和弦’

rec −c 2 radio.aiff trim 0 30:00
记录半小时的立体音频


play −q take1.aiff & rec −M take1.aiff take1−dub.aiff
(被硬件支持的具有POSIX壳)在一个多轨道录音中记录一个新的轨道。


rec −r 44100 −b 16 −e signed-integer −p \
     silence 1 0.50 0.1% 1 10:00 0.1% | \
     sox −p song.ogg silence 1 0.50 0.1% 1 2.0 0.1% : \
     newfile : restart
录制一个流式音频,例如密纹唱片或者盒式录音带,并且在节点分离成多个音频文件,并且沉默两秒。同时,它不会开始录音直到它检测到录音在播放而且检测到了10分钟的沉默。

注:以上仅仅是SoX的功能概述,详细的解释如何去使用SoX参数、文件格式和效果将会在这个文档下面被找到。

文件格式类型
SoX能操作自描述和无标头的音频文件。自描述格式(例如WAV、FLAC、MP3)有一个文件头,其中详细的描述了该音频文件的信号和编码属性。‘生的’或者‘无标头’格式不包含这些信息,所以这些音频特征必须在SoX命令行中描述或者从输入文件中推断。

下面四个特征被用来描述音频数据的格式,它们可以在SoX中进行处理:
采样率
      采样率指的是每秒的采样数(‘Hertz’或者‘HZ’).数字电话通常使用采样率为8000Hz(8kHz),一段时间以来,16或者32KHz变得更加常用。音频光盘使用44100Hz(44.1kHz),数字音频磁带和许多电脑系统使用48kHz,专业的音频系统通常使用96kHz。

样本大小
      指的是用多少位去存储每个样本,现在,通常使用16-bits。8-bit在早前的电脑音频中比较常用,24-bits使用在专业的音频领域,其他大小也有使用。

数据编码
     指的是音频样本的编码方式,一些编码有不同字节序和位序的变种,一些压缩音频数据,与其他格式参数相比,会似存储音频数据花费更少的存储空间(例如,硬盘空间或者传输带宽),而且样本数目会减少。常用的编码方式包括floating-point、u-law、ADPCm、signed-integer PCM,MP3和FLAC。

频道
      指的是文件中包含的音频通道数目。一个(‘mono’)和两个(‘stereo’)应用较为广泛,‘环绕音’音频通常包含六个或者更多的通道。

术语‘比特率’是指一段时间内由编码的音频信号占用存储空间的度量。它通常表示为多少千比特率每秒(kbps,kilo-bits per second)。行业规定电话信号的比特率为64kbps。MP3编码立体音乐一般是128-196kbps。FLAC编码的立体音乐一般是550-760kbps。

一些自描述格式的通常允许文本‘评论’嵌入到文件中,嵌入文本可以用来在许多地方描述音频。比如音乐的标题、作者等。

音频文件评论的一个重要应用是去传递‘回放增益’信息。SoX支持应用回放增益信息(仅仅对于特定的输入文件格式,目前,至少FLAC和Ogg Vorbis),但是不是生成它。注意,在默认情况下,SoX复制支持评论的输入文件评论到输出文件,因此如果输入文件中存在回放增益信息,那么输出文件可能包含回放增益信息。在这种情况下,如果任何一个其他超过简单格式转变被执行了,那么输出文件回放增益信息可能不正确,需要重新被支持该工作的工具来重新计算。

soxi(1)命令可以用来展示音频文件头的信息。

确定和设置文件格式
有多种机制可被SoX用于去为一个音频文件确定或者设置格式特征,根据情况,个性特征可以被不同机制确定。

为了确定一个输入文件的格式,SoX可以使用如下,按照优先级或者可用次序排序。
1. 命令行格式选项
2. 文件头的标题
3. 文件名扩展

为了设置输出文件格式,SoX可用,按照优先级或者可用次序排序。
1. 命令行格式选项
2. 文件扩展名
3. 输入文件格式特征或者最接近被输出文件类型支持

对所有文件,如果文件类型不能被确定,SoX将会在遇到错误的时候退出。命令行格式选项会需要添加或改变去解决这个问题。

播放和记录音频
play 和 rec 命令被提供用来播放和记录,用法如下:

play existing-file.wav        #播放
rec new-file.wav           #记录
等价于
sox existing-file.wav −d
sox −d new-file.wav
当然,更多的选项和效果可以以其他形式被添加到命令行中。

一些系统提供超过一种格式的音频驱动,例如ALSA&OSS、或者SUNAU&AO。系统也有可能拥有超过一种音频设备(又称‘声卡’)。如果有超过一种音频驱动被装入SoX ,并且默认选择的驱动不是所需的,那么AUDIORIVER环境变量可以被用来重写默认驱动,例如。

set AUDIODRIVER=oss
   play ...

AUDIODEV环境变量可以被用来重写默认音频设备,例如
set AUDIODEV=/dev/dsp2
   play ...
   sox ... −t oss
或者是
set AUDIODEV=hw:soundwave,1,2
   play ...
   sox ... −t alsa

注意,设置环境变量的方法因系统而异,对于一些特殊的例子,请参考‘SOX_OPTS’

当播放的一个文件的采样率不被音频输出设备所支持,SoX会自动唤醒 rate 效果去执行必要的采样率转化,为了兼容老的硬件,默认rate质量水平被设置较低,这可以显式指定一个不同质量水平的rate,例如
   play ... rate –m
或者使用—play-rate-arg选项

在一些系统,SoX允许音频回放音量被调整当play的时候。可以通过点击‘v’&‘V’键来实现。

为了去设置一个合适的录音水平,SoX包含一个peak-level 可以通过下面方式被唤醒:
rec -n

录音水平应该被调整(使用系统提供的mixer程序,不是SoX),所以meter偶尔全局出现,并且从不‘在红色’(红色感叹号显示)

精度
许多文件格式在压缩音频的时候丢弃了一些音频信号的信息,转换成这一格式以后再转换回来不会生成一个源文件的拷贝,这里有一个例子,许多格式(例如A-law、GSM)应用于电话,这里低信号带宽比高保真更重要。对于一些格式应用于音乐播放器(例如MP3、Vorbis),拥有足够的保真度,即使是压缩率比较大,也能使便携式播放器可用。

丢弃音频信号信息的格式被称为‘有损’,不丢弃的成为‘无损’。‘质量’一次被用来作为一个原音频信号在使用一个有损格式情况下被重现的程度的衡量标准。

用SoX转换音频文件可以做到无损的话就会无损,即,当不使用有损压缩,当不减少采样率或者轨道数,或者目标文件的位数不少于源文件格式。例如,从8-bit PCM格式转换成16-bit PCM格式是无损的,但是,从8-bit PCM转换成A-law是有损的。

注:SoX在执行任何音频操作之前,将所有音频文件转换成一种非压缩格式。这意味着,操作一个用一种有损格式存储的文件可能造成进一步失真。例如

sox long.mp3 short.mp3 trim 10

SoX首先解压输入的MP3文件,接着应用trim效果,最后创建输出文件通过重压缩音频文
件,尽可能减少保真度。因此,如果最终的目的是有损的压缩音频,强烈推荐执行所有音频
处理使用使用无损文件格式并且仅仅在最后阶段转换到有损格式。

注:通常,用单SoX调用来实现多重效果会比使用多SoX调用有更好的效果。

剪裁
剪裁当音频信号电平(或音量)超出表示的范围时发生的失真。在大多数情况下,剪裁是不
受欢迎的,因此应该通过调整它所在点之前的水平来校正。

在SoX,当你期待时,剪裁可能出现,当使用vol 或 gain 效果去增加音频音量,剪裁可能
也会和其他许多效果一起出现,当转换一种格式到另一种,或者是简单的播放音频。

播放一个音频文件通常包含重采样,并且通过模拟元件进行处理,可以引入一个小的直流偏
置或者放大,所有这些都会产生失真当如果音频信号电平非常接近剪裁点。

因为这些原因&#

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值