廊坊企业做网站做企业官网的公司

news/2025/10/2 16:39:17/文章来源:
廊坊企业做网站,做企业官网的公司,徐州网站制作怎么做,最好的网站推广软件wav文件格式分析详解 作者#xff1a;曹京日期#xff1a;2006年7月17日 一、综述 WAVE文件作为多媒体中使用的声波文件格式之一#xff0c;它是以RIFF格式为标准的。RIFF是英文Resource Interchange File Format的缩写#xff0c;每个WAVE文件的头四个字节便是“RIFF…wav文件格式分析详解 作者曹京日期2006年7月17日 一、综述    WAVE文件作为多媒体中使用的声波文件格式之一它是以RIFF格式为标准的。RIFF是英文Resource Interchange File Format的缩写每个WAVE文件的头四个字节便是“RIFF”。    WAVE文件是由若干个Chunk组成的。按照在文件中的出现位置包括RIFF WAVEChunk, Format Chunk, Fact Chunk(可选), Data Chunk。具体见下图 ------------------------------------------------|             RIFF WAVE Chunk                  ||             ID  RIFF                     ||             RiffType WAVE                |------------------------------------------------|             Format Chunk                     ||             ID fmt                       |------------------------------------------------|             Fact Chunk(optional)             ||             ID fact                      |------------------------------------------------|             Data Chunk                       ||             ID data                      |------------------------------------------------            图1   Wav格式包含Chunk示例 其中除了Fact Chunk外其他三个Chunk是必须的。每个Chunk有各自的ID位于Chunk最开始位置作为标示而且均为4个字节。并且紧跟在ID后面的是Chunk大小去除ID和Size所占的字节数后剩下的其他字节数目4个字节表示低字节表示数值低位高字节表示数值高位。下面具体介绍各个Chunk内容。PS    所有数值表示均为低字节表示低位高字节表示高位。 二、具体介绍RIFF WAVE Chunk        |       |所占字节数|  具体内容   |        | ID    |  4 Bytes |   RIFF    |    ----------------------------------    | Size  |  4 Bytes |             |    ----------------------------------    | Type  |  4 Bytes |   WAVE    |    ----------------------------------            图2  RIFF WAVE Chunk 以FIFF作为标示然后紧跟着为size字段该size是整个wav文件大小减去ID和Size所占用的字节数即FileLen - 8 Size。然后是Type字段为WAVE表示是wav文件。    结构定义如下 struct RIFF_HEADER {  char szRiffID[4];  // R,I,F,F  DWORD dwRiffSize;  char szRiffFormat[4]; // W,A,V,E }; Format Chunk        |               |   字节数  |              具体内容                |        | ID            |  4 Bytes  |   fmt                              |    --------------------------------------------------------------------    | Size          |  4 Bytes  | 数值为16或1818则最后又附加信息     |    --------------------------------------------------------------------  ----    | FormatTag     |  2 Bytes  | 编码方式一般为0x0001(详见后文)     |     |    --------------------------------------------------------------------     |    | Channels      |  2 Bytes  | 声道数目1--单声道2--双声道       |     |    --------------------------------------------------------------------     |    | SamplesPerSec |  4 Bytes  | 采样频率                             |     |    --------------------------------------------------------------------     |    | AvgBytesPerSec|  4 Bytes  | 每秒所需字节数                       |     | WAVE_FORMAT    --------------------------------------------------------------------     |    | BlockAlign    |  2 Bytes  | 数据块对齐单位(每个采样需要的字节数) |     |    --------------------------------------------------------------------     |    | BitsPerSample |  2 Bytes  | 每个采样需要的bit数                  |     |    --------------------------------------------------------------------     |    |               |  2 Bytes  | 附加信息可选通过Size来判断有无 |     |    --------------------------------------------------------------------  ----                            图3  Format Chunk 以fmt 作为标示。一般情况下Size为16此时最后附加信息没有如果为18则最后多了2个字节的附加信息。主要由一些软件制成的wav格式中含有该2个字节的附加信息。    结构定义如下 struct WAVE_FORMAT {  WORD wFormatTag;  WORD wChannels;  DWORD dwSamplesPerSec;  DWORD dwAvgBytesPerSec;  WORD wBlockAlign;  WORD wBitsPerSample; }; struct FMT_BLOCK {  char  szFmtID[4]; // f,m,t,   DWORD  dwFmtSize;  WAVE_FORMAT wavFormat; }; 补充头文件样例说明 首先是一串“52 49 46 46”这个是Ascii字符“RIFF”这部分是固定格式表明这是一个WAVE文件头。然后是“E4 3C 00 00”这个是我这个WAV文件的数据大小记住这个大小是包括头文件的一部分的包括除了前面8个字节的所有字节也就等于文件总字节数减去8。这是一个DWORD我这个文件对应是15588。然后是“57 41 56 45 66 6D 74 20”也是Ascii字符“WAVEfmt”这部分是固定格式。然后是PCMWAVEFORMAT部分可以对照一下上面的struct定义首先就是一个WAVEFORMAT的struct。随后是“10 00 00 00”这是一个DWORD对应数字16这个对应定义中的Sizeof(PCMWAVEFORMAT)后面我们可以看到这个段内容正好是16个字节。随后的字节是“01 00”这是一个WORD对应定义为编码格式“WAVE_FORMAT_PCM”我们一般用的是这个。随后的是“01 00”这是一个WORD对应数字1表示声道数为1这是个单声道Wav。随后的是“22 56 00 00”这是一个DWORD对应数字22050代表的是采样频率22050。随后的是“44 AC 00 00”这是一个DWORD对应数字44100代表的是每秒的数据量。然后是“02 00”这是一个WORD对应数字是2表示块对齐的内容含义不太清楚。然后是“10 00”这是一个WORD对应WAVE文件的采样大小数值为16采样大小为16Bits。然后是一串“64 61 74 61”这个是Ascii字符“data”标示头结束开始数据区域。而后是数据区的开头有一个DWORD我这里的字符是“C0 3C 00 00”对应的十进制数为15552看一下前面正好可以看到文件大小是15596其中到“data”标志出现为止的头是40个字节再减去这个标志的4个字节正好是15552再往后面就是真正的Wave文件的数据体了头文件的解析就到这里。 Fact Chunk        |       |所占字节数|  具体内容   |        | ID    |  4 Bytes |   fact    |    ----------------------------------    | Size  |  4 Bytes |   数值为4   |    ----------------------------------    | data  |  4 Bytes |             |    ----------------------------------            图4  Fact Chunk Fact Chunk是可选字段一般当wav文件由某些软件转化而成则包含该Chunk。    结构定义如下 struct FACT_BLOCK {  char  szFactID[4]; // f,a,c,t  DWORD  dwFactSize; }; Data Chunk        |       |所占字节数|  具体内容   |        | ID    |  4 Bytes |   data    |    ----------------------------------    | Size  |  4 Bytes |             |    ----------------------------------    | data  |          |             |    ----------------------------------             图5 Data Chunk Data Chunk是真正保存wav数据的地方以data作为该Chunk的标示。然后是数据的大小。紧接着就是wav数据。根据Format Chunk中的声道数以及采样bit数wav数据的bit位置可以分成以下几种形式    ---------------------------------------------------------------------    |   单声道  |    取样1    |    取样2    |    取样3    |    取样4    |    |           |--------------------------------------------------------    |  8bit量化 |    声道0    |    声道0    |    声道0    |    声道0    |    ---------------------------------------------------------------------    |   双声道  |          取样1            |           取样2           |    |           |--------------------------------------------------------    |  8bit量化 |  声道0(左)  |  声道1(右)  |  声道0(左)  |  声道1(右)  |    ---------------------------------------------------------------------    |           |          取样1            |           取样2           |    |   单声道  |--------------------------------------------------------    | 16bit量化 |    声道0    |  声道0      |    声道0    |  声道0      |    |           | (低位字节)  | (高位字节)  | (低位字节)  | (高位字节)  |    ---------------------------------------------------------------------    |           |                         取样1                         |    |   双声道  |--------------------------------------------------------    | 16bit量化 |  声道0(左)  |  声道0(左)  |  声道1(右)  |  声道1(右)  |    |           | (低位字节)  | (高位字节)  | (低位字节)  | (高位字节)  |    --------------------------------------------------------------------- ---------------------------------------------------------------------                         图6 wav数据bit位置安排方式 Data Chunk头结构定义如下    struct DATA_BLOCK {  char szDataID[4]; // d,a,t,a  DWORD dwDataSize; }; FormatTag:说明 #define WAVE_FORMAT_UNKNOWN 0x0000 /* Microsoft Corporation */ #define WAVE_FORMAT_PCM 0x0001     /* Microsoft Corporation */ #define WAVE_FORMAT_ADPCM 0x0002   /* Microsoft Corporation */ #define WAVE_FORMAT_ALAW 0x0006    /* Microsoft Corporation */ #define WAVE_FORMAT_MULAW 0x0007   /* Microsoft Corporation */ #define WAVE_FORMAT_GSM610 0x0031  /* Microsoft Corporation */ #define WAVE_FORMAT_MPEG 0x0050   /* Microsoft Corporation */ 三、小结    因此根据上述结构定义以及格式介绍很容易编写相应的wav格式解析代码。这里具体的代码就不给出了。 四、参考资料    1、李敏, 声频文件格式WAVE的转换, 电脑知识与技术(学术交流), 2005.    2、http://www.codeguru.com/cpp/g-m/multimedia/audio/article.php/c8935__1/    3、http://www.smth.org/pc/pcshowcom.php?cid129276 4、http://icculus.org/SDL_sound/downloads/external_documentation/wavecomp.htm (英文详细说明) 本文来自CSDN博客转载请标明出处http://blog.csdn.net/xzdwfwt111/archive/2009/03/03/3949969.aspx 本文来自CSDN博客转载请标明出处http://blog.csdn.net/xzdwfwt111/archive/2009/03/03/3949969.aspx 本文来自CSDN博客转载请标明出处http://blog.csdn.net/xzdwfwt111/archive/2009/03/03/3949969.aspx

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/925086.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

