바이트를 정수로 변환하기
Python의 wave 모듈과 readframes() 메서드를 사용해 오디오 파일을 가져오고 읽는 방법을 살펴봤습니다. 하지만 이렇게 하면 바이트 배열이 생성됩니다.
바이트를 더 유용한 형태로 바꾸기 위해 NumPy의 frombuffer() 메서드를 사용하겠습니다.
frombuffer()에 사운드 웨이브 바이트를 전달하고 dtype을 'int16'으로 지정하면 바이트를 정수로 변환할 수 있습니다. 정수는 바이트보다 다루기가 훨씬 쉽습니다.
Python의 wave 라이브러리와 good_morning.wav 오디오 파일은 이미 가져와 두었습니다.
이 연습은 강의의 일부입니다
Python으로 배우는 음성 언어 처리
연습 안내
numpy패키지를 일반 약칭인np로 임포트하세요.- good morning 오디오 파일을 열고 읽으세요.
signal_gm바이트를int16정수로 변환하세요.- 처음 10개의 사운드 웨이브 값을 확인하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
import ____ as ____
# Open good morning sound wave and read frames as bytes
good_morning = wave.open(____, 'r')
signal_gm = good_morning.readframes(-1)
# Convert good morning audio bytes to integers
soundwave_gm = np.frombuffer(____, dtype=_____)
# View the first 10 sound wave values
print(soundwave_gm[:____])