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

标签 python audio phase pydub

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

但这是我的问题:如何将声音加载到 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)

关于python - 如何从声音中获取 Pi-Phase 以在 Python 中获得破坏性干扰,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36432343/

相关文章:

python - Numpy 向量化零阶插值

javascript - javascript 通过下拉列表在音频之间切换

iPhone aurioTouch 示例 : Remove DC

Python 混合枚举作为字典键 : how the type is converted?

python - 如何使用 python 脚本自动化 ROS 的终端命令

音频合成最佳实践

Maven 在 "dependency:tree"阶段开始时运行 "test"

maven-2 - Maven - 添加自定义阶段以使用其他配置执行插件

python - 如何从python中的fft信号中找到感兴趣频率的bin号?

python - 删除 altair 可视化中标记之间的空间