zoukankan      html  css  js  c++  java
  • 基于VC的声音文件操作(一)

    (一)文件格式

     1、RIFF文件结构和WAVE文件格式

    Windows支持两种RIFF(Resource Interchange File Format,"资源交互文件格式")格式的音频文件,MIDI的RMID文件和波形音频文件格式WAVE文件,其中在计算机领域最常用的数字化声音文件格式是后者,它是微软专门为Windows系统定义的波形文件格式,本文涉及到的声音文件所指的就是WAVE文件;常见的WAVE语音文件主要有两种,分别对应于单声道(11.025KHz采样率、8Bit的采样值)和双声道(44.1KHz采样率、16Bit的采样值);

    RIFF文件结构可以看作是树状结构,其基本构成是称为"块"(Chunk)的单元,每个块有"标志符"、"数据大小"及"数据"所组成,块的结构如下:

    块的标志符(4BYTES)
    数据大小 (4BYTES)
    数据

    其中"标志符"为4个字符所组成的代码,如"RIFF","LIST"等,指定块的标志ID;数据大小用来指定块的数据域大小,它的尺寸也为4个字符;数据用来描述具体的声音信号,它可以由若干个子块构成,一般情况下块与块是平行的,不能相互嵌套,但是有两种类型的块可以嵌套子块,他们是"RIFF"或"LIST"标志的块,其中RIFF块的级别最高,它可以包括LIST块;

    RIFF块和LIST块与其他块不同,RIFF块的数据总是以一个指定文件中数据存储格式的四个字符码(称为格式类型)开始,如WAVE文件有一个"WAVE"的格式类型;LIST块的数据总是以一个指定列表内容的4个字符码(称为列表类型)开始,例如扩展名为".AVI"的视频文件就有一个"strl"的列表类型,RIFF和LIST的块结构如下:

     

    RIFF/LIST标志符
    数据1大小
    数据1
    格式/列表类型
    数据

    WAVE文件结构,WAVE是非常简单的一种RIFF文件,它的格式类型为"WAVE";RIFF块包含两个子块,这两个子块的ID分别是"fmt"和"data",其中"fmt"子块由结构PCMWAVEFORMAT所组成,数据组成就是PCMWAVEFORMAT结构中的数据,WAVE文件的结构如下:

    标志符(RIFF)
    数据大小
    格式类型("WAVE")
    "fmt"
    Sizeof(PCMWAVEFORMAT)
    PCMWAVEFORMAT
    "data"
    声音数据大小
    声音数据

     Wave的具体格式,请阅读wav文件格式分析

    版权申明:本站文章均来自网络,如有侵权,请评论 ,收到后立即删除,谢谢! 

  • 相关阅读:
    POJ 1887 Testing the CATCHER
    HDU 3374 String Problem
    HDU 2609 How many
    POJ 1509 Glass Beads
    POJ 1458 Common Subsequence
    POJ 1159 Palindrome
    POJ 1056 IMMEDIATE DECODABILITY
    POJ 3080 Blue Jeans
    POJ 1200 Crazy Search
    软件体系结构的艺术阅读笔记1
  • 原文地址:https://www.cnblogs.com/wanghoney/p/3449569.html
Copyright © 2011-2022 走看看