Libros的采样率问题

2024-10-04 03:27:38 发布

您现在位置:Python中文网/ 问答频道 /正文

在使用库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千赫的音频输出。为什么?librosa的抽样率变化在哪里?在


Tags: coretestimportload音频文件dtypewavlibrosa
2条回答

librosa.load()函数启用目标采样,其中可以将导入的音频文件重新采样到关键字参数sr指定的目标采样率。在

如果要使用原始采样率,必须显式地将目标采样率设置为None:sr=None。默认情况下,sr=22050,这就是为什么您的输出是~22khz。在

举例来说:

默认设置-子采样至默认22050 Hz

In[51]: filename = librosa.util.example_audio_file()
In[52]: y1, sr1 = librosa.load(filename)
In[53]: print sr1
22050

显式设置sr=None可确保保留原始采样

^{pr2}$

以指定的速率进行二次采样,16000赫兹

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

结果是: enter image description here

因为你没有安装一些相关的库,我建议你安装sudo apt-get install libav-tools,因为它在linux系统中安装了音频和视频工具。在

相关问题 更多 >