[python] 파이썬으로 오디오 파일에서 고음의 주파수를 찾는 방법

오디오 파일에서 고음의 주파수를 찾는 것은 음악 분석, 음성처리 및 소음 제거와 같은 다양한 응용 프로그램에 유용합니다. 파이썬에서는 Librosa라는 라이브러리를 사용하여 오디오 파일을 로드하고 고음의 주파수를 식별할 수 있습니다.

1. 의존성 설치

먼저 Librosa 라이브러리를 설치해야 합니다. 아래의 명령어를 사용하여 의존성을 설치합니다.

pip install librosa

2. 코드 작성

이제 파이썬 코드를 작성하여 오디오 파일에서 고음의 주파수를 찾을 수 있습니다.

import librosa

# 오디오 파일 로드
audio_path = 'audio_file.wav'
audio_data, sample_rate = librosa.load(audio_path)

# STFT 변환
stft = librosa.stft(audio_data)

# 주파수 영역으로 변환
spectrogram = librosa.amplitude_to_db(abs(stft))

# 고음의 주파수 식별
high_freqs = []
threshold = 0.5  # 임계값 설정

for i in range(len(spectrogram)):
    if max(spectrogram[i]) > threshold:
        high_freqs.append(librosa.fft_frequencies(sr=sample_rate)[i])

# 고음의 주파수 출력
for freq in high_freqs:
    print(round(freq, 2))

위 코드는 주어진 오디오 파일에서 고음의 주파수를 찾아서 출력하는 예제입니다. 주파수 스펙트로그램을 계산하고 각 주파수 대역에서 최대 값이 지정한 임계값(0.5)을 초과하는 경우 해당 주파수를 고음으로 인식합니다.

참고 자료