现在音频文件的采样率比较多样,在数据处理的时候一般需要转换到同一采样率下才能进行进一步的处理。自己也是在数据处理的过程中需要进行采样率转换,在网上搜了一通,然而并没有啥可用的东西,下面提供一个基于python实现的音频采样率转换的脚本。
def rateTransfer(src_file,new_path):
'''
src_file: 原始存放音频文件的文件夹
new_path: 更改采样率后存放音频文件的文件夹
'''
sampleRate,Data = wavfile.read(src_file) #获取采样率和音频数据
name = src_file.split('/')[-1]
new_name = new_path + '/' + name
newRate = int(sampleRate / 3) #下采样
wavfile.write(new_name,newRate,Data[::3]) #重新写入新的采样率音频文件
def get_wav_files(file_path):
'''
读取文件夹下所有的音频文件
'''
wav_files = []
for root,dirpath,filenames in os.walk(file_path):
for filename in filenames:
if filename.endswith('.wav'):
wav_path = root + '/' + filename
wav_files.append(wav_path)
return wav_files
if __name__ == "__main__":
file_path = 'src_wav'
wav_files = get_wav_files(file_path)
print('len = ',len(wav_files))
new_path = 'new_wav'
for wav_file in wav_files:
rateTransfer(wav_file,new_path)
水平有限,希望能够帮到大家,不当之处请指教,谢谢!