python wave音频库使用(一)

image.png

目录

python wave音频库使用(一)
python wave音频库使用(二)

wave

wave主要作用是操作WAV格式文件。

什么是WAV格式文件?

WAV是最常见的声音文件格式之一,是微软公司专门为Windows开发的一种标准数字音频文件,该文件能记录各种单声道或立体声的声音信息,并能保证声音不失真。
[图片上传中...(image.png-fc53c5-1587727221744-0)]

WAV是意义上的无损音乐格式,简单说就是CD里文件的数字化格式。

但WAV文件有一个致命的缺点,就是它所占用的磁盘空间太大(每分钟的音乐大约需要12兆磁盘空间)。


image.png

WAV音频相关因素

采样频率

每秒钟采集音频数据的次数.

采样频率越高,音频保真度越高。

计算机广泛配置的16位声卡,使用的采样频率通常包括11025Hz、22050Hz、44100Hz和48000Hz四种。

采用11025Hz采样的声音效果相当于电话声音的效果;
采用22050HZ采样的声音效果相当于FM调频广播的效果;
采用44100HZ采样的声音效果相当于CD声音的效果。

image.png
采样位数(振幅采样精度)

采样值或取样值,是用来衡量声音波动变化的一个参数,也是声卡的分辨率。

它的数值越大,分辨率也就越高,发出声音的能力越强。目前计算机中配置的16位声卡的采样位数包括8位和16位两种。

声道数

有单声道和立体声之分。

单声道的声音只能使用一个喇叭发声(有的声卡也将单声道信息处理成两个喇叭同时输出),立体声的WAV可以使两个喇叭都发声(一般左右声道有分工),这样更能感受到音频信息的空间效果。

显然,双声道数据还原特性更接近人们的听力习惯,但采集得到的数据量会增加1倍。

WAV格式大小计算

采样频率一般是44.1K,16bit采样精度

WAV格式大小 = 44.1KHz(采样频率) X 16bit(采样位数) X 2(双声道) X 播放时间

WAV格式是没有压缩无损的,MP3格式是按1:12压缩保存的,所以MP3格式大小等于上式的1/12

wav文件格式

WAVE文件是非常简单的一种RIFF文件,它的格式类型为"WAVE"。

什么是RIFF文件

RIFF全称为资源互换文件格式(ResourcesInterchange FileFormat),RIFF文件是windows环境下大部分多媒体文件遵循的一种文件结构。

能以RIFF文件存储的数据包括:

data res
音频视频交错格式数据 .AVI
波形格式数据 .WAV
位图格式数据 .RDI
MIDI格式数据 .RMI
调色板格式 .PAL
多媒体电影 .RMN
动画光标 .ANI
其它RIFF文件 .BND

RIFF是由chunk构成的,chunk是RIFF组成的基本单位,每个CHUNK可看作存贮了视频的一帧数据或者是音频的一帧数据,所以下面我们来讨论一下chunk的结构是怎么样的.


image.png

CHUNK的结构如下:

数据 说明
FOURCC 使用4字节的ASIIC字符标识类型
SIZE 数据的大小
DATA 用于存放数据

代码如下:

struct chunk
{
    uint32_t id;   // 块标志
    uint32_t size; // 块大小
    uint8_t data[size]; // 块数据
};
二进制分析
偏移地址 字节数 数据类型 内容
00H 4 char “RIFF”; RIFF标志
04H 4 long int 0x00 01 06 0A(注意数据存储顺序); 文件长度
08H 4 char “WAVE”; WAVE标志
0CH 4 char “fmt ”; fmt标志,最后一位为空
10H 4 long int 0x12; sizeof(PCMWAVEFORMAT)
14H 2 int 1(WAVE_FORMAT_PCM); 格式类别,1表示为PCM形式的声音数据
16H 2 int 2; 通道数,单声道为1,双声道为2
18H 2 int 44100; 采样频率(每秒样本数)
1CH 4 long int 0x10B10000; 每秒数据量;其值为通道数×每秒数据位数×每样本的数据位数/8。播放软件利用此值可以估计缓冲区的大小。
20H 2 int 数据块的调整数(按字节算的),其值为通道数×每样本的数据位值/8。播放软件需要一次处理多个该值大小的字节数据,以便将其值用于缓冲区的调整。
22H 2 int 每样本的数据位数,表示每个声道中各个样本的数据位数。如果有多个声道,对每个声道而言,样本大小都一样。
50H 4 char “data”; 数据标记符
54H 4 long int 0x00 01 05 D8; 语音数据大小

参考

百度百科
wav音频文件格式解析【个人笔记】(自用)
Python处理wave文件
RIFF文件是什么
RIFF和WAVE音频文件格式

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,997评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,603评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,359评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,309评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,346评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,258评论 1 300
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,122评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,970评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,403评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,596评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,769评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,464评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,075评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,705评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,848评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,831评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,678评论 2 354