语音识别时指定采样率 16k,本文记录使用 python 实现音频采样率改变的过程。
读取wav文件
1234 | import scipy.io.wavfile as wav # 打开音频文件sample_rate, data = wav.read('test.wav') |
---|
- 其中
sample_rate
为当前音频采样率,data
为音频数据。
例如我当前测试音频,sample_rate
为 : 48000
我的目标是将其转换为 16000
转换采样率
scipy.signal
模块的 resample()
函数可以转换采样率。
12345 | from scipy.signal import resample # 将采样率转换为 16Knew_rate = 16000resampled_data = resample(data, int(len(data) * new_rate / sample_rate)) |
---|
写入音频文件
12 | resampled_data = resampled_data.astype('int16')wav.write('audio_resampled.wav', new_rate, resampled_data) |
---|
完整代码
12345678910111213 | from scipy.signal import resampleimport scipy.io.wavfile as wav# 将采样率转换为 16Knew_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://cloud.tencent.com/developer/article/2298181