SOX的一些命令和kaldi使用sox音频数据增强
SOX的一些命令和kaldi使用sox音频数据增强
SOX的一些命令和kaldi使用sox音频数据增强
1 SOX win10和linux安装
2 sox命令
2.1 音频基本信息
2.2 音频采样率转换
2.3 wav和pcm互转
2.4 裁剪音频
2.5 提取指定通道数据
2.6 合并两个单通道为一个双通道
2.7 调整语速
2.8 音频串联合并
2.9 获取音频统计信息、调整音量
3 kaldi中使用sox音频数据增强
3.1 音速扰动(sp) utils/data/perturb_data_dir_speed_3way.sh
3.2 音量扰动vp utils/data/perturb_data_dir_volume.sh
3.3 加混响 steps/data/reverberate_data_dir.py
3.4 加性噪声 steps/data/augment_data_dir.py
3.5 kaldi中的wav-reverberate
Reference
如果喜欢FFMPEG命令,请看FFMPEG的一些命令
批量操作音频文件参考5.1 批量输出绝对路径下的所有音频并更名
yum install sox
apt install sox
sox win10下载地址和sox win10介绍
配置环境变量C:\JAVA\sox-14.4.2-win32
C:\JAVA\sox-14.4.2-win32;
C:\ProgramFiles\cmake-3.7.0-win64-x64\bin;
C:\JAVA\ffmpeg-20200504-5767a2e-win64-static\bin;
C:\ProgramFiles\node-v14.0.0-win-x64;
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin;
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\libnvvp;
C:\Program Files\Java\jdk1.8.0_121\bin;
C:\Program Files\Java\jdk1.8.0_121\jre\bin;
C:\Python37;
C:\Python37\Scripts;
2.1 音频基本信息
# 下面两个命令都可以,window下只能sox --i
soxi demo.wav
sox --i demo.wav
Input File : 'demo.wav'
Channels : 1
Sample Rate : 16000
Precision : 16-bit
Duration : 00:00:04.88 = 78031 samples ~ 365.77 CDDA sectors
File Size : 156k
Bit Rate : 256k
Sample Encoding: 16-bit Signed Integer PCM
2.2 音频采样率转换
# 将单通道demo.wav音频采用指定编码器将采样率转换为16000的wav
# -c 1 表示单通道 -b表示位宽 -r表示采样率 三个角度可进行修改
sox demo.wav -c 1 -b 16 -r 8000 output.wav
2.3 wav和pcm互转
# 将单通道demo.wav按照16000采样率转换为pcm文件,要求原始就是小尾端字节序、有符号16位比特存储
sox demo.wav -b 16 -e signed-integer --endian little -c 1 -r 16000 -t raw output.pcm
# 将单通道demo.pcm按照16000采样率转换为wav文件,要求原始就是小尾端字节序、有符号16位比特存储
sox -b 16 -e signed-integer --endian little -c 1 -r 16000 -t raw demo.pcm output.wav
2.4 裁剪音频
# 裁剪[0,10]秒区间
sox demo.wav output.wav trim 0 10
2.5 提取指定通道数据
# 提取第2通道的数据,若提取第一通道设remix值为1,output.wav长度和较长的一个一致
sox demo.wav output.wav remix 2
2.6 合并两个单通道为一个双通道
# 将left通道和right通道进行合并为一个独立音频
sox -M demo.left.wav demo.right.wav output.wav
2.7 调整语速
【特别注意】语速调整阈值组好在[0.85,1.25]之间,否则音频质量严重变形
sox demo.wav output.wav speed 0.85
2.8 音频串联合并
这个会将两个音频进行串联合并,最后output.wav音频时长是demo.left.wav和demo.right.wav的时间之和。
sox demo.left.wav demo.right.wav output.wav
2.9 获取音频统计信息、调整音量
查看音量可以最大 调整值【Volume adjustment】
sox demo.wav -n stat
Samples read: 78031
Length (seconds): 4.876938
Scaled by: 2147483647.0
Maximum amplitude: 0.159882
Minimum amplitude: -0.134613
Midline amplitude: 0.012634
Mean norm: 0.016386
Mean amplitude: -0.000025
RMS amplitude: 0.024805
Maximum delta: 0.076752