采样率问题与Librosa
问题描述:
当执行STFT,然后在一个16位的44.1 kHz的音频文件与库Librosa逆STFT(ISTFT):采样率问题与Librosa
import librosa
y, sr = librosa.load('test.wav', mono=False)
y1 = y[0,]
S = librosa.core.stft(y1)
z1 = librosa.core.istft(S, dtype=y1.dtype)
librosa.output.write_wav('test2.wav', z1, sr)
输出仅是22 kHz的音频文件。为什么? librosa中的采样率变化在哪里?
答
librosa.load()
函数启用目标采样,其中您导入的音频文件可以重新采样到由关键字参数sr
指定的目标采样率。
如果要使用原始采样率,则必须明确将目标采样率设置为无:sr=None
。默认情况下,sr=22050
,这就是为什么你的输出是〜22khz。
通过示例的方式:
默认设置 - 子采样为默认22050赫兹
In[51]: filename = librosa.util.example_audio_file()
In[52]: y1, sr1 = librosa.load(filename)
In[53]: print sr1
22050
明确设置sr=None
确保原始采样保存
In[54]: y2, sr2 = librosa.load(filename,sr=None)
In[55]: print sr2
44100
子采样到指定rate,16,000 Hz
In[56]: y3, sr3 = librosa.load(filename,sr=16000)
In[57]: print sr3
16000
答
它,因为ü没有安装一些依赖库,我建议ü安装sudo apt-get install libav-tools
,因为它在Linux系统中安装的音频和视频工具。
这是不正确的答案yunus。 –