[파이썬] pydub 오디오 스펙트로그램 생성

오디오 스펙트로그램은 오디오 신호의 주파수 성분과 시간에 따른 변화를 시각화하는 유용한 도구입니다. 이 글에서는 파이썬의 pydub 라이브러리를 사용하여 오디오 스펙트로그램을 생성하는 방법에 대해 알아보겠습니다.

pydub 소개

pydub은 파이썬에서 오디오 파일을 처리하기 위한 간단하고 사용하기 쉬운 인터페이스를 제공하는 라이브러리입니다. 오디오 파일을 잘라내거나 합치는 등 다양한 작업을 할 수 있으며, 이번에는 스펙트로그램 생성에 초점을 맞추어 알아보겠습니다.

스펙트로그램 생성 방법

  1. pydub 라이브러리 설치하기

    먼저, pydub 라이브러리를 설치해야 합니다. 아래의 명령을 사용하여 설치할 수 있습니다.

    $ pip install pydub
    
  2. 오디오 파일 로드하기

    스펙트로그램을 생성하기 위해 오디오 파일을 먼저 로드해야 합니다. pydub을 사용하면 다양한 오디오 포맷을 지원하므로, 사용할 오디오 파일의 포맷에 맞춰 로드하면 됩니다.

    from pydub import AudioSegment
    
    audio = AudioSegment.from_file("audio_file.wav", format="wav")
    
  3. 스펙트로그램 생성하기

    스펙트로그램은 주파수 성분과 시간에 대한 2D 시각화입니다. 파이썬의 matplotlib 라이브러리를 함께 사용하여 스펙트로그램을 생성하고 표시할 수 있습니다.

    import matplotlib.pyplot as plt
    
    spectrogram = audio.spectrogram(window_length=50, overlap=25)
    plt.imshow(spectrogram.T, aspect='auto', origin='lower')
    plt.xlabel('Time')
    plt.ylabel('Frequency')
    plt.colorbar().set_label('Intensity')
    plt.show()
    

    위의 코드에서 window_length는 스펙트로그램의 윈도우 크기를, overlap은 윈도우 간의 겹침 크기를 조절하는 매개변수입니다. 이 값을 조정하여 원하는 스펙트로그램의 세부성을 조절할 수 있습니다.

마무리

pydub 라이브러리를 사용하여 파이썬에서 오디오 스펙트로그램을 생성하는 방법을 살펴보았습니다. 스펙트로그램은 음악 및 음성 처리, 음악 정보 검색 등 다양한 분야에서 활용될 수 있는 중요한 개념입니다. 이를 통해 오디오 신호의 주파수 성분과 시간에 따른 변화를 시각적으로 파악할 수 있습니다. 결과를 적절하게 해석하고 활용하여 원하는 분야에서 적용해보세요. Happy coding!