我想从mp3音轨中删除人声。我搜索谷歌,并尝试了一些软件,但没有一个是令人信服的。我打算读取mp3文件,获取波形并删除超出指定限制的波形。
您对如何继续提出任何建议。
- 更新
我只想要能够读取mp3文件格式的代码。有没有软件?
答案 0 :(得分:17)
这不是一个“算法”作为“技巧”,但它可以在代码中自动化。它主要用于人声居中的立体声音轨。如果人声居中,则它们在两个轨道中均匀显示。如果您反转其中一个轨道然后将它们合并在一起,则中心人声的波形会被取消并被虚拟删除。您可以使用大胆的大多数优秀音频编辑器手动执行此操作。它没有给你完美的结果,其余的音频也受到了影响,但它创造了很棒的卡拉OK曲目:))
答案 1 :(得分:10)
来源:http://www.cdf.utoronto.ca/~csc209h/summer/a2/a2.html,由Daniel Zingaro撰写。
声音是气压波。什么时候 产生声音,声波 由压缩组成(增加 在压力)和稀有 (压力下降)通过 空气。这类似于什么 如果你扔石头就会发生 池塘:水涨起来 重复浪潮。
当麦克风录制声音时,它 测量气压 并将其作为值返回。这些 值称为样本,可以 正面或负面对应 空气增加或减少 压力。每次气压 记录,我们正在抽样 声音。每个样本都记录声音 在瞬间;我们越快 样品,我们更准确 表示声音。该 采样率是指多少次 我们每秒采样声音。对于 例如,CD音质使用a 采样率为44100个样本 第二;抽取某人的声音 在VOIP会话中使用远 不到这个。采样率 11025(语音质量),22050和 44100(CD质量)很常见......
对于单声道声音(有一个声音的声音 通道),样本只是一个 正整数或负整数 表示压缩量 在样品点的空气中 拍摄。对于立体声(我们使用它) 在这个任务中),一个样本是 实际上由两个整数组成 值:一个用于左扬声器和 一个正确...
以下是[删除人声]算法的工作原理。
将输入文件中的前44个字节逐字复制到输出中 文件。这44个字节包含重要内容 不应该的标头信息 修改。
接下来,将输入文件的其余部分视为一系列短路。采取 每双短裤左右 和计算组合=(左 - 右) / 2.写两份合并到的 输出文件。
为什么会这样?
对于好奇,一个简短的解释 声音去除算法的用途 订购。正如你从中注意到的那样 算法,我们简单地减去 来自另一个的一个渠道(然后 除以2以保持音量 变得太大声了。那么为什么呢 从中减去左通道 右声道神奇地删除了人声?
当录制音乐时,它就是 有时是人声的情况 由单个麦克风录制,和 单个声道用于 两个频道的人声。另一个 歌曲中的乐器被录制 通过多个麦克风,使他们 两个声道都有不同的声音。 从另一个中减去一个通道 带走了所有的东西 这两个渠道之间的共同点 如果我们幸运的话,那意味着去除 人声。
当然,事情很少奏效。 试试你的声音去除器 badly-behaved wav file。当然, 人声消失了,但身体也消失了 音乐!显然,有些人 仪器也被记录下来 “居中”,以便将它们移除 与频道一起的人声 被减去。
答案 2 :(得分:5)
您可以使用pydub工具箱,有关详细信息,请参阅here,有关相关问题,另请参阅here。它依赖于FFmpeg并且可以读取任何文件格式
然后您可以执行以下操作:
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")
答案 3 :(得分:1)
超过指定限制?听起来像一个高通滤波器......如果你有acapella轨道和原始轨道,你可以使用相位取消。否则,除非它是一部60年代的老式音乐,直接在中间演唱,而其他所有音乐都被淘汰,我认为没有一种超级干净的方法可以消除人声。