sndhdr — 确定声音文件类型

源代码: Lib/sndhdr.py

自 3.11 版本起已弃用,将在 3.13 版本中移除: sndhdr 模块已弃用(有关详细信息和替代方案,请参阅 PEP 594)。


sndhdr 提供实用函数,用于尝试确定文件中的声音数据类型。当这些函数能够确定文件中存储的声音数据类型时,它们会返回一个 namedtuple(),其中包含五个属性:(filetypeframeratenchannelsnframessampwidth)。type 的值表示数据类型,将是以下字符串之一:'aifc''aiff''au''hcom''sndr''sndt''voc''wav''8svx''sb''ub''ul'。如果未知或难以解码,sampling_rate 将为实际值或 0。类似地,如果无法确定或值难以解码,channels 将为通道数或 0frames 的值将为帧数或 -1。元组中的最后一个项目 bits_per_sample 将为以位为单位的样本大小,或 A-LAW 的 'A' 或 u-LAW 的 'U'

sndhdr.what(filename)

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

3.5 版中已更改:结果已从元组更改为命名元组。

sndhdr.whathdr(filename)

根据文件头确定存储在文件中的声音数据类型。文件名称由 filename 给出。此函数在成功时返回如上所述的命名元组,或 None

3.5 版中已更改:结果已从元组更改为命名元组。

识别以下声音头类型,如下所示,其中 whathdr()what() 的返回值:

声音头格式

'aifc'

压缩音频交换文件

'aiff'

音频交换文件

'au'

Au 文件

'hcom'

HCOM 文件

'sndt'

Sndtool 声音文件

'voc'

创新实验室音频文件

'wav'

波形音频文件格式文件

'8svx'

8 位采样语音文件

'sb'

带符号字节音频数据文件

'ub'

UB 文件

'ul'

uLAW 音频文件

sndhdr.tests

执行各个测试的函数列表。每个函数采用两个参数:字节流和一个打开的文件类对象。当 what() 使用字节流调用时,文件类对象将为 None

如果测试成功,则测试函数应返回描述图像类型的字符串,如果测试失败,则返回 None

示例

>>> import sndhdr
>>> imghdr.what('bass.wav')
'wav'
>>> imghdr.whathdr('bass.wav')
'wav'