随着计算机技术的发展,特别是海量存储设备和大容量内存在PC机上的实现,对音频媒体进行数字化处理便成为可能。数字化处理的核心是对音频信息的采样,通过对采集到的样本进行加工,达成各种效果,这是对音频媒体数字化处理的基本含义。
基本的音频数字化处理包括以下几种。
1、不同采样率、频率、通道数之间的变换和转换。其中变换只是将其视为另外一种格式,而转换通过重新采样来进行,其中还可以根据需要采用插值算法以补偿失真。
2、针对音频数据本身进行的各种变换,如淡入、淡出、音量调节等。
3、通过数字滤波算法进行的变换,如高通、低通滤波器。
但是最基本、最常用的还是声音的录制和播放。作为一个语音传输软件,声音的录制、保存、传输和播放都是必不可少的,也是最重要的一环。本软件需要语音输入、输出功能。这些技术的实现借助了Windows系统提供的底层音频API。
MIDI的意思是乐器数字接口(Musical Instrument Digital Interface),它在微软公司开发Windows系统以前就有的一个用于电子键盘的标准。MIDI定义了一个传输和存储音乐信息的协议。它在多媒体音频中占有重要的位置,是播放和录制音乐的国际标准,它确定了连接音乐设备的电缆线、硬件和通信协议。
下边将介绍程序的具体实现。
对于录入和播放的声音存储时必须以特定的格式才可以,本软件的格式定义如下:
m_soundFormat.wFormatTag=WAVE_FORMAT_PCM;
m_soundFormat.nChannels=1;
m_soundFormat.nSamplesPerSec=8000;
m_soundFormat.nAvgBytesPerSec=16000;
m_soundFormat.nBlockAlign=2;
m_soundFormat.cbSize=0;
m_soundFormat.wBitsPerSample=16;
只定义了声音的格式是不够的,要实现声音的存储还得对数据块进行定义,数据块的定义采用如下结构描述:
m_pWaveHdrIn[0].lpData=m_cBufferIn;
m_pWaveHdrIn[0].dwBufferLength=MAX_BUFFER_SIZE;
m_pWaveHdrIn[0].dwBytesRecorded=0;
m_pWaveHdrIn[0].dwFlags=0;
为了能够进行录制和播放,还需要利用低级音频函数——wave系列函数。对于播放过程,需要利用waveOutPrepareHeader函数准备缓冲数据头信息,然后调用函数waveOutWrite将音频数据缓冲区中的数据写到播放设备中去进行播放。对于录制过程,需要先调用waveInPrepareHeader进行接收数据缓冲区的准备工作,然后调用waveInAddBuffer函数添加录制数据缓冲区,最后调用函数waveInStart进行录制。下边将列出这些函数在源程序中的应用
..............................................
以上是一部分介绍,如需要完整的资料或者如不符合您的要求,请联系技术人员qq:242219979咨询
上一篇:vc++并行接口器件功能演示
下一篇:vc++多种排序算法动态演示软件