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 plaincopy

#!/bin/bash

for x in ./*.wav;do

b=${x##*/}

sox $b -r 16000 tmp-$b

rm -rf $b

mv tmp-$b $b

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

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