linux下用sox批量将pcm文件加wav头、批量修改采样率、切音频

linux下用sox可以给pcm文件加头

例如:test.pcm是不带wav头的pcm文件

$ sox -t raw -c 1 -e signed-integer -b 16 -r 16000 test.pcm test.wav


要查看音频文件的格式可以用soxi

$ soxi test.wav 
Input File     : 'test.wav'
Channels       : 1
Sample Rate    : 16000
Precision      : 16-bit
Duration       : 00:00:02.22 = 35520 samples ~ 166.5 CDDA sectors
File Size      : 71.1k
Bit Rate       : 256k
Sample Encoding: 16-bit Signed Integer PCM


sox也可用于修改文件差样率,如test.wav文件的采样率修改为8000HZ

$ sox   test.wav   -r   8000  test-8K.wav


对于批量修改可以如下操作:


法1:awk

将当前文件夹下的pcm文件批量加文件头

rename '.raw' '' *
find -name "*" >file.list
cat file.list | awk '{ cmd = "sox -t raw -c 1 -e signed-integer -b 16 -r 16000 "$0" "$0".wav";print cmd;system(cmd);}'
mkdir ../voice_wav
mv *.wav ../voice_wav/


法二:bash

将当前文件夹下的wav文件批量修改为16000HZ

shell view plain copy
  1. #!/bin/bash  
  2. for x in ./*.wav;do
  3.   b=${x##*/}  
  4.   sox $b -r 16000 tmp-$b  
  5.   rm -rf $b  
  6.   mv tmp-$b $b  
  7. done  



切音频顺便转成wav

eg :pcm音频长2.22s,头尾都有一小部分不想要,只想要0.26s至2.17秒部分

~$ sox -t raw -c 1 -e signed-integer -b 16 -r 16000 test.pcm test.wav trim 0.26 1.91

其中1.91=2.17-0.26



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值