admin管理员组

文章数量:1545138

文章目录

  • SOX
    • sox install
    • 操作示例
    • 播放和记录音频
    • 改变音高
      • wav to raw
      • raw to wav
      • 单单声道合成立体声
      • 降噪

SOX

sox install

  1. 安装
  • Ubuntu 安装命令

$ sudo apt install sox
$ sudo apt install lame
$ sudo apt install libsox-fmt-all

  • Mac 安装命令

brew install 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 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分钟的沉默。

播放和记录音频

$ play existing-file.wav        #播放
$ sox name.wav -n stat     # 查看文件信息
$ sox *.wav -n stat -v     # 不失真最大挑整量
$ sox -v 0.5 input.wav output.wav # 调整音频大小,小于1,变小;大于1,变大
$ sox input.wav output.wav trim 2 4  # 截取2到4秒
$ sox input.wav output.mp3  # wav转MP3
$ rec new-file.wav           #记录
$ sox 23.wav 22.wav output.wav  # 拼接
$ sox 2.wav -r 16000 -c 1 output_16000_chanel.wav # 音频转采样和单声道
$ sox 2.wav -c 2 output.wav # 音道转换
$ sox 2.wav 2_speed_2.wav speed 2 #速度是原来的2倍
$ sox input.wav output_no_noised.wav noisered test.prof 0.21

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

$ sox song.wav ringtone%1n.wav trim 0 30 : newfile : trim 0 30 # 一个输入文件的前60秒分解成2个30秒文件

$ rec rec.wav # 录音

$ sox −r 48k −e float −b 32 −c 2 input.raw output.wav #格式转换raw转wav

$ sox Faded.wav Faded.raw # wav 转raw
$ sox foo.wav foostereo.wav channels 2 或 $ sox foo.wav -c 2 foostereo.wav
$ sox stereo.wav left.wav remix 1(提取左声道音频)
$ sox stereo.wav right.wav remix 2(提取右声道音频)
$ sox -n -r 48000 silence.wav trim 0.0 0.250 # trim效果指定需要静音的片段
$ sox in.wav out.wav trim 0.25 trim 0 -0.25 # 删除开始和结尾的250ms

改变音高

$ play Faded.wav pitch 200 #将 Faded.wav 文件中的音频提高 200 音分,即提高 2 个半音的音程(每一个半音的音程等于 100 音分)
$ play input.wav stretch 0.5 # 2倍速度播放
$ play input.wav speed 2 #通过speed效果调节播放速度(相应地音高也会发生变化)
$ sox infile.wav -r 48k -c 1 -b 16 outfile.wav # 修改频率、通道数、位深

wav to raw

$ sox in.wav -b 16 -e signed-integer -c 1 -r 48k -t raw out.raw

raw to wav

$ sox -b 16 -e signed-integer -c 1 -r 48k -t raw out.raw out.wav

单单声道合成立体声

$ sox -M input.l.wav input.r.wav output.wav

降噪

1.给SoX提供你的背景噪声,好让它分析出噪声的profile,棕色表示输出到null file(即不关心输出),蓝色是纯噪声(没有人声)所在的时间段(本例是0秒到1秒区间),红色是SoX子命令名称,黄色是输出profile文件名
$ rec -n trim 0 1 noiseprof noise.profile
2.用SoX处理你的录音文件,后面跟上profile;绿色是输入文件,棕色是输出文件(无噪声),红色是另一个SoX子命令,黄色是刚才生成的profile文件,蓝色是降噪等级(取值范围0-1,默认0.5)
$ sox v_0.wav v_0_clean.wav noisered noise.profile 0.3

本文标签: 音频处理常用命令sox