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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章