볼륨을 실시간으로 읽을 수 있습니다. 이렇게하려면 레코딩을 설정하고 데이터를 저장하지 말고 처리하십시오. 여기에서는 파이썬의 포함 된 audioop 모듈을 사용하여 각 청크의 RMS 값을 구합니다. (이 예는 audioop.rms
을 포함하는 PyAudio 웹 페이지의 레코드 데모 단지 수정입니다.) 물론
import pyaudio
import wave
import audioop
CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "output.wav"
p = pyaudio.PyAudio()
stream = p.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
frames_per_buffer=CHUNK)
for i in range(0, int(RATE/CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
rms = audioop.rms(data, 2) # here's where you calculate the volume
stream.stop_stream()
stream.close()
p.terminate()
, 당신은 RMS를 좋아하지 않는 경우, audioop 다른 볼륨 대책을 가지고 있습니다.
이 질문은 어떻게 arduino와 관련이 있습니까? – ahaltindis
랩톱 마이크의 오디오 볼륨을 직렬 포트를 통해 Arduino에 보내고 싶었습니다. – John
알 겠어.하지만 질문에 arduino 나 시리얼 포트에 관한 것은 아무것도 없다. 귀하의 질문은 파이썬과 pyaudio에 관한 것입니다. – ahaltindis