如何从声音中获取Pi-Phase以在Python中获得破坏性干扰

时间:2016-04-05 16:43:53

标签: python audio phase pydub

首先:我不知道在哪里放这个话题,因为它是一个编程和声音问题。请评论是否在错误的地方。

但这是我的问题:如何将声音加载到Python中并创建它的“反向声音”。因此,当我播放原始文件和“pi-shifted”文件时,它们会产生相消干扰并相互抵消,因此您几乎听不到任何声音。有没有可以使用的库?

Here's一个小解释 - 视频。

非常感谢你。只想稍微试验一下。

1 个答案:

答案 0 :(得分:5)

python中加载音频的最简单方法是使用外部库模块。一旦这样的模块是pydub。见here for details

接下来,您所说的是reversing phase输入声音,这样当一个声音添加两个相反的声音时,它们相互抵消。
noise cancelling technology使用相同的主体。详情请见here

下面的示例代码通过合并两个相反阶段的声音来演示phase cancelling effect

演示代码

from pydub import AudioSegment
from pydub.playback import play

#Load an audio file
myAudioFile = "yourAudioFile.wav"
sound1 = AudioSegment.from_file(myAudioFile, format="wav")

#Invert phase of audio file
sound2 = sound1.invert_phase()

#Merge two audio files
combined = sound1.overlay(sound2)

#Export merged audio file
combined.export("outAudio.wav", format="wav")

#Play audio file :
#should play nothing since two files with inverse phase cancel each other
mergedAudio = AudioSegment.from_wav("outAudio.wav")
play(mergedAudio)