【问题标题】:How to get Pi-Phase from sound to get a destructive interference in Python如何从声音中获取 Pi-Phase 以在 Python 中获得破坏性干扰
【发布时间】:2016-07-25 17:55:57
【问题描述】:

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

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

Here's一个小解释视频。

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

【问题讨论】:

    标签: python audio phase pydub


    【解决方案1】:

    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)
    

    【讨论】:

    • 我有一个问题。当我们反转相位时,这不应该帮助我们减少音频中的噪音而不是使整个音频静音吗?类似于此链接的内容。 en.wikipedia.org/wiki/Active_noise_control
    • 以上示例演示了在没有环境噪声的情况下以受控方式(预先录制的音频)完全反转相位。在现实生活中(实时降噪),情况并非如此。原始音频和反转音频之间会有延迟,因此不会导致 100% 的噪音消除,而是会导致噪音降低。希望这会有所帮助。
    • 我实际上尝试使用音频文件,但它使我的音频(语音)静音。我使用的音频也是预先录制的。它没有环境噪音,但存在一些小干扰。
    猜你喜欢
    • 2011-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-29
    • 2015-10-22
    相关资源
    最近更新 更多