gpt4 book ai didi

python - Librosa 的采样率问题

转载 作者:太空狗 更新时间:2023-10-29 22:25:23 25 4
gpt4 key购买 nike

当使用库 Librosa 在 16 位 44.1 khz 音频文件上执行 STFT,然后执行逆 STFT (iSTFT) 时:

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 的原因。

举个例子:

默认设置 - 子采样到默认 22,050 Hz

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

子采样到指定速率,16,000 Hz

In[56]: y3, sr3 = librosa.load(filename,sr=16000)
In[57]: print sr3
16000

结果: enter image description here

关于python - Librosa 的采样率问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38188359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com