【语音】音频重采样8K转16K,将mp3转化为wav格式
程序员文章站
2022-04-11 17:29:14
...
1、使用python librosa库
(1)安装pip install librosa
(2)使用
这种方法可以将语音进行重采样。声频信息完整。但不是pcm格式,可能需要使用第3步进行格式转化。
filename = 'wav_file_8.wav'
newFilename = 'wav_file_16.wav'
y, sr = librosa.load(filename, sr=8000)
y_16 = librosa.resample(y,sr,16000)
librosa.output.write_wav(newFilename, y_16, 16000)
(3)修改wav格式(如后续研究报错或不准确,则可能是wav格式问题导致)
原因:
- 使用wave.open()打开文件时报错:wave.Error: unknown format:3
- 使用open()虽能打开文件,但对后续语音识别任务时,识别时错误的
产生这个的原因:对音频进性处理后写成新的音频librosa.output.write_wav()函数
解决方法:Wav格式有很多种,但是wave.open()不支持这种格式,因此需要格式的转变
- 安装soxk
sox安装教程 - 使用sox进行wav格式修改
sox wav_file_16.wav -r 16000 wav_file_16_sox.wav
2、sox 命令 (linux 系统命令)
sox wav_file_8.wav -r 16000 wav_file_16.wav
3、使用sox进行声音格式转化
(1)单个音频文件格式转化
sox filename.au filename.wav
(2)批量转化音频格式并输出到新的文件夹
命令功能:格式为.au的原音频文件在文件夹music里面,目标为转化为格式.wav的音频文件,并保存在cmusic文件夹中。
操作方法:在music文件路径下输入以下命令:
for %i in (*.mp3) do "C:\Program Files (x86)\sox-14-4-2\sox.exe" %i H:\music\cblues\%i.wav
shell脚本:
#!/bin/bash
for x in ./*.wav;do
b=${x##*/}
sox $b -r 16000 tmp-$b
rm -rf $b
mv tmp-$b $b
done
参考文献:
1、https://blog.csdn.net/qq_31390999/article/details/95062506
2、https://blog.csdn.net/yyy430/article/details/88408273
3、https://blog.csdn.net/weixin_42997646/article/details/87969705
4、语音信号 重采样(8KHz转16KHz), 格式转换(pcm转wav), 多声道分离:https://blog.csdn.net/wei_fu/article/details/90720935
5、linux下用sox批量将pcm文件加wav头、批量修改采样率、切音频https://blog.csdn.net/lucky_ricky/article/details/74587002?utm_source=blogxgwz2
上一篇: 一个抖音视频下载代码