파이썬 오디오 라이브러리를 활용한 실시간 음향 분석과 시각화 알고리즘 구현

오디오 신호 처리는 다양한 응용 분야에서 중요한 역할을 담당하고 있습니다. 이번 글에서는 파이썬을 사용하여 실시간 음향 분석과 시각화를 구현하는 방법에 대해 알아보겠습니다. 이를 위해 pyaudio와 matplotlib 라이브러리를 활용할 것입니다.

1. 의존성 설치

이 프로젝트를 시작하기 전에 몇 가지 의존성을 설치해야 합니다. 먼저 파이썬 패키지 관리자인 pip를 통해 pyaudio와 matplotlib을 설치합니다.

pip install pyaudio matplotlib

2. 파이썬 코드 작성

이제 코드를 작성해보겠습니다. 먼저 필요한 라이브러리를 가져옵니다.

import pyaudio
import numpy as np
import matplotlib.pyplot as plt

음향 신호를 분석하고 시각화하기 위해 몇 가지 함수를 정의합니다.

def init_audio():
    audio = pyaudio.PyAudio()
    stream = audio.open(format=pyaudio.paFloat32,
                        channels=1,
                        rate=44100,
                        input=True,
                        frames_per_buffer=1024)
    return audio, stream

def analyze_audio(stream):
    data = stream.read(1024)
    signal = np.frombuffer(data, dtype=np.float32)
    fft = np.fft.fft(signal)
    spectrum = np.abs(fft)
    frequencies = np.fft.fftfreq(len(signal))
    return spectrum, frequencies

def visualize_spectrum(spectrum, frequencies):
    plt.plot(frequencies, spectrum)
    plt.xlabel('Frequency')
    plt.ylabel('Amplitude')
    plt.title('Real-time Spectrum Analyzer')
    plt.show()

실시간 음향 분석을 위해 무한 루프를 돌면서 음향 신호를 분석하고 시각화합니다.

audio, stream = init_audio()

while True:
    spectrum, frequencies = analyze_audio(stream)
    visualize_spectrum(spectrum, frequencies)

3. 프로젝트 실행하기

이제 코드를 실행하여 실시간 음향 분석과 시각화를 확인할 수 있습니다. 터미널에서 다음과 같이 명령을 입력합니다.

python audio_analysis.py

실행 후 마이크로부터 들리는 음향 신호가 실시간으로 분석되고, 주파수 스펙트럼이 시각화됩니다.

이렇게 파이썬 오디오 라이브러리인 pyaudio와 matplotlib을 활용하여 실시간 음향 분석과 시각화 알고리즘을 구현해보았습니다. 이를 통해 음향 신호 처리에 대한 기초를 학습하고 응용 분야에 활용할 수 있을 것입니다.

#datascience #python