wave
---读写wav文件¶
源代码: Lib/wave.py
这个 wave
模块为wav声音格式提供了方便的接口。它不支持压缩/解压,但支持单声道/立体声。
这个 wave
模块定义以下函数和异常:
- wave.open(file, mode=None)¶
如果 file 是一个字符串,按该名称打开文件,否则将其视为一个类似于对象的文件。 mode 可以是:
'rb'
只读模式。
'wb'
只写模式。
请注意,它不允许读/写wav文件。
A mode 属于
'rb'
返回AWave_read
对象,而A mode 属于'wb'
返回AWave_write
对象。如果 mode 被省略,一个类似文件的对象作为 file ,file.mode
用作的默认值 mode .如果传入类似文件的对象,则当其
close()
方法;调用方负责关闭文件对象。这个
open()
函数可用于with
语句。当with
块完成后,Wave_read.close()
或Wave_write.close()
方法被调用。在 3.4 版更改: 添加了对不可浏览文件的支持。
- exception wave.Error¶
由于违反了WAV规范或遇到了实现缺陷而使某些事情不可能发生时引发的错误。
波形读取对象¶
波形读取对象,由返回 open()
,方法如下:
- Wave_read.getnchannels()¶
返回音频通道数 (
1
对于单声道,2
用于立体声)。
- Wave_read.getsampwidth()¶
返回以字节为单位的样本宽度。
- Wave_read.getframerate()¶
返回采样频率。
- Wave_read.getnframes()¶
返回音频帧数。
- Wave_read.getcomptype()¶
返回压缩类型 (
'NONE'
是唯一受支持的类型)。
- Wave_read.getcompname()¶
人类可读版本
getcomptype()
. 通常'not compressed'
平行线'NONE'
.
- Wave_read.getparams()¶
返回A
namedtuple()
(nchannels, sampwidth, framerate, nframes, comptype, compname)
,相当于get*()
方法。
- Wave_read.rewind()¶
将文件指针倒带到音频流的开头。
以下两种方法是为与 aifc
模块,不要做任何有趣的事情。
- Wave_read.getmarkers()¶
返回
None
.
- Wave_read.getmark(id)¶
提出错误。
以下两个方法定义了一个术语“位置”,该术语在它们之间是兼容的,否则依赖于实现。
- Wave_read.setpos(pos)¶
将文件指针设置到指定位置。
- Wave_read.tell()¶
返回当前文件指针位置。
波形写入对象¶
对于可查找的输出流, wave
标题将自动更新,以反映实际写入的帧数。对于无法靠近的溪流, n框架 写入第一帧数据时,值必须准确。精确的 n框架 值可以通过调用 setnframes()
或 setparams()
使用之前要写入的帧数 close()
调用然后使用 writeframesraw()
写入帧数据,或通过调用 writeframes()
所有帧数据都要写入。在后一种情况下 writeframes()
将计算数据中的帧数并设置 n框架 因此,在写入帧数据之前。
wave-write对象,由返回 open()
,方法如下:
在 3.4 版更改: 添加了对不可浏览文件的支持。
- Wave_write.setnchannels(n)¶
设置通道数。
- Wave_write.setsampwidth(n)¶
将样本宽度设置为 n 字节。
- Wave_write.setframerate(n)¶
将帧速率设置为 n .
在 3.2 版更改: 此方法的非整数输入被舍入为最接近的整数。
- Wave_write.setnframes(n)¶
将帧数设置为 n . 如果实际写入的帧数不同,则稍后会更改此设置(如果无法找到输出流,则此更新尝试将引发错误)。
- Wave_write.setcomptype(type, name)¶
设置压缩类型和描述。目前,只有压缩型
NONE
支持,表示没有压缩。
- Wave_write.setparams(tuple)¶
这个 元组 应该是
(nchannels, sampwidth, framerate, nframes, comptype, compname)
,其值对set*()
方法。设置所有参数。
- Wave_write.tell()¶
返回文件中的当前位置,具有相同的免责声明
Wave_read.tell()
和Wave_read.setpos()
方法。
- Wave_write.writeframesraw(data)¶
编写音频帧,不更正 n框架 .
在 3.4 版更改: 任何 bytes-like object 现在被接受。
- Wave_write.writeframes(data)¶
编写音频帧并确保 n框架 是正确的。如果输出流不可查找,并且之后写入的帧总数大于 data 已写入与以前设置的值不匹配 n框架 .
在 3.4 版更改: 任何 bytes-like object 现在被接受。
请注意,在调用后设置任何参数都是无效的 writeframes()
或 writeframesraw()
任何这样做的尝试都会增加 wave.Error
.