파이썬을 이용한 환경 소음 탐지 시스템 구축

Environmental noise detection

환경 소음은 우리의 건강과 편안한 생활에 부정적인 영향을 미칠 수 있는 중요한 문제입니다. 이러한 소음을 탐지하고 모니터링하기 위해서는 고급 센서와 복잡한 하드웨어가 필요한 것 같지만, 파이썬과 몇 가지 라이브러리만 있으면 쉽게 구축할 수 있습니다.

필요한 장비

사용된 라이브러리

코드 예시

import pyaudio
import numpy as np
import matplotlib.pyplot as plt
from scipy import signal

# 오디오 스트림 캡처를 위한 파라미터 설정
CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100

# PyAudio 객체 생성
p = pyaudio.PyAudio()

# 마이크 스트림 열기
stream = p.open(format=FORMAT,
                channels=CHANNELS,
                rate=RATE,
                input=True,
                frames_per_buffer=CHUNK)

# 주파수 스펙트럼 분석을 위한 FFT 설정
frequencies = np.fft.fftfreq(CHUNK, 1/RATE)

while True:
    # 오디오 데이터 읽기
    data = np.frombuffer(stream.read(CHUNK), dtype=np.int16)
    
    # 주파수 스펙트럼 계산
    spectrum = np.fft.fft(data)
    
    # 주파수 필터링
    pass_band = np.logical_and(frequencies > 20, frequencies < 20000)
    filtered_spectrum = spectrum * pass_band
    
    # 소음 데이터 그래프 그리기
    plt.plot(data)
    plt.xlabel('Sample')
    plt.ylabel('Amplitude')
    plt.title('Noise Data')
    plt.show()
    
    # 필터링된 소음 데이터 그래프 그리기
    plt.plot(np.fft.ifft(filtered_spectrum))
    plt.xlabel('Sample')
    plt.ylabel('Amplitude')
    plt.title('Filtered Noise Data')
    plt.show()

이 예시 코드는 파이썬을 사용하여 마이크로부터 오디오 스트림을 캡처하고, 주파수 스펙트럼을 분석하여 소음 데이터를 그래프로 그리는 간단한 시스템을 구축하는 방법을 보여줍니다. 소음 데이터를 필터링하여 원하는 주파수 범위의 소음을 탐지하고 분석할 수도 있습니다.

이러한 환경 소음 탐지 시스템은 도로, 공원, 공공 장소 등에서 소음 오염을 모니터링하고 제어하는 데에 유용하게 사용될 수 있습니다.

#Tech #Python #NoiseDetection #EnvironmentalNoise