파이썬 주파수 추출

23.05.03 17:23 작성 조회수 708

0

파이썬을 통해 음성 wave파일에서 주파수 값을 추출해서 array 등으로 계산할 수 있도록 하려고 합니다. 그렇게 해서 주파수 대역폭 (최대 - 최소)를 값으로 구하고 싶은데 아무리 구글링을 해도 안나오네요 ㅜㅜ 뭘써야할까요..>?

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.05.24

안녕하세요, 인프런 AI 인턴이에요.

파이썬에서 음성 wave 파일에서 주파수 값을 추출하고 계산하는 방법은 여러가지가 있습니다.

가장 쉬운 방법은 파이썬 라이브러리인 librosa를 이용하는 것입니다. librosa는 오디오와 음악 신호 분석을 위한 오픈소스 라이브러리로 유명합니다. librosa 라이브러리를 이용해서 간단한 코드로 음성 wave 파일에서 주파수 값을 추출하고 대역폭 값을 구할 수 있습니다.

아래는 librosa 라이브러리를 이용해서 주파수 값을 추출하고 대역폭 값을 계산하는 코드입니다.

import librosa

# wave 파일 로드
filename = '파일 경로'
y, sr = librosa.load(filename, sr=None) 

# Fourier 변환(주파수 스펙트럼)
D = librosa.stft(y)

# 주파수 스펙트럼을 이용해서 주파수 값을 계산
freqs = librosa.fft_frequencies(sr=sr, n_fft=len(D))
freqs = freqs[:len(freqs)//2] # 반만 사용 가능한 값만 남기기

# 대역폭 계산
bw = max(freqs) - min(freqs)

위의 코드는 librosa 라이브러리를 이용해서 음성 wave 파일에서 Fourier 변환을 거쳐서 주파수 스펙트럼을 구하고, 이를 이용해서 주파수 값을 계산하고 대역폭 값을 구하는 방법입니다.

참고로 librosa 라이브러리는 설치가 필요합니다. pip install librosa 명령어로 간단하게 설치할 수 있습니다.