毕业设计网
asp类 | PHP | asp.net|C# | JSP,JAVA | VB | VC++ | android,安卓 | 课程设计 |

VC++的语音传输系统

随着计算机技术的发展,特别是海量存储设备和大容量内存在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:58850198咨询

上一篇:vc++并行接口器件功能演示
下一篇:vc++多种排序算法动态演示软件


版权所有 毕业设计网联系qq:58850198 © 2007-2021