python librosa 包 - 如何从频谱中提取音频

标签 python librosa

在人声分离的情况下使用 Librosa ,人声和背景音乐可以单独绘制,但我想从人声部分提取音频,人声部分的频谱位于名为“S_foreground”的变量中(请访问上面的链接进行演示)。如何获取前景(人声)音频?

最佳答案

您可能已经注意到 S_foreground 来自 S_full,后者来自名为 magphase 的函数。根据有关此功能的文档,它可以

Separate a complex-valued spectrogram D into its magnitude (S) and phase (P) components, so that D = S * P.

由于magphase

中取的实参

S_full, phase = librosa.magphase(librosa.stft(y))

stft(y),也就是y的短时傅立叶变换,初始的ndarray,我估计你需要的要做的是计算一个新的 D:

D_foreground = S_foreground * 相位

并将其丢给 Inverse stft 函数 (librosa.istft):

y_foreground = librosa.istft(D_foreground)

之后就可以使用输出函数了:

librosa.output.write_wav(output_file_path, y_foreground, sr)

老实说,我对这些理论上的东西并不熟悉(我使用这种方法输出的质量很差可能就是一个证明),但以上是我对如何导出音频的猜测。事实证明保真度很差(至少在我的情况下),所以如果你真的关心音频质量,你可能想尝试一些其他软件。

关于python librosa 包 - 如何从频谱中提取音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48730097/

相关文章:

python - collections.defaultdict() 上的 min() 返回最大计数

c++ - CentOS中音频文件ds2格式转换为wav

python - 如何将 linux 包正确安装到 Google 云平台项目中?

python - 如何从采样率 8000Hz 的音频中提取 CQT (librosa)

python - 面对 ValueError : Target is multiclass but average ='binary'

python - 如何在Python中停止request.get

python - 如何加快在 Jupyter Notebook 中创建的程序的速度?

python - 从 OS X ssh 时出现 UnicodeDecodeError

python - librosa:仅使用克隆 git 才能正确安装,并且虽然导入但无法使用任何功能

python-3.x - 通过 pip 安装 librosa 失败