使用Python(sndhdr)确定声音文件的类型

Python标准库中的sndhdr模块提供实用程序功能,可读取文件中声音数据的类型。函数返回namedtuple(),其中包含五个属性

文件类型代表'aifc','aiff','au','hcom','sndr','sndt','voc','wav','8svx','sb','ub'或'ul'的字符串。
帧率如果未知或难以解码,则sample_rate将为实际值或0。
频道通道数;如果无法确定或难以解码,则为0
nframes帧数或-1。
示例宽度bits_per_sample,将是样本大小(以位为单位),或者是A-LAW为“ A”,u-LAW为“ U”。

sndhdr模块中的功能

sndhdr.what()

此功能使用确定存储在文件名中的声音数据的类型whathdr()。如果成功,则如上 返回一个namedtuple,否则返回None。

sndhdr.whathdr()

此功能根据文件头确定存储在文件中的声音数据的类型。如果成功,此函数将返回一个如上 的namedtuple或None。

例子

>>> 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')