农家乐网站 建设绍兴以往网站招工做

​一、前言 上一篇给牛奶做直播之二 主要讲用RTMP搭建点播服务器,整了半天直播还没上场,今天不讲太多理论的玩意,奶牛今天放假了也不出场,就由本人亲自上场来个直播首秀,见下图,如果有兴趣的话&#xff0…

菏泽哪里有做网站的因酷网站建设

转载自公众号:工匠小猪猪的技术世界 摘要: 本文非原创,是笔者搜集了一些HikariCP相关的资料整理给大家的介绍,主要讲解了为什么sb2选择了HikariCP以及HikariCP为什么这么快。 Springboot2默认数据库连接池选择了HikariCP为何选择HikariCP理由…

设备沉睡的“心跳”难题:BLE休眠后无法被手机唤醒的分析与优化 - 详解

设备沉睡的“心跳”难题:BLE休眠后无法被手机唤醒的分析与优化 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &…

CPU温度查看(Core Temp)

前言 原因很简单,用到Core Temp这个软件是因为想查看CPU的温度,现在从任务管理器中已经看不到CPU温度了,所以需要其他方式来查看为什么需要看CPU的温度呢,因为在某天,我发现刚开机,基本没跑什么任务,风扇就开始…

实用指南:Python虚拟环境管理工具virtualenv详解

