Skip to main content
 首页 » 编程设计

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

2025年05月04日35kevingrace

首先:我不知道把这个话题放在哪里,因为它是一个编程和声音问题。不对的地方请指正。

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

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

非常感谢。只是想尝试一下。

请您参考如下方法:

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

接下来,你所说的是输入声音的反相,这样当一个人添加两个反相的声音时,它们会相互抵消。
降噪技术使用了相同的原理。查看详情 here

下面的示例代码通过合并两个相反相位的声音来演示相位抵消效果。

演示代码

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)