반응형
안녕하세요 :)
데이콘 대회를 준비하던 중 음성 데이터(.wav)를 처리해야 해서 이것저것 시도해보다가 가장 간단한 방법을 찾았습니다. scipy 패키지를 사용하면 손쉽게 wav 파일을 읽을 수 있습니다.
from scipy.io import wavfile
path = "음성 자료 경로"
fname = "음성 파일명.wav"
fs, data = wavfile.read(path + fname) # Sample rate of wav file, Data read from wav file
scipy.io 패키지에서 wavfile이라는 모듈을 임포트 해오면 wavfile.read("파일 이름") 함수를 통해 쉽게 .wav 파일을 수치화한 형태로 읽을 수 있습니다. 여기서 저장되는 fs와 data는 각각 해당 음성 파일의 주파수(초당 샘플 수, 스칼라)와 그 수치(위상, 벡터)를 가리킵니다.
반응형
[예제]
아래 링크는 CS101에서 제공하는 CantinaBand3.wav 파일입니다.
from scipy.io import wavfile
path = "./DATA/"
fname = "CantinaBand3.wav"
fs, data = wavfile.read(path + fname)
print(fs, data.shape)
print(data)
22050 (66150,) [ 3 7 0 ... -12 -427 -227]
즉, 1초에 22050 샘플이 기록되어있고(22050 Hz), 3초 길이의 음성 자료이므로 총 66150의 샘플이 들어있습니다. 해당 데이터는 정수형으로 구성 된 것을 볼 수 있습니다. 데이터를 시각화하면 다음과 같습니다.
import matplotlib.pyplot as plt
plt.figure(figsize = (12, 3))
plt.plot(data, lw = 1)
plt.xlabel("sample")
plt.ylabel("data")
plt.xlim(0, len(data))
이상입니다 :>
반응형
'인공지능 > 파이썬' 카테고리의 다른 글
파이썬으로 .csv 파일 읽기 (0) | 2023.02.08 |
---|---|
PyCharm에서 UnauthorizedAccess 오류 해결 방법 (0) | 2023.01.10 |
파이썬 vim 설정 (.vimrc) (0) | 2022.02.23 |
파이썬 판다스 Pandas 기초 | 그룹 연산 | 시계열 (0) | 2020.08.25 |
파이썬 기본 자료 처리 | ASCII (.csv .txt), Binary (.bin), MATLAB (.mat), NetCDF4 (.nc), HDF5 (.hdf5) 파일 읽고 저장하는 법 (0) | 2020.08.24 |