python 音频文件采样率转换

音频处理中经常会遇到各种采样率的文件,一般需要经过采样率的转换才能得到自己需要的采样率音频文件,下面提供一种音频转换方法,具体程序如下:

def resample_rate(path,new_sample_rate = 16000):

    signal, sr = librosa.load(path, sr=None)
    wavfile = path.split('/')[-1]
    wavfile = wavfile.split('.')[0]
    file_name = wavfile + '_new.wav'
    new_signal = librosa.resample(signal, sr, new_sample_rate) # 
    librosa.output.write_wav(file_name, new_signal , new_sample_rate) 

如遇到librosa不能加载output,应该是版本问题,可以跳转方法

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现将音频wav文件转换成频响曲线,可以用Python中的librosa库来进行分析和处理。下面是一个简单的实现步骤: 1. 安装librosa库 在命令行中输入以下命令: ``` pip install librosa ``` 2. 加载音频文件 使用librosa库中的load函数来加载音频文件,并将其转换为一个numpy数组: ```python import librosa y, sr = librosa.load('audio.wav') ``` 其中,y是音频信号的时间序列,sr是采样率,即每秒钟采样的次数。 3. 分析音频信号 使用librosa库中的stft函数将音频信号转换为短时傅里叶变换(STFT)的数据表示: ```python import librosa import numpy as np y, sr = librosa.load('audio.wav') stft = librosa.stft(y) ``` 4. 计算频谱图 使用librosa库中的magphase函数将STFT表示转换为幅度谱图: ```python import librosa import numpy as np y, sr = librosa.load('audio.wav') stft = librosa.stft(y) mag, _ = librosa.magphase(stft) ``` 其中,mag是幅度谱图。 5. 计算频响曲线 使用librosa库中的amplitude_to_db函数将幅度谱图转换为分贝谱图,并计算每个频率上的平均分贝值: ```python import librosa import numpy as np y, sr = librosa.load('audio.wav') stft = librosa.stft(y) mag, _ = librosa.magphase(stft) db = librosa.amplitude_to_db(mag) freqs = librosa.fft_frequencies(sr=sr, n_fft=stft.shape[0]) freqs = freqs[:len(freqs)//2] mean_db = np.mean(db, axis=1) ``` 其中,freqs是每个频率的值,mean_db是每个频率上的平均分贝值。 6. 绘制频响曲线 使用matplotlib库将频响曲线绘制出来: ```python import librosa import numpy as np import matplotlib.pyplot as plt y, sr = librosa.load('audio.wav') stft = librosa.stft(y) mag, _ = librosa.magphase(stft) db = librosa.amplitude_to_db(mag) freqs = librosa.fft_frequencies(sr=sr, n_fft=stft.shape[0]) freqs = freqs[:len(freqs)//2] mean_db = np.mean(db, axis=1) plt.plot(freqs, mean_db) plt.xlabel('Frequency (Hz)') plt.ylabel('Amplitude (dB)') plt.show() ``` 这样就可以将音频wav文件转换成频响曲线了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值