说明:近期项目需要用到这个东西,网上找了一下下,发现几乎没有什么中文资源,于是在官网上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 效果去增加音频音量,剪裁可能
也会和其他许多效果一起出现,当转换一种格式到另一种,或者是简单的播放音频。
播放一个音频文件通常包含重采样,并且通过模拟元件进行处理,可以引入一个小的直流偏
置或者放大,所有这些都会产生失真当如果音频信号电平非常接近剪裁点。
因为这些原因,通常认为,一个音频文件信号电平有一些‘headroom’,即,它不超过给定表
示的最大可能值以下的特定级别。一些标准机构建议尽可能9dB 净空,但是通常情况下,
3dB就足够了。注意这种睿智在现代音乐制作中好像已经失去了。事实上,许多CDs,MP3s
等,现在都在0dBFS的操作水准上,即音频剪裁和付费一样。
SoX的 stat 和stats 效果能辅助确定音频文件中的信号电平,gain 或 or效果能被用于阻
止剪裁。
sox dull.wav bright.wav gain −6 treble +6
确保高音提升不会剪裁。
如果剪裁出现在程序的任意节点,SoX会显示一个警告信息对于这个操作。
也可参考 –G 和 gain 和 norm 操作。
输入文件组合
SoX的输入组合器可以被定义去结合多个文件,通过使用下面方法:‘concatenate’,‘sequence’、‘mix’、‘mix-power’、‘merge’、‘multiply’。对于play默认的方式是‘sequence’,对于rec 和 sox默认的方式是‘concatenate’。
对于其他不是‘sequence’的方法,多输入文件需要有相同的采样率。如果必要,单独的SoX调用可以用来去使采样率调整优先级去优先组合。
对于play,‘sequence’组合方法是自动选择的,非常近似于‘concatenate’,在音频文件中,输入文件是连续发送到输出文件的,然而,输出文件可能会关闭,并且重新打开,这是在输入和输出文件之间的过渡。这可能就是在发送不同类型的音频到一个输出文件所需要的东西,但是当输出不是一个正常的文件的时候可能就不太有效了。
如果不是‘mix’或者‘mix-power’组合方法被选中,然后两种或更多的输入文件需要被选择,并且将会混合一起去形成输出文件。每个输入文件的频道数目不需要相同,一个合并的音频文件折中所有输入文件的频道。非组合是可能的,当多次调用SoX的remix功能,比如,两个单通道文件能够被合成为一个立体文件。第一个和第二个单通道文件会变成立体声文件左通道和右通道。
‘multiply’结合方法增加相应频道的样本值(在区间-1 到 1之间被视为数字),如果输入文件中的通道数量不相同,那么消失的频道被任务包含所有的0。
当组合输入文件时,在音频被组合完成后,SoX应用了任何指定的效果(比如包括vol音量调节效果)。然而,在组合发生前,单独的设置输入文件的音量值通常都非常有效。
对于所有的组合方法,输入文件音量的调整可以通过-v操作手动完成,而且可以操作一个或者多个输入文件。如果只是仅仅给一些输入文件,那么其他设备就没有音量调节了。在一些场景下,自动音量调节可能被应用。
-v 操作可以被用来显示输入文件音量进行自动或者手动调整。
在输入混合文件的时候需要考虑的一些特殊点。
不像其他方法,‘mix’合成有潜力在组合器中去造成剪切,如果没有执行平衡操作。在这种情况下,如果手动音量调整没有被设置,SoX将会尝试去确认,对于每个输入信号的1/n因素,当自动调整音量时,剪切没有发生,其中n是输入文件的数目。如果在音频中的结果过于平静或者否则不平衡,然后输入文件音量可以向上面描述的那样被手动的设置,在mix中使用norm是另外一个选择。
如果混合的音频在某些点听起来太响,但是在其他点太安静。那么动态范围压缩将需要被应用去修正这个结果-参考compand效果。
使用‘mix-power’结合方法,混合音量几乎等于一个输入信号。这是通过使用¹/ √n 因素实现平衡,而不是使用1/n。注意这个平衡因子不保证剪裁不正确,但是剪裁的数量通常会比较少,但是结果失真通常是难以察觉的。
输出文件
SoX的默认行为是去使用一个或者多个输入文件,然后将它们写入一个单独的输出文件。这个默认行为可以通过在效果列表中指定伪效果‘newfile’。SoX将会进入多输出模式。
在多输出模式下,当优先于‘newfile’的效果暗示它们执行了,一个新文件将被创建。在效果链中排在‘newfile’后面的会开始,并且它们的输出会被存到新文件中。
在多输出模式下,一个独特的数字会被自动加在文件名得后面。如果这个文件名有一个扩展,那么这个数字是被插入在这个扩展之前的。这个操作可以通过设置a%n来进行设置,可以放到在这个文件名中任何地方。一个可选的数字可以被放置,当%去只是一个最小的宽度来放置这个数字。
多输出模式不是很有效,除非早于‘newfile’ 指定的一个效果能停止效果链。如果文件结尾早于效果链停止它自己出现了,那么没有文件将会被创建,它将会是空的。
下面是一个例子,将一个输入文件的前60秒分解成2个30秒文件,并且忽略其他部分。
sox song.wav ringtone%1n.wav trim 0 30 : newfile : trim 0 30
停止SoX
通常SoX一旦它从输入文件中读取完了所有可用音频,然后将会完成它的处理并且自动退出。
若需要,它可以通过发送一个中断信号给进程来提前中断(通常通过按键盘中断键,一般是Ctrl-C)。这在一些环境中是一个自然需求。比如,当使用SoX去做录音。注意,当使用SoX去播放多文件,Ctrl-C表现略有不同。按一次会造成SoX跳过下一个文件,连续按两次会造成SoX退出。
另一个提前停止程序的操作是去使用一个有时间优先级的效果或者取样计数去明确停止时间点,剪切效果是这个效果的一个例子。一旦所有效果链停止了,那么SoX也停止了。
文件名
文件名可以是简单的文件名,绝对或者相对路径名,或者URLs(仅仅对于输入文件),注意URL支持需要wget是可用的。
注意:给SoX一个和SoX的功能名相同的输入或者输出文件名,SoX将不会工作,因为SoX会把它当成一个特定功能。唯一的变通方法是去避免使用这样的文件名。这不会很困难因为大多数的音频文件有一个文件名扩展,功能名将不会有扩展。
特殊文件名
下面的特殊文件名可能会在一个特定的环境中使用去替代一个在命令行中的正常文件名:
- SoX可以在简单的流水线操作中通过应用文件名‘-’,如果是作为一个输入文件名使用,将会使SoX从一个‘标准输入流’(stdin)中读取音频文件,如果是作为一个输出名,将会使SoX发送音频文件到‘标准输出流’(stdout)。注意,当把这条命令使用在输出文件,或者有时候使用在输入文件时,文件的类型必须要给出。
“|program[options]…”
这个指令可以用来替代一个输入文件去明确将给定的标准输出当做一个输入文件使用。不像-指令,这个指令可以将一些输入指向一个SoX指令。比如,如果‘genw’生成单声道MAV格式信号到它的标准输出,那么下面的指令将会从两个生成的单声道音频合成一个立体声文件。
sox −M "|genw −−imd −" "|genw −−thd −" out.wav
“wildcard-filename”
明确文件名‘globbing’应该被SoX执行,而不是被一个脚本执行。这允许一个文件操作的单独集合被应用到一组文件。例如,如果当前路径包含三个‘vox’文件,file1.vox,file2.vox,和file3.vox,然后
play −−rate 6k *.vox
将会被一个脚本扩展(在大多数环境下)
play −−rate 6k file1.voxfile2.vox file3.vox
下面会仅仅处理第一个文件,当做采样率为6k
play −−rate 6k "*.vox"
给定的采样率操作将会被应用到所有的三个文件。
-p, --sox-pipe
这会被使用去替代要给输出文件,并且去明确这个SoX指令将会被当做一个输入管道使用,例如,下面指令:
play "|sox −n −p synth 2" "|sox −n −p synth 2 tremolo 10" stat
连续操作两个“文件”,每个文件的操作方法不同
-p 事实上市‘-t sox-’的别名
-d,--default-device
这个可以被用来替换输入或输出文件名去确认默认音频设备(如果已经在SoX中建立的了话)是在被使用。这比较类似唤醒rec 或者 play功能。
-n,--null
这个可以被用来替换输入或者输出文件去确认一个‘null file’是被使用的。注意这里的‘null file’与SoX确认机制有关,并且没有以一个相似的名字来关联任何操作系统机制。
用一个null file去输入音频是和使用一个正常的音频文件会包含无限的沉默,并且并不总是有用,除非使用一个效果明确一个有限的时间长度(比如trim或者synth)。
使用一个空文件去输出音频量,去丢弃音频,通常对于操作功能有效。是产生有关音频的信息而不是去影响音频(比如noiseprof 或者 stat)
一个空文件的采样率通常默认为48khz,但是,作为一个普通文件,这可能会被覆盖如果需要使用命令行格式操作(见下面)
支持文件&音频设备类型
参考 soxformat(7)的列表,里面描述了支持的文件格式和音频设备驱动。
选项
全局选项
这些选项可以在第一个功能名之前,在任何节点被命令行指定。
SOX_OPTS环境变量能够被用来去为SoX的全局选项提供可选默认值,例如:
SOX_OPTS="−−buffer 20000 −−play−rate−arg −hs −−temp /mnt/temp"
注意,设置SOX_OPTS能够潜在的增加脚本不想要的改变或者其他程序唤醒SoX。SOX_OPTS最好用在当SoX正在运行,且能反馈环境的事件上(比如给的例子)。以默认方式启用选项比如—no-clobber使用一个别名,可能会被更好的处理,因为一个脚本别名不会影响脚本中的操作。
一种方式去确认一个脚本不会被SOX_OPTS影响是在脚本启动前去清除SOX_OPTS,但是这些也会失去SOX_OPTS系统所带的默认选项。一个可以替换的方法是去显式去调用带有默认选项值的SoX。比如:
SOX_OPTS="−V −−no-clobber"
...
sox −V2 −−clobber $input $output ...
注意,这种设置环境变量的方式根据系统的不同而有所不同,下面是一些例子
Unix bash:
export SOX_OPTS="−V −−no-clobber"
Unix csh:
setenv SOX_OPTS "−V −−no-clobber"
MS-DOS/MS-Windows:
set SOX_OPTS=−V −−no-clobber
微软系统界面:通过系统控制板:系统:高级:环境变量
Mac系统X界面:参考苹果科技Q&A QA1067文件
--buffer BYTES, --input—bufferBYTES
设置缓存字节的大小用来处理音频(通常是8192)--buffer应用于输入、功能和输出进程。--input-buffer仅仅应用于输入进程(如果两者都给定了,它覆盖了—buffer)。
注意太大的—buffer值将会造成SoX对于请求的响应变得很慢,造成停止或者跳过当前的输入文件。
--clobber
在重写一个相同名字的存在文件之前不会提示,这是一个默认行为。
--combine concatenate|merge|mix|mix-power|multiply|sequence
选择输入文件的组合方法,对于这些,短的选项是可行的:-m意味着选择‘mix‘,-M意味着选择‘merge’,-T意味着选择‘multiply’。
参考输入文件组合中对于不同组合方法的描述。
-D, --no-dither
禁用自动抖动-参考上面的‘Dithering’,一个例子解释为什么偶尔有用是,如果一个文件从16bit转换到24bit,其目的是进行一些处理。但是事实上,当原始的16bit遗失了,就不需要进行任何操作了,严格来讲,当转换回16位的时候不需要任何抖动,参考stats功能如何去确定一个音频文件的实际深度。
--effects-file FILENAME
使用FILENAME去获取所有功能和他们的参数。这个文件将按照命令行中的参数进行解析。一个新行可以被用来替代一个特定的行,用标志来分离效果链。为了方便,在文件末尾的标记将会自动忽略。如果你想去确定一个空的最后的效果链,使用一个显式的,通过在文件的最后一行说明。这个操作在命令行上造成任何特定的效果都将会被丢弃。
-G,--guard
自动唤醒gain效果去抵抗简介,例如:
sox −G infile −b 16 outfile rate 44100 dither –s
也可以写成
sox infile −b 16outfile gain −h rate 44100 gain −rh dither–s
请参考 –V ,--norm和gain效果
-h,--help
显示版本号和使用信息
--help-effect NAME
显示特定效果的使用信息,all可以用来显示所有效果的使用信息。
--help-format NAME
显示特定文件格式信息,all可以用来显示所有格式的信息。
--i,--info
仅仅当给定sox的第一个参数,和soxi(1)效果一样
-m|-M
分别等于—combine mix 和 –combinemerge
--magic
如果SoX被选项‘libmagic’库所建立,那么这个指令可以用来帮助去检测音频文件类型。
--multi-threaded|--single-threaded
默认情况下,SoX是单进程,如果—multi-threaded选项被选择了,那么SoX将会在多线程或多核架构上执行多频道效果。这可能会减少执行时间,或许有些时间它比较必要去使用这个操作去连通一个比默认更大的缓冲块来从多进程中获取好处。
--no-clobber
在重写一个和输出文件同名的存在文件前提示。
注:无意识的重写一个文件可能比你想象的要容易很多,比如,你若意外输入
sox file1 file2 effect1 effect2 ...
当你真实意图是
play file1 file2 effect1 effect2 ...
然而,在这个操作下,文件2将会被重写。因此,使用这个操作是被建议的。SOX_OPTS,一个脚本别名,脚本或者补丁文件可能是一个合适方式去永久支持它。
--norm[=db-level]
自动唤醒gain效果去守卫防止剪裁,并且去正常化音频。例如
sox −−norm infile −b 16 outfile rate 44100 dither –s
缩写为
sox infile −b 16outfile gain −h rate 44100 gain −nh dither–s
随意的是,音频能够被正常化通过给一个低于 0 dBFS水平。
sox −−norm=−3 infile outfile
可以参考-V,-G和gain效果
--play-rate-arg ARG
选一个质量选项去使用,当这个‘rate’效果在播放音频的时候自动被唤醒,这个选项是通过SOX_OPTS环境变量来进行一般设置的。
--plot gnuplot|octave|off
如果没有设置成off(默认如果—plot没有被给出),运行一个模式可以被使用,与gnuplot项目或者GNUOctave 项目相连接。基于功能去辅助一些转换功能的选择和配置。对于第一个给定功能,会支持选定的画图工程。SoX将会输出指令去画功能的转换功能,并且在没有执行任何音频进程的时候退出。例如
sox −−plot octave input-file −n highpass 1320 > highpass.plt
octave highpass.plt
-q, --no-show-progress
以安静模式运行,当SoX不能完成的时候,这是-s选项操作的反例。
-R
以‘repeatable’模式运行,当这个选项被给出了,当被应用了,SoX将会嵌入一个固定的时间戳到输出文件中(例如AIFF),并且会‘seed’伪随机生成数(例如dither),因此,确保相同的参数和输入文件,连续的SoX调用会产生相同的结果。
--replay-gain track|album|off
选择对输入文件应用或者不应用replay-gain调整,默认对于sox和rec是off状态,album对于play来说保证最前面两个输入文件有相同的艺术家和相册名,但是track则没有。
-S,--show-progress
显示输入文件的格式/头部信息,并且以输入文件的百分比来运行程序并且统计使用时间和剩余时间,还有写入到输出文件的采样率。同样显示的还有一个峰值显示器,当发生剪切的时候还有一个提示,峰值显示仪显示两天信道,并被用来校正数字音频。
-T 等于 –combine multiply
--temp DIRECTORY
确定当前任何临时文件应该以给定的DIRECTORY来进行创建,当有权限或者空闲空间问题的时候这个命令十分有效。在这种例子下,使用‘--temp’(使用当前路径)通常是一个好的解决方案。
--version
显示SoX的版本号并且退出。
-V[level]
设置冗余,这对于如何去看SoX如何调用自动效果十分有效。
SoX在控制器中一句下面冗余长度来显示信息:
0 没有信息被显示,用来去退出状态来确定是否有错误发生。
1 仅仅一个错误信息被显示,它们在SOX不能完成需求指令的时候被生成。
2 所有的警告信息被显示,它们在SOX能完成需求信息,但是不能精确的依据需求命令参数,或者有一个剪切发生了。
3 所有有关进程阶段的描述将被显示,对于准确的观察SoX如何执行你的音频非常有效
4 用来帮助Debugging Sox的也被显示了。
默认情况下,冗余等级被设置成2(显示错误和警告),每出现一次-V操作,冗余度会增加1.作为选择,冗余度可以被设置为一个绝对数字,通过放在-V后面,比如,-V0表示设置冗余度为0.
输入文件选项
这些选项通常只应用于输入文件,并且或许只在输入文件之前的命令行中。
--ignore-length
重写一个音频文件头的音频长度,如果这个指令被给定了,那么SoX将会保持读取音频直到达到输入文件的尾部。
-v,--volume FACTOR
当组合多个输入文件的时候准备使用,这个指令可以调整文件的数目,依据FACTOR后面影响因子。这允许平衡另一个输入文件,这是线性调整,所以一个小于1的数会减少文件的数目,一个大于1的数会增加文件数目。如果一个负数被给定去调节数目,这个音频信号会被反转。可以参看norm,vol和gain效果,参看Input File Balancing。
Input&Output File Format Options
这些指令被用于输入或者输出文件,他们立刻在命令行之前执行,尤其对于无头文件或者当确定一个输出文件的格式的时候,这不同于处理输入文件。
-b BITS, --bits BITS
每个编码的位长(有时是位深,有时是字长),不适合于复杂的编码比如像MP3或者GSM编码,不需要编码有一个混合的位数,比如A/u-law,ADPCM
对于每个输入文件,在一个‘raw’(无头文件)中最常用的通知SoX每个样本的位数的操作如下。
sox −r 16k −e signed −b 8 input.raw output.wav
转换一个典型的‘raw’文件到一个自描述‘WAV’文件。
对于一个输出文件,这个指令可以被用来去设置输出编码大小,默认,这个输出编码大小会被设置成输入编码大小。比如:
sox input.cdda −b 24 output.wav
转换一个raw CD数字音频到一个24位‘WAV’文件
-c CHANNELS, --channels CHANNELS
音频文件的音频信道数量,这可以是很多大于0的数。
对于一个输入文件,这是在一个‘raw’音频文件中,最常用的通知SoX该文件的信道数的指令,通常对于‘headered’文件也十分有效,为了重写头部中的值,注意,这仅仅支持一些文件类型。比如
sox −r 48k −e float −b 32 −c 2 input.raw output.wav
转换一个典型‘raw’文件到一个自定义‘WAV’文件
play −c 1 music.wav
解释文件数据为单信道,不管在文件头中做了怎样的说明。注意,如果这个文件事实上有两个信道,这会导致文件的播放速度减半。
对于一个输出文件,这个选项提供了一个缩写去明确,这个channels功能应该为了改变音频信号的数量而被唤醒。比如,下面两个指令是相等的。
sox input.wav −c 1 output.wav bass −b 24
sox input.wav output.wav bass −b 24 channels 1
通常第二种方式更加灵活,它允许功能随意排序
-e ENCODING, --encoding ENCODING
音频编码类型,有时候需要一个文件类型支持多种编码类型。比如,对于raw,WAV,或者AU(MP3或者FLAC),可用的编码类型如下:
signed-integer
PCM数据用signed-interger来进行存储,通常使用16或者24位编码大小,0代表最小信号功率。
unsigned-integer
PCM数据用unsigned integers来进行存储,通常使用8位编码大小,0代表最大信号功率。
floating-point
PCM数据以IEEE 753 单精度(32-bit)或者双精度(64-bit)浮点数存储,0代表最小信号功率。
a- law
国际电话编码用对数进行,通常是每个样本是8位。它大约等于13-bitPCM,有时
以反码形式进行存储。
u-law,mu-law
北美电话标准用对数进行,通常是每个样本是8位。它大约等于14位PCM,有时以反码形式进行存储。
oki-adpcm
OKI(比如VOX,Dialogic或者Intel)4-bitADPCM。它大约等于12位PCM。ADPCM是一种音频压缩格式,在语音质量和编码速度之间有较好的均衡。
ima-adpcm
IMA(比如DVI)4-bit ADPCM,它大约等于13-bitPCM。
ms-adpcm
Microsoft 4-bitADPCM,它大约等于14位PCM
gsm-full-rate
GSM被用于世界上绝大多数无线电话。它使用一些不同bit-rate的音频格式和连接质量。SoX支持GSM的原生13kbps‘FULL Rate’音频格式,通常是用集成CPU来处理GSM音频。
编码名可以被缩写,并且不会混淆。例如‘unsigned-integer’可以被写成‘un’,但是不是‘u’(‘u-law’的缩写)
对一个输入文件,该功能最常用的用法是去通知SoX关于一个‘raw’音频文件的编码。
对于一个输出文件,这个选项可以被用来设置输出编码类型,比如:
sox input.cdda −e float output1.wav
sox input.cdda −b 64 −e float output2.wav
转换一个raw CD数字音频(16-bit,单精度)到一个单点‘WAV’文件(单&多精度)。
默认,这个输出编码类型会被设置成输入编码类型。
--no –glob
确认文件名‘globbing’不会在下面的文件名中被SoX操作,例如,如果当前路径包含两个文件‘five-seconds.wav’and‘five*.wav‘ 然后
play −−no−glob "five*.wav"
仅仅可以被用来去播放five*.wav文件
-r,--rate RATE[k]
以Hz为单位给出文件的采样频率(或者kHz如果带有k的话)
对一个输入文件,最常用的操作是去通知SoX一个无头文件的采样率。偶尔,也可以使用这个指令去处理‘headered’文件,为了去重写头文件的值。注意,这仅仅支持当前文件类型,例如,如果音频是以48k的采样率来进行记录的话,它会往后播放一点点,如果说1.5%,太慢了。
sox −r 48720 input.wav output.wav
通过文件头快速的校正速度(请参看speed功能更多的有效解决这个问题的办法)
对一个输出文件,这个选项提供一个简单的命令来确定这个rate功能应该被唤醒,为了去通过给定的参数去改变这个音频信号的采样率。例如,下面两个指令是相等的。
sox input.wav −r 48k output.wav bass −b 24
sox input.wav output.wav bass −b 24 rate 48k
通常第二种形式灵活性更好,因为它允许rate选项被给出,,并且允许这些选项被随意排序。
-t -–type FILE-TYPE
给出这个音频文件的类型。对于输入文件和输出文件,这个指令都是用来去通知SoX无头文件的类型(例如、raw、mp3),在真实的类型不能通过一个给定的文件扩展名来确定的时候。例如
another-command | sox −t mp3 − output.wav
sox input.wav −t raw output.bin
它也能通过一个输入文件扩展来被用来重写隐含类型,但是如果重写的一个有头文件的类型,SoX将会退出,在当前的头文件不是同一个类型的时候,报出一个错误。
查看soxformat(7)获取支持文件类型列表。
-L,--endian little
-B,--endian big
-X,--endian swap
这个指令用来明确这个音频文件的byte-order是‘little endian’还是‘big endian’,或者是‘endian swap’。字节顺序仅仅以浮点型、或者符号或无符号的l6或者更大的位的整型来进行编码。通常用来明确一个无头文件的这些选项,某些必要的时候也应用于自定义文件。一个给定的字节顺序设定操作可能会被忽略,对于一个输入文件含有一个明确的编码说明的时候,或者当一个输出文件为一个音频设备的时候。
注意:不像其他格式特征,一个输入文件的编码顺序(byte、nibble&bit ordering)不是自动应用于输出文件,所以,例如,当下面运行在一个little-endian系统时:
sox −B audio.s16 trimmed.s16 trim 2
trimmed.s16将会被生成为little-endian
sox −B audio.s16 trimmed.s16 trim 2
一定被用来保存成big-endianness的输出文件
这-v选项能够被用来检查选中的顺序。
-N,--reverse –nibbles
确定这个应该保存的样本的nibble ordering,有时候对于ADPCM-based格式来说非常有用。
-X,--reverse-bits
确定需要被保存样本文件的bit ordering,有时候对于一些(多数无头)格式很有效。
输出文件格式选项
这些选项仅仅应用于输出文件,并且仅仅应用在输出文件的命令行之前。
--add-comment TEXT
在输出文件头上添加一个评论
--comment TEXT
指定要在文件头中存储的评论文本
SoX将会提供一个默认评论,如果这个指令没有被给出,去指定没有评论应该被存储在输出文件,使用—comment
--comment-file FILENAME
指定一个文件包含评论文本,存储在输出文件头
-C, --compression FACTOR
压缩因子用来压缩文件,如果这个选项没有被给出,将会应用一个默认的压缩因子。这个压缩因子对于不同的压缩文件格式有不同的解释。查看文件格式的描述,并使用这个soxformat(7)获取更多信息。
EFFECTs
为了转换、播放和记录音频文件。SoX 可以被用来调用一系列音频效果。多数效果可以被应用,通过明确它们在SoX命令行的结尾,形成一个‘effects chain’。注意,实时应用多个效果需要一个高性能的计算机,停止其他应用可能会缓解问题。
一些SoX效果最开始是被打算应用于一个单一乐器或者‘声音’,更进一步,remix效果和全局SoX选项 –M可以被用来隔离然后从一个多轨道记录中重组轨道。
多重效果链
一个单一效果链是一个或多个效果组成的。音频从输入开始通过效果链进行运行,直到效果链的尾部,或者一个效果链中的效果请求终止效果链。
SoX支持在输入音频上面运行多重效果链。在这种情况下,当一个链提示它完成了处理音频,这个音频文件将会被送达到下一个效果链。这个保持到直到没有效果链或者输入文件到达了文件的尾部。
一个效果链可以被终止通过放置: 在一个效果后面,任何跟随效果都是新的效果链的一部分。
将一个终止效果放在效果链的最前面是十分重要的。这是因为任何被效果所缓存的采样率,在终止左边全部被丢弃。丢弃的采样率数量与—buffer选项有关,如果终止效果不是第一个,它应该被保持很小,与采样率有关。更多有关终止效果的信息可以被在Stopping SoX找到。
有些pseudo-effects(伪指令)用来帮助使用效果链。newfile 指令将会启动去写到一个新的输出文件,在移动到下一个效果链之前。restart效果将会移动到最开始的效果量。伪指令必须被指定在效果链中的第一个效果,并且作为链中的唯一效果。(他们必须要有一个:在他们被明确之前)
下面是一个多效果链的样例。他会切割输入文件,以30s为一个长度来进行切割成多个文件。每个输出文件名将会有一个唯一的数字作为它们的名字。具体参考Output File章节。
sox infile.wav output.wav trim 0 30 : newfile : restart
Common Notation And Parameters
在下面的描述中,brackets[]用来表示参数是可选的。braces{}用来表示这些可以被选并且可以重复的。angle brackets<>去表示这些重复但是不可选。在适用的情况下,默认值对于选择参数可以被放到()中。
下面的参数使用了一些效果,有相同的含义:
center[k]
查看频率
frequency[k]
一个频率用Hz 或者加上’k‘,kHz
gain
一个能量收益用dB表示,0表示没有收益,负数表示稀释。
position
在音频流中的位置,这个语法是[=|+|-]timespec,其中timespec是一个时间规范,这个操作的第一个参数意味着这个timespec被解释为音频的start(=)或者end(-),或者去前面位置,如果功能接受多位置参数(+)。这个音频的长度必须是知道的,为了然后end-relative更好的个哦你工作。一些功能也接受 -0 在音频的最后,因此,即使不知道文件的长度,= ,+,-都默认依赖于效果。比如position(+)。
Examples: =2:00(音频流中2分钟),-100s(音频尾部一百样本),+0:12+10s(12秒和当前位置的10个样本),-0.5+1s(在音频尾部一个样本少0.5秒)
width[h|k|o|q]
用来去确认拦截器的带宽,许多不同方法去确认这个带宽是有效的(即使不是所有的效果)。一个特征可能会被添加和需求方法如下:
对每一个功能,使用这个参数,这个默认方法(如果没有参数被附加)是一个第一展现出来的效果描述。
多数功能都期待一个音频位置或者时间参数,也就是说 time specification ,接受下面两种形式。
[[hours:]minutes]:seconds[.frac][t]
一个定义‘1:30.5’指的是1分30.5秒。这个t是完全可选的。注意,组件值不需要被标准化。比如‘1:23:45’、‘83:45’、‘79:0285’、‘1:0:1425’、‘1::1425’和‘5025’都是合法的,并且彼此相等。
samples
直接明确样本数量,比如‘8000s’,对一个大样本数量,e标记是被支持的:‘1.7e6s’是和’1700000s‘一样的。
规格也可以被+和-等组成一个新的时间规格,可以在右边进行添加,也可以从左边进行减少。‘3:00-200s’意味着3分钟少200个采样。
去查看如果SoX有支持这一个选项功能,输入sox –h 在名字列表中查看‘EFFECTS’
Supported Effects
注意:功能表的分类列表可以在‘README’文件中被找到。
allpass frequency[k] width[h|k|o|q]
应用一个中心频率为Hz的双极全通滤波器,以及滤波器的拦截带宽。一个全通拦截器改变音频的频率和相位关系,但是不改变它的频率和振幅的关系。
这个效果支持 –plot全局选项
band[-n] center[k] [width[h|k|o|q]]
应用一个band-pass过滤器。频率在中心频率上降低了对数,这width参数给出下降的斜率。这个频率在中心的基础上+或者-width将会在他们原来的振幅上的一半。band 是默认的模型导向的倾斜音频。也就是说,voice、singing或者乐器音乐。-n选项使用给一个可替换模式非倾斜环境。警告: - n 引入一个能量收益大约为11dB到拦截器,所以小心输出剪切。band在拦截器的形状中引入噪音,也就是说,在中心频率上达到峰值,这个功能支持—plot全局变量。
也可以参考sinc看一下bandpass拦截器。
bandpass|bandreject[-c] frequency[k] width[h|k|o|q]
应用一个双极 Butterworth band-pass or band-reject 拦截器在中心频率上,并且(3dB-point)带宽。-c选项仅仅用于bandpass并且选择一个常数获取而不是默认:常量0dB尖峰获取。拦截器滚动每把分度6dB(20dB/s),详细在细节[1]中描述。
这些效果支持 –plot 全局选项
查看sinc中的bandpass拦截器
bandreject frequency[k] width[h|k|o|q]
用一个band-reject 拦截器,查看bandpass功能描述来获取详细信息。
bass|treblegain[frequency[k][width[s|h|k|o|q]]]
加速或者剪切音频的低音或者高音频率,通过使用双极搁置拦截器,通过一个反应,与hi-fi的tone-controls。这通常也被认为是搁置平衡(EQ)
增益为0Hz,或者任何低于22KHz并且theNyquist frequency。游泳范围是-20 到 +20.当使用一个积极增益的时候注意剪裁。
如果需要,这个拦截器可以使用以下参数微调。
频率设置为拦截器的中心频率,所以就可以被用来扩展或者减少被用来加速或者剪切的频率范围。默认值是100Hz(对于低音)或者3KHz(对于高音)
宽度决定了过滤器转换是多么的陡。除了上面描述的公共宽度确认方法,‘slope’可能会被使用,‘slope’的有效范围是0.2,对于一个平缓的坡度,最大为1,对于一个陡峭的坡,默认值为0.5。
拦截器在【1】中详细描述了
这些功能支持—plot全局选项
也可以看equlizer为了一个峰值平衡效果
bend[-f frame-rate(25)][-oover-sample(16)]{
start-position(+),cents,end-positon(+)}
在特定的时间用特定的速度来改变音高。每个给定的提高三倍:开始位置,cents,结束点确定一个弯道。cents是cents的数量(100cents = 1 semitone)来使音调弯曲。其他值分别明确了时间点去开始和结束音调弯曲。
比如,一个初始音调生成了,然后弯曲三次,总共产生四种不同的音符。
play −n synth 2.5 sin 667 gain 1 \
bend.35,180,.25 .15,740,.53 0,−520,.3
这里,第一个弯曲从0.35到0.6,第二个从0.75到1.28秒。注意,本例中的剪切是故意的,去删除它,使用gain -5 替代gain 1。
请参考pitch
biquad b0 b1 b2 a0 a1 a2
鉴于给定的参数应用一个biquadIIR拦截器,其中b*和a*分别是分子和分母的系数。
参考 http://en.wikipedia.org/wiki/Digital_biquad_filter(where a0 = 1).
这个功能支持 --plot全局选项
channels CHANNELS
调用一个简单的算法去改变一个单信道音频文件的信道数目,通过给定的CHANNELS参数。采用混合如果减少信道数,采用复制如果增加信道数。
channels功能是自动调用的,如果SoX的 –c 选项确定了一个不同于输入文件的信道。作为一种选择,如果这个功能被明确的给出,那么-c选项不需要被给出。例如,下面两个指令是相等的。
sox input.wav −c 1 output.wav bass −b 24
soxinput.wav output.wav bass −b 24 channels 1
通常第二种形式更加灵活,它允许功能随意排序。
请参考remix功能,它允许信道被任意混合/选择
chorus gain-in gain-out<delay decayspeed depth –s|-t>
为音频添加一个chorus效果。这个可以让一个单一的声音像一个合唱,也可以应用到乐器方面。
合唱像一个回声效果,但是对于回声,延迟是一个常数。回声,常用一个正弦或者三角调制。调制深度决定了调制延迟的范围是在播放前,还是在延迟后。因此延迟声音会听起来慢一点或者快一点,这是围绕原始声音的一种延迟声音,像一个合唱中一些不重要的声音。参考[3]获取更多合唱效果信息。
每一四元参数 延迟/衰减/加速/深度 给出一个毫秒延迟并且用Hz表示调制速度使用深度。这调制不是正弦波(-s),也不是三角形波(-t)。-out是给出输出文件的音量。
一个典型的延迟是大约40ms到60ms;调制速度最好接近0.25Hz并且调制深度大约是2ms。比如,一个单延迟:
play guitar1.wavchorus 0.7 0.9 55 0.4 0.25 2 –t
两个延迟在原始的采样率上
play guitar1.wavchorus 0.6 0.9 50 0.4 0.25 2 −t \
60 0.32 0.4 1.3 –s
一个更满的环绕合唱
play guitar1.wavchorus 0.5 0.9 50 0.4 0.25 2 −t \
60 0.32 0.4 2.3 −t 40 0.3 0.3 1.3 −s
compand attack1,decay1{,attack2,decay2}
[soft-knee-dB:]in-dB1[,out-dB1]{,in-dB2,out-dB2}
[gain[initial-volume-dB[delay]]]
Compand(compress or expand) 音频的动态范围
这个attack 和 decay参数(用s)确定这个输入音量得平均瞬时水平和它的音量。attacks 与音量的增加有关,decay与减少有关。对大多数情况,这个attack时间应该比decay时间要短,因为人类的耳朵对突然的高音比对突然的低音更加敏感。当超过一组attack/decay参数需要确定时,每个输入音道是单独compand的,并且参数的功能必须和输入频道的数量一样,特定的值是0.3,0.8秒。
第二个参数是一系列点,用dB为单位来表明compand转换功能,与最大可能信号幅度。输入值必须是严格递增,但是转换功能不是必须单调上升。如果省略,out-dB1默认与in-dB1保持一致。水准低于in-dB1不会被compand(但是可能也会被应用),点0,0是被假设的,但是也可能被重写。如果列表前有一个soft-knee-dB值,那么点在传递函数上相邻的点上时,将进行四舍五入。典型的转换函数的值为6:-70,-60,-20
第三个参数是一个增加参数,用dB作为单位,应用在转换函数的所有点上面,并且允许在整体获得上做简单转换。
第四个参数是当companding开始的时候每个信道的一个假设的初始水平,这允许用户去应用一个名义上的初始值。所以,比如,一个非常大获取参数没有被应用到初始信号水平,当companding功能开始去操作了。它非常有可能出现在这样一个事件中,输出将会严重剪切,当compander获得合适的调整,一个典型的值是-90dB
第五个参数是延迟秒数,输入信号被立马分析去控制这个compander,但是在传输给一个音量调节器之前会被延迟,明确一个延迟大约等于attack/decay 时间允许compander在‘predictive’中高效的操作,而不是一个reactive模式,一个典型值是0.2秒。
下面的例子可能被用来制作一段音乐,有低音和高音部分,适合在类似电影院等嘈杂的环境中听。
sox asz.wav asz-car.wav compand 0.3,1 6:−70,−60,−20 −5 −90 0.2
转换功能(‘6:-70’,……)说明每个轻柔的声音(低于-70dB)会保持不变,这将会阻止compander在‘slient’片段中提升音量。然而,在-60dB到0dB之间的音频会加速,所以这60dB的原始音频的动态范围将会被压缩到3-to-1 到 20dB范围,这足够广泛去享受音乐但是还不够去避开噪音。这个‘6:’选择6dB soft-knee companding。这个 -5(dB)输出文件被用来剪切。这个-90(dB)是初始化音量,对于剪切非常有效,并且会以静默状态启动,0.2延迟有一个效果可以导致compander对于突变声音进行快速的反应。
在下一个例子中,compand被用来作为一个noise-gate ,当噪音处于比信号更低的水平。
play infile compand .1,.2 −inf,−50.1,−inf,−50,−50 0 −90 .1
这里是另一个noise-gate,这次是noise-gate比信号更加高
play infile compand .1,.1 −45.1,−45,−inf,0,−inf 45 −90 .1
这个功能支持 –plot全局选项
也可以参看mcompand获取一个multiple-bandcompanding 效果。
contrast[enhancement-amount(75)]
与压缩比较,这个功能定义了一个音频信号去让它听起来更大。enhancement-amount控制enhancement的数量,是一个0-100范围内的数。注意,enhancement-amount=0也会提供一个显著增强。
可以参考compand和mcompand功能。
dcshift shift[limitergain]
对音频应用一个DC转换,也可以被用来移除音频中一个DC偏置(或许是通过录音链中的硬件问题形成的)。一个DC偏置效果缩小了头空间,也就缩小了体积文件。stat和stats效果也能被用来确认是否一个信号有DC偏置。
给定的dcshift值是一个浮点数在正负2之间,表示改变音频的数量。
也可以指定一个可选的选项,它应该有一个小于1的值,并且仅仅在峰值使用来组织剪切。
一个可选的方法去移除一个DC偏置是去使用highpass拦截器功能,使用10Hz,如下面例子所解释的这样:
sox −n dc.wav synth 5 sin %0 50
sox dc.wavfixed.wav highpass 10
deemph 应用Compact Discde-emphasis
pre-emphasis被用来处理CDs问题再1980s,这些包括了许多经典音乐集和现在的声音,直到出现Beatles、Pink Floyd和其他。pre-emphasis应该在回放时间被移除。然而,不是所有的现代CD播放器都有这个拦截器,很好PC CD驱动有拦截器。播放pre-emphasised音频没有正确的pre-emphasis拦截器将会导致音频听起来刺耳,并且远远不是音乐家所期望的。
因为这个deemph功能,才有可能对一个音频去应用一个de-emphasis,这个音频是从pre-emphasised CD提取出来的。然后将音频文件重新刻录到新的CD上(这就可以在任何CD播放器上面进行播放了)或者简单的播放这个正确的de-emphasised音频文件在电脑上
例如:
sox track1.wavtrack1−deemph.wav deemph
转换track1-deemph.wav到 CD 或者
play track1−deemph.wav
或者简单
play track1.wavdeemph
de-emphasis拦截器是作为一个biquad来实现的,需要输入音频采样率要么是44.1kHz 或者 48KHz。理想的自大偏差是0.06分贝(最大到20kHz)
这个功能支持—plot全局选项。
也可以参考bass和treble等功能
delay{position(=)}
延迟一个或者更多音频道,在他们给定的位置。比如,delay 1.5+1 3000s
延迟第一个音频道1.5s,第二个音频道是2.5秒(比第一个音频道增加一秒),第三个音频道是3000采样率,其他音频道不延迟。接下来的指令发出一个和谐的声音。
play −n synth −j 3 sin %3 sin %−2 sin %−5 sin %−9 \
sin %−14 sin %−21 fade h .01 2 1.5 delay \
1.3 1 .76 .54 .27 remix − fade h 0 2.7 2.5 norm −1
下面是一个吉他和弦
play −n synth pl G2 pl B2 pl D3 pl G3 pl D4 pl G4 \
delay 0 .05 .1 .15 .2 .25 remix − fade 0 4 .1 norm −1
dither[ -S|-s|-f filter] [-a] [-pprecision]
将dithering应用到音频上,Dithering特意在信号上增加了一点噪音,为了当输出采样大小小于24bits的时候能够听到量化声音。没有其他选项,这个功能将会增加triangular白色噪音。噪音形状可以被选择,通过使用-s 和 –f选项。可以去选择一个特定的噪音形状拦截器从下面的列表中,lipshitz,fweighted,modified-e-weighted,improved-e-weighted,gesemann,shibata,low-shibata。注意,最常用的拦截器类型是44100Hz采样率。拦截器类型被以下属性所区分:噪音可听程度、高频噪音的程度,还有处理速度。参考http://sox.sourceforge.net/SoX/NoiseShaping不同噪音形状曲线图表。
-S选项选择一个轻型‘sloped’TPDF,偏向更高的频率。可以被用用于任何采样率但是不能低于22k,无格式的TPDF会更加好,大约是37k,噪音形状更加好。
-a选项应用一个模式,当需要的时候会dithering,最可能应用这个选项去对一个已经抖动的文件进行渐入和淡出。所以这个redithering仅仅应用到渐入部分。然后,自动抖动不是fool-proof,所以这个渐入将会小心的检查每个噪音模块,当这个发生时,要么re-dither整个文件,要么使用trim、fade和concatencate。
****************************************
后期持续更新~