sunau
---读写sun au文件
源代码: Lib/sunau.py
这个 sunau
模块为Sun AU声音格式提供了一个方便的接口。请注意,此模块与模块的接口兼容。 aifc
和 wave
.
音频文件由数据后面的标题组成。标题字段为:
场 |
目录 |
---|---|
魔术字 |
四字节 |
标题大小 |
头的大小,包括信息,以字节为单位。 |
数据大小 |
数据的物理大小(字节)。 |
编码 |
指示如何对音频样本进行编码。 |
采样率 |
采样率。 |
通道的γ |
样本中的通道数。 |
信息 |
提供音频文件描述的ASCII字符串(用空字节填充)。 |
除了信息字段,所有头字段的大小都是4个字节。它们都是以big-endian字节顺序编码的32位无符号整数。
这个 sunau
模块定义以下功能:
- sunau.open(file, mode)
如果 file 是一个字符串,按该名称打开文件,否则将其视为可查找的文件,就像对象一样。 mode 可以是任何
'r'
只读模式。
'w'
只写模式。
注意,它不允许读/写文件。
A mode 属于
'r'
返回一个AU_read
对象,而A mode 属于'w'
或'wb'
返回一个AU_write
对象。
这个 sunau
模块定义以下异常:
这个 sunau
模块定义以下数据项:
- sunau.AUDIO_FILE_ENCODING_MULAW_8
- sunau.AUDIO_FILE_ENCODING_LINEAR_8
- sunau.AUDIO_FILE_ENCODING_LINEAR_16
- sunau.AUDIO_FILE_ENCODING_LINEAR_24
- sunau.AUDIO_FILE_ENCODING_LINEAR_32
- sunau.AUDIO_FILE_ENCODING_ALAW_8
此模块支持的AU头中的编码字段值。
- sunau.AUDIO_FILE_ENCODING_FLOAT
- sunau.AUDIO_FILE_ENCODING_DOUBLE
- sunau.AUDIO_FILE_ENCODING_ADPCM_G721
- sunau.AUDIO_FILE_ENCODING_ADPCM_G722
- sunau.AUDIO_FILE_ENCODING_ADPCM_G723_3
- sunau.AUDIO_FILE_ENCODING_ADPCM_G723_5
AU头中编码字段的其他已知值,但此模块不支持这些值。
读取对象
读取对象,由返回 open()
以上方法如下:
- AU_read.getcompname()
人类可读版本
getcomptype()
. 支持的类型具有各自的名称'CCITT G.711 u-law'
,'CCITT G.711 A-law'
和'not compressed'
.
- AU_read.getparams()
返回A
namedtuple()
(nchannels, sampwidth, framerate, nframes, comptype, compname)
,相当于get*()
方法。
- AU_read.readframes(n)
最多读取和返回 n 音频帧,如
bytes
对象。数据将以线性格式返回。如果原始数据是U-law格式的,则将进行转换。
以下两个方法定义了一个术语“位置”,该术语在它们之间是兼容的,否则依赖于实现。
- AU_read.setpos(pos)
将文件指针设置到指定位置。仅从返回值
tell()
应该用于 pos .
以下两个函数是为与 aifc
不要做任何有趣的事。
写对象
写入对象,由返回 open()
以上方法如下:
- AU_write.setparams(tuple)
这个 元组 应该是
(nchannels, sampwidth, framerate, nframes, comptype, compname)
,其值对set*()
方法。设置所有参数。
- AU_write.tell()
返回文件中的当前位置,具有相同的免责声明
AU_read.tell()
和AU_read.setpos()
方法。
- AU_write.writeframesraw(data)
编写音频帧,不更正 n框架 .
在 3.4 版更改: 任何 bytes-like object 现在被接受。
- AU_write.writeframes(data)
编写音频帧并确保 n框架 是正确的。
在 3.4 版更改: 任何 bytes-like object 现在被接受。
请注意,在调用后设置任何参数都是无效的 writeframes()
或 writeframesraw()
.