实用指南:Python虚拟环境管理工具virtualenv详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas",…

博罗网站设计公司网站服务搭建

sys模块 与操作系统交互的一个接口 文件夹相关 os.makedirs(dirname1/dirname2) 可生成多层递归目录os.removedirs(dirname1) 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推os.mkdir(dirnam…

负载均衡式的在线OJ项目编写(三) - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

云校网站建设wordpress缓存清除

BLE服务器与客户端通信 文章目录 BLE服务器与客户端通信1、软件准备2、硬件准备3、代码实现3.1 BLE服务器实现3.2 Android手机测试BLE服务器3.3 ESP32 BLE客户端在本文中,我们将介绍如何使用低功耗蓝牙在两个 ESP32 开发板之间执行 BLE 服务器客户端通信。 换句话说,将介绍如…

织梦菜谱网站模板免费下载有些网页打不开是什么原因

一、二次利用风险 电动汽车的当前电池信息,如年份、容量和制造商,通常是相互关联和不完整的。再加上电池内部的电化学变化,SLB在包括安全和环境在内的一些领域存在很大的风险,这表明短期内梯次利用仍然是一个不成熟的方案。 1.1 安…

网站建设推广型百度网址大全导航首页

822.翻转卡片游戏 在桌子上有 n 张卡片,每张卡片的正面和背面都写着一个正数(正面与背面上的数有可能不一样)。 我们可以先翻转任意张卡片,然后选择其中一张卡片。 如果选中的那张卡片背面的数字 x 与任意一张卡片的正面的数字都…

深入解析:python学智能算法(三十九)|使用PyTorch模块的normal()函数绘制正态分布函数图

深入解析:python学智能算法(三十九)|使用PyTorch模块的normal()函数绘制正态分布函数图pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !importa…

2025污水处理设备厂家 TOP 企业品牌推荐排行榜,一体化,生活,工业,养殖,医疗,农村,学校,餐厨,隧洞,高速污水处理设备公司推荐!

在环保意识日益增强、政策法规持续趋严的当下,污水处理行业正面临着前所未有的挑战与机遇。随着工业化和城市化进程的加速,污水排放量不断攀升,污水成分也愈发复杂多样。传统的污水处理设备在处理效率、能耗控制以及…

会议网站定制广州网站建设定制方案

文章目录 一、介绍1. 支付2. 支付结果 二、前提准备1. 支付宝开放平台2. 内网穿透3. 局域网 三、order微服务1. 依赖、配置2. 工具类1. 二维码生成2. AlipayConfig 3. 端点代码1. /generatepaycode2. /requestpay3. /payresult4. /receivenotify 环境如下 Version手机安卓支付…

详细介绍:网络安全常见敏感目录字典

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

怎么做微信领券网站建立电影网站教程

怎么查看云服务器上的文件 内容精选换一换华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。安装完操作系统后的临时云服务器需要进行相关配置&#…

给工厂做英文外贸网站apache建设多个网站

今天安装sqoop查看版本报错错误: 找不到或无法加载主类 org.apache.hadoop.hbase.util.GetJavaProperty查看hbase版本也出错 错误: 找不到或无法加载主类 org.apache.hadoop.hbase.util.GetJavaProperty hbase version 错误: 找不到或无法加载主类 org.apache.hadoop.hbase.…

软件上传到那个网站做宣传apache php wordpress

前些天学的现在又差不多忘了...比如计算机开机过程,指令执行过程,浏览器输入网址回车后到显示网页发生了什么等等... 接下去打算系统复习下操作系统,看了清华的公开课看了一半了,没做笔记,等看现代操作系统时再做笔记吧…

郑州网站服务公司怎样做销售网站

Linux 系统中有软链接和硬链接两种特殊的“文件”。 软链接可以看作是Windows中的快捷方式,可以让你快速链接到目标档案或目录。 硬链接则透过文件系统的inode来产生新档名,而不是产生新档案。 创建方法都很简单: 软链接(符号链接…

phpnow 搭建本地网站物流做网站哪家好

一、理解自定义指令 在 vue 中提供了一些对于页面和数据更为方便的输出&#xff0c;这些操作就叫做指令&#xff0c;以 v-xxx 表示&#xff0c;比如 html 页面中的属性 <div v-xxx ></div>。自定义指令很大程度提高了开发效率&#xff0c;提高了工程化水平&#x…