【发布时间】:2018-08-23 01:57:55
【问题描述】:
我的问题是关于如何使用 python 语言提取音乐中的人声 我已经浏览了这段代码,但它会提取背景音乐
from pydub import AudioSegment
from pydub.playback import play
# read in audio file and get the two mono tracks
sound_stereo = AudioSegment.from_file(myAudioFile, format="mp3")
sound_monoL = sound_stereo.split_to_mono()[0]
sound_monoR = sound_stereo.split_to_mono()[1]
# Invert phase of the Right audio file
sound_monoR_inv = sound_monoR.invert_phase()
# Merge two L and R_inv files, this cancels out the centers
sound_CentersOut = sound_monoL.overlay(sound_monoR_inv)
# Export merged audio file
fh = sound_CentersOut.export(myAudioFile_CentersOut, format="mp3")
我需要提取歌曲中的人声
如果不是这样,那么如何从另一个音频文件中减去一个音频文件
【问题讨论】:
-
当您说“提取”时,您的意思是“保留”还是“删除”?您的代码是减法(加法与减法相同)。
-
我想保留人声并删除背景音乐
-
好的,所以你的代码减去 L 和 R,这会保留背景音乐(去除人声) - 所以你应该将两个通道加在一起(即不要做相反的操作)然后你会得到人声。可能是人声在左右声道中的比例不同,所以你应该玩一下每个声道的比例 - 在 0 和 1 之间变化 b(或更实际地 0.30.7)并计算出 L* b+R*(1.0-b) 看看哪个在去除音乐/保留人声方面做得最好。
-
或使用 Audacity 遵循本指南:manual.audacityteam.org/man/…
-
@barny,你所说的“将两个通道加在一起”是什么意思,这不会导致相同的音频文件吗?你能解释一下吗?谢谢!
标签: python algorithm audio signal-processing voice