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


Python 标准库中的 sndhdr 模块提供了一些实用函数,用于读取文件中存储的声音数据的类型。这些函数返回一个命名元组,包含五个属性。

filetype表示 'aifc'、'aiff'、'au'、'hcom'、'sndr'、'sndt'、'voc'、'wav'、'8svx'、'sb'、'ub' 或 'ul' 的字符串。
framerate采样率,如果未知或难以解码,则为 0。
nchannels声道数,如果无法确定或难以解码,则为 0。
nframes帧数或 -1。
sampwidth每采样位数,表示以位为单位的样本大小,或 'A' 表示 A-LAW,或 'U' 表示 u-LAW。

sndhdr 模块中的函数

sndhdr.what()

此函数使用 whathdr() 确定存储在文件 filename 中的声音数据的类型。如果成功,则返回上面描述的命名元组,否则返回 None。

sndhdr.whathdr()

此函数根据文件头确定存储在文件中的声音数据的类型。此函数在成功时返回上面描述的命名元组,或 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')

更新于: 2020-06-30

216 次查看

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告

© . All rights reserved.