【问题标题】:Python: Real-time input into the microphonePython:实时输入麦克风
【发布时间】:2023-01-31 22:02:58
【问题描述】:

我只想知道是否有办法用 python 将一些实时输入到麦克风中。我打算制作一个像 Krisp 这样的开源实时降噪应用程序。

【问题讨论】:

    标签: python real-time microphone noise-reduction


    【解决方案1】:

    你可以试试pyaudio。

    python -m pip install pyaudio
    

    PyAudio 示例

    import pyaudio
    import wave
     
    FORMAT = pyaudio.paInt16
    CHANNELS = 2
    RATE = 44100
    CHUNK = 1024
    RECORD_SECONDS = 5
    WAVE_OUTPUT_FILENAME = "your-rockstar-voice.wav"
     
    audio = pyaudio.PyAudio()
     
    # start Recording
    stream = audio.open(format=FORMAT, channels=CHANNELS,
                    rate=RATE, input=True,
                    frames_per_buffer=CHUNK)
    print "recording..."
    frames = []
     
    for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
        data = stream.read(CHUNK)
        frames.append(data)
    print "finished recording"
     
     
    # stop Recording
    stream.stop_stream()
    stream.close()
    audio.terminate()
     
    waveFile = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
    waveFile.setnchannels(CHANNELS)
    waveFile.setsampwidth(audio.get_sample_size(FORMAT))
    waveFile.setframerate(RATE)
    waveFile.writeframes(b''.join(frames))
    waveFile.close()
    

    【讨论】:

    • 我可以将 your-rockstar-voice.wav 直接输入麦克风吗?
    • @somePythonProgrammer,哈哈!我不太确定那个
    【解决方案2】:

    我正在寻找用 python 制作的解决方案来解决实时降噪问题,因为我有一个吵闹的邻居。所以,在我的搜索中,我找到了这个 Python 解决方案: rattlesnake - A python application that does noise cancellation https://github.com/loehnertz/rattlesnake

    正如我注意到的那样,实时模式在播放音频文件时会捕获来自麦克风的噪音。因此,输出流播放加入反相波的音频文件以消除噪音,就像那些具有降噪系统的耳机一样。

    我计划使用 Raspberry PI 创建一个降噪系统,运行类似这种实时降噪的东西,以在家里创建一个静默区。正如我所注意到的,它需要对原始代码进行一些更改,因为实时模式需要一个 mp3 文件作为参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-20
      • 1970-01-01
      • 1970-01-01
      • 2014-02-07
      • 2011-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多