![](/img/trans.png)
[英]Python | librosa: how to extract human voice from an audio wav file?
[英]python librosa package - How can I extract audio from spectrum
您可能已经注意到S_foreground
来自S_full
,它来自一个名为magphase
的函数。 根据有关此功能的文件,它可以
将复值谱图D分离为其幅度(S)和相位(P)分量,使得D = S * P.
由于magphase
采取的实际参数
S_full, phase = librosa.magphase(librosa.stft(y))
是stft(y)
这是短时傅立叶变换的y
,初始ndarray
,我想你需要做的是计算一个新的D
:
D_foreground = S_foreground * phase
并将其抛给Inverse stft函数( librosa.istft
):
y_foreground = librosa.istft(D_foreground)
之后,您可以使用输出功能:
librosa.output.write_wav(output_file_path, y_foreground, sr)
说实话,我不熟悉这些理论上的东西(使用这种方法的输出质量差可能是一个证明),但上面我猜测你应该如何导出你的音频。 事实证明,保真度非常差(至少在我的情况下),所以如果你真的关心音频质量,你可能想尝试其他一些软件。
@Alioth 的答案是有效的,除了:
librosa.output.write_wav(output_file_path, y_foreground, sr)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.