반응형
def wav_print(file_path):
# 파일 읽어오기
file = open(file_path, "rb")
# 44바이트의 헤더정보 가져오기
data = file.read(44)
# 44바이틔 헤더 정보를 Dictionary 형태로 저장하기
file_header = {"name": file_path,
"ChunkID": data[0:4],
"ChunkSize": int.from_bytes(data[4:8], byteorder='little'),
"Format": data[8:12],
"Subchunk1ID": data[12:16],
"Subchunk1Size": data[16:20],
"AudioFormat": int.from_bytes(data[20:22], byteorder='little'),
"Numchannel": int.from_bytes(data[22:24], byteorder='little'),
"SampleRate": int.from_bytes(data[24:28], byteorder='little'),
"ByteRate": int.from_bytes(data[28:32], byteorder='little'),
"Blockalign": int.from_bytes(data[32:34], byteorder='little'),
"BitsPerSample": int.from_bytes(data[34:36], byteorder='little'),
"Subchunk2ID": data[36:40],
"Subchunk2Size": int.from_bytes(data[40:44], byteorder='little')
}
# for문 돌면서 Dictionary 표출하기
for i in file_header.keys():
print(f"{i} : {file_header[i]}")
Wave파일은 항상 정해져있는 44바이트의 Header정보가 있다.
헤더정보 보는 Python 코드이다.
뭐 이거가지고 C#이든 자바든 컨버팅은 쉬울듯..정해져있는 위치의 바이트 읽어서 표출하는거니까..
(엔디안 정보 확인필수!)
반응형