语音识别时指定采样率 16k,本文记录使用 python 实现音频采样率改变的过程。
读取wav文件
1 2 3 4
| import scipy.io.wavfile as wav # 打开音频文件 sample_rate, data = wav.read('test.wav')
|
- 其中
sample_rate 为当前音频采样率,data 为音频数据。
例如我当前测试音频,sample_rate 为 : 48000
我的目标是将其转换为 16000
转换采样率
scipy.signal 模块的 resample() 函数可以转换采样率。
1 2 3 4 5
| from scipy.signal import resample # 将采样率转换为 16K new_rate = 16000 resampled_data = resample(data, int(len(data) * new_rate / sample_rate))
|
写入音频文件
1 2
| resampled_data = resampled_data.astype('int16') wav.write('audio_resampled.wav', new_rate, resampled_data)
|
完整代码
1 2 3 4 5 6 7 8 9 10 11 12 13
| from scipy.signal import resample import scipy.io.wavfile as wav # 将采样率转换为 16K new_rate = 16000# 打开音频文件 sample_rate, data = wav.read('test.wav') resampled_data = resample(data, int(len(data) * new_rate / sample_rate)) resampled_data = resampled_data.astype('int16') wav.write('audio_resampled.wav', new_rate, resampled_data)
|
文章链接:
https://www.zywvvd.com/notes/study/audio/change-audio-frame-rate/change-audio-frame-rate/