【发布时间】:2023-01-31 22:02:58
【问题描述】:
我只想知道是否有办法用 python 将一些实时输入到麦克风中。我打算制作一个像 Krisp 这样的开源实时降噪应用程序。
【问题讨论】:
标签: python real-time microphone noise-reduction
我只想知道是否有办法用 python 将一些实时输入到麦克风中。我打算制作一个像 Krisp 这样的开源实时降噪应用程序。
【问题讨论】:
标签: python real-time microphone noise-reduction
你可以试试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()
【讨论】:
我正在寻找用 python 制作的解决方案来解决实时降噪问题,因为我有一个吵闹的邻居。所以,在我的搜索中,我找到了这个 Python 解决方案: rattlesnake - A python application that does noise cancellation https://github.com/loehnertz/rattlesnake
正如我注意到的那样,实时模式在播放音频文件时会捕获来自麦克风的噪音。因此,输出流播放加入反相波的音频文件以消除噪音,就像那些具有降噪系统的耳机一样。
我计划使用 Raspberry PI 创建一个降噪系统,运行类似这种实时降噪的东西,以在家里创建一个静默区。正如我所注意到的,它需要对原始代码进行一些更改,因为实时模式需要一个 mp3 文件作为参数。
【讨论】: