代码之家  ›  专栏  ›  技术社区  ›  Muhammad Hassan

在python中使用pyaudio录制音频时如何忽略背景噪声?

  •  0
  • Muhammad Hassan  · 技术社区  · 7 年前

    import pyaudio
    import wave
    
    def record(filename):
        FORMAT = pyaudio.paInt16
        CHANNELS = 1
        RATE = 16000
        CHUNK = 1024
        RECORD_SECONDS = 15
        WAVE_OUTPUT_FILENAME = filename 
    
        audio = pyaudio.PyAudio()
    
        # start Recording
        stream = audio.open(format=FORMAT, channels=CHANNELS,
                            rate=RATE, input=True,
                            frames_per_buffer=CHUNK)
        print("recording...")
        print('---------------------------------')
        print(int(RATE / CHUNK * RECORD_SECONDS))
        print('*********************************')
    
        frames = []
    
        for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
            data = stream.read(CHUNK)
            frames.append(data)
        print("Recording finished. . .")
    
        # stop Recording
        stream.stop_stream()
        stream.close()
        audio.terminate()
    
        waveFile = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
        waveFile.setnchannels(CHANNELS)
        waveFile.setsampwidth(2)  
        audio.get_sample_size(FORMAT)
        waveFile.setframerate(RATE)
        waveFile.writeframes(b''.join(frames))
        waveFile.close()
    
    0 回复  |  直到 7 年前