現在音頻文件的採樣率比較多樣,在數據處理的時候一般需要轉換到同一採樣率下才能進行進一步的處理。自己也是在數據處理的過程中需要進行採樣率轉換,在網上搜了一通,然而並沒有啥可用的東西,下面提供一個基於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)
水平有限,希望能夠幫到大家,不當之處請指教,謝謝!