[python] 파이썬과 사운드 프로세싱을 이용한 피치 감지

음악, 음성 등 오디오 데이터에서 피치(pitch)는 해당 소리의 음높이를 나타내는 중요한 정보입니다. 파이썬에는 다양한 라이브러리를 활용하여 사운드 프로세싱을 할 수 있으며, 이를 통해 피치를 감지하는 애플리케이션을 만들 수 있습니다.

사운드 프로세싱 라이브러리

파이썬에서 사운드 프로세싱을 위해 많이 사용되는 라이브러리 중에는 다음과 같은 것들이 있습니다:

  1. pydub: 오디오 파일을 읽고, 분리하고, 변환할 수 있는 기능을 제공합니다.
  2. librosa: 오디오 신호 처리를 위한 풍부한 기능을 제공합니다. 피치 추출을 위한 알고리즘도 포함되어 있습니다.
  3. aubio: 오디오의 피치 추출과 관련된 기능을 제공합니다.

이 예시에서는 librosa 라이브러리를 사용하여 피치 감지를 수행해보겠습니다.

프로젝트 설정

먼저, librosa 라이브러리를 설치해야 합니다. 다음 명령을 실행하여 설치할 수 있습니다:

$ pip install librosa

프로젝트에 사용할 오디오 파일도 준비해야 합니다. 테스트를 위해 적절한 음악 파일을 사용해주세요.

피치 감지 예시

다음은 librosa를 사용하여 피치를 감지하는 예시 코드입니다:

import librosa

# 오디오 파일 경로
audio_file = 'audio.wav'

# 오디오 파일을 로드하여 시계열 데이터로 변환
audio_data, sample_rate = librosa.load(audio_file)

# 피치 추출
pitch = librosa.pitch_tuning(audio_data, sample_rate)

print('피치: {} Hz'.format(pitch))

위 코드는 librosa를 사용하여 오디오 파일을 로드하고, 피치를 추출하는 간단한 예시입니다. audio.wav은 테스트용 오디오 파일로 대체해야 합니다.

추가적인 활용 방안

위 예시는 피치를 감지하는 가장 기본적인 예시입니다. librosa를 통해 더 많은 오디오 신호 처리 기능을 활용하고, 피치 감지된 결과를 이용하여 음악 분석, 음악 트랜스크라이브, 음정 교정 등 다양한 애플리케이션을 개발할 수 있습니다.

참고 자료