【语音】音频重采样8K转16K,将mp3转化为wav格式

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()不支持这种格式,因此需要格式的转变

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值