Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python(sndhdr)을 사용하여 사운드 파일 유형 확인


파이썬 표준 라이브러리의 sndhdr 모듈은 파일에 있는 사운드 데이터 유형을 읽는 유틸리티 함수를 제공합니다. 함수는 5개의 속성을 포함하는 namedtuple()을 반환합니다.

파일 형식 'aifc', 'aiff', 'au', 'hcom', 'sndr', 'sndt', 'voc', 'wav', '8svx', 'sb', 'ub' 또는 '울'.
프레임 속도 sampling_rate는 실제 값이거나 알 수 없거나 디코딩하기 어려운 경우 0입니다.
n채널 채널 수 또는 결정할 수 없거나 값을 디코딩하기 어려운 경우 0
nframes 프레임 수 또는 -1.
샘플폭 bits_per_sample은 비트 단위의 샘플 크기이거나 A-LAW의 경우 'A' 또는 u-LAW의 경우 'U'입니다.

sndhdr 모듈의 기능

sndhdr.what()

이 함수는 whathdr()을 사용하여 파일 이름에 저장된 사운드 데이터의 유형을 결정합니다. 성공하면 위에서 설명한 대로 명명된 튜플을 반환하고, 그렇지 않으면 None을 반환합니다.

sndhdr.whatthdr()

이 함수는 파일 헤더를 기반으로 파일에 저장되는 사운드 데이터의 유형을 결정합니다. 이 함수는 성공 시 위에서 설명한 대로 명명된 튜플을 반환하거나 없음을 반환합니다.

예시

>>> import sndhdr
>>> sndhdr.whathdr("sample.wav")
SndHeaders(filetype = 'wav', framerate = 44100, nchannels = 1, nframes = 99999, sampwidth = 16)
>>> sndhdr.whathdr("sample.aiff")
SndHeaders(filetype = 'aiff', framerate = 8000, nchannels = 1, nframes = 271200, sampwidth = 16)
>>> sndhdr.whathdr("sample.au")
SndHeaders(filetype = 'au', framerate = 8000, nchannels = 1, nframes = 103397.0, sampwidth = 'U')