第2章多媒体录音技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.2用DriectSound开发音频数据采集的 步骤
(1)设置采样的格式(WaveFormat类)如: format = new WaveFormat(); format.FormatTag = WaveFormatTag.Pcm; format.Channels = 1; format.BitsPerSample = 16; format.SamplesPerSecond = 22050; format.BlockAlign =(short)(format.Channels * (f
ormat.BitsPerSample / 8)); format.AverageBytesPerSecond = format.SamplesPe
rSecond * format.BlockAlign;
2.2用DriectSound开发音频数据采集的 步骤
(2)构造PCM文件 详见代码!
2.1音频数据采集的基础知识
(6)PCM编码文件格式
(b) The 24 byte FORMAT chunk is constructed like this:
Bytes 0 - 3 : 'f' 'm' 't' ' '
Bytes 4 - 7 : The format chunk length. This
2.2用DriectSound开发音频数据采集的 步骤
(3)创建录音设备
private void CreateCaptureDevice()
{
capture = new Capture();
}
2.2用DriectSound开发音频数据采集的 步骤
(4)录音缓冲区(CaptureBuffer类):CaptureBuff er区是暂时存放音频数据的地方,并且它还提 供了我们两个指针:读指针和捕捉指针。它们 的位置按照相对于缓冲区起始位置的偏移量计 算。 a)读指针位于当前已经被完全捕捉到缓冲区 的数据末尾。 c)捕捉指针位于当前将要从硬件中复制的数 据块的末尾。 d)如果你想从缓冲区中读取数据,则只能从 已经完全写入缓冲区的数据中读取,也就是说 我们只能从偏移量小于读指针的地方读取。
(7)PCM编码文件格式 (c) The DATA chunk is constructed l
ike this: Bytes 0 - 3 : 'd' 'a' 't' 'a' Bytes 4 - 7 : Length of data, in
bytes. Bytes 8 -...: Actual sample data..
the first 8 bytes of the RIFF descriptio n. (4 bytes for "WAVE" + 24 bytes for forma t chunk length +8 bytes for data chunk d escription + actual sample data size.) Bytes 8 - 11: 'W' 'A' 'V' 'E'
is always 16.
Bytes 8 - 9 : File padding. Always 1.
Βιβλιοθήκη Baidu
Bytes 10- 11: Number of channels. Either 1 f
or mono, or 2 for stereo.
Bytes 12- 15: Sample rate.
Bytes 16- 19: Number of bytes per second.
第二章 DirectSound录音技术
主讲人:孙细斌
主要内容
(1)音频数据采集的基础知识 (2) 用DriectSound开发音频数据采集 的步骤
2.1音频数据采集的基础知识
2.1音频数据采集的基础知识
(1)采样频率(sampling rate)是将模拟 声音波形转换为数字时,每秒钟所抽取 声波幅度样本的次数,单位是Hz(赫兹)。 (2)量化数据位数(也称量化级)是每 个采样点能够表示的数据范围,经常采 用的有8 位、12 位和16 位。
例如,8 位量化级表示每个采样点 可以表示256 个不同量化值,而16 位量 化级则可以表示65536 个不同的量化值
2.1音频数据采集的基础知识
(3)声道:记录声音时,如果每次生成一个 声道数据,称为单声道;每次生成两个 声波数据,称为立体声(双声道)
(4)PCM编码:也叫波形编码,实际为直接对 声音信号作A/D转换。只要采样频率足 够高,量化位数足够多,就能使解码后 恢复的声音信号有很高的质量。
Bytes 20- 21: Bytes per sample. 1 for 8 bit
mono, 2 for 8 bit stereo or
ereo.
16 bit mono, 4 for 16 bit st
Bytes 22- 23: Number of bits per sample.
2.1音频数据采集的基础知识
2.1音频数据采集的基础知识
(5)PCM编码文件格式 (a) The 12 byte RIFF chunk is constructe
d like this: Bytes 0 - 3 : 'R' 'I' 'F' 'F' Bytes 4 - 7 : Length of file, minus
2.2用DriectSound开发音频数据采集的
步骤
(4)创建录音缓冲区
private void CreateCaptureBuffer()
{
CaptureBufferDescription description = new C aptureBufferDescription();
description.Format = format;
description.BufferBytes = notifyCount * notif ySize;
captureBuffer = new CaptureBuffer(description, capture);