본문 바로가기
programming language/Python

Python wave file read

by __observer__ 2012. 6. 2.
반응형

파이썬은 굉장히 직관적이면서도 쉬운 문법과 잘 정리된 매뉴얼 등 장점이 참 많은 언어라는 생각이 듭니다. 요즘 여차 저차 해서 파이썬을 만지작 거리고 있는데~ 참 재미 있더군요.

 

조금만 알아도 굉장히 많은 것들을 할 수 있는 효율적인 언어구나 하는 생각이 딱~~ 들었습니다.

 

어쨌든 오늘은 Python 에서 wav 파일을 읽는 방법에 대해 설명 드리려 합니다.

 

뭐 아는 분들은 아시겠지만 간단하더군요.

 

http://stackoverflow.com/questions/2060628/how-to-read-wav-file-in-python

 

아래 코드는 위 주소를 참조하여 만들었습니다.

 

위 주소의 댓글들을 보니 audiolab 이라는 모듈도 있는 것 같고 Scipy를 이용해서도 읽어 들일수가 있는 것 같더군요.

 

저는 Python 기본 모듈인 wave 모듈을 이용했습니다.

 

아래 코드는 16 비트 wave 파일을 읽어드리는 코드 입니다.

 

Mono, stereo 까지만 읽어 들일 수 있게 했습니다.

 

 

위 예제 코드는 MM.wav 라는 파일을 읽어들이는 코드 입니다.

nRead 는 읽어 들일 프레임 수 이고~ 당연히 전체 데이터 프레임 수보다는 작아야 겠죠~

wave 파일이 stereo 라면 wave_channel1, wave_channel2 에 각 채널의 데이터가 들어가고~ mono 면 wave_channel1에만 데이터가 저장 됩니다.

 

16 비트가 아니라면 struct module 의 unpack() 의 format 을 변경 해 줘야 합니다. 위 예제 코드에서 'h' 는 2 byte integer 니깐~ 매뉴얼을 참조해서 적절한 Format 으로 변경이 되어야 합니다.


반응형

댓글