欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【语音】音频重采样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
    【语音】音频重采样8K转16K,将mp3转化为wav格式
  • 使用open()虽能打开文件,但对后续语音识别任务时,识别时错误的
    产生这个的原因:对音频进性处理后写成新的音频librosa.output.write_wav()函数

解决方法:Wav格式有很多种,但是wave.open()不支持这种格式,因此需要格式的转变

sox wav_file_16.wav -r 16000 wav_file_16_sox.wav

【语音】音频重采样8K转16K,将mp3转化为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

相关标签: 语音