当前位置:文档之家› 基于数字语音教室的多路混音算法及应用

基于数字语音教室的多路混音算法及应用

基于数字语音教室的多路混音算法及应用Multi-Point Audio Mixing Algorithm Based on Digital Classroom for Language learning and Its Application(1.武汉理工大学;2.长沙理工大学;3衡阳师范学院)刘新华13,李方敏1,旷海兰23,张小麟1LIU Xinhua,LI Fangmin,KUANG Hailan, ZHANG Xiaolin摘 要:在研究音频混音技术的基础上,结合基于嵌入式技术的数字语音教室的实际情况,提出了一种应用于数字语音教室的多路实时混音算法,并给出了在数字语音教室中利用多路混音算法实现多人实时音频交互的方法。

关键词:数字语音教室;嵌入式技术;混音中图分类号: TP393 文献标识码: A【Abstract】By researching on audio mixing technology and combining the real situation of digital classroom for language learning based on embedded technology, this paper proposes a algorithm for multi-point real-time audio mixing and its real application in digital classroom for language learning to solve the multi-point real-time audio communication.【Keywords】Digital classroom for language learning; Embedded technology; Audio Mixer0引言随着多媒体语音数码技术、网络通信技术、实时嵌入式软件和硬件技术的进步,数字语音教室的技术日趋成熟。

由于其在语音教学应用上有着传统语音教室无可比拟的强大功能,而被现代教育系统推广。

数字语音教室是建立在网络数据交换的基础上,将经过A/D转换后的语音数据或音频的数据,通过标准的网络协议,传送到用户终端,网络及终端之间的消息传递,以符合标准网络协议的命令数据的形式反映,以达到语言学习的良好音质,满足教学方式多样性需求,充分合理的组建和利用教学资源的一种全新的语言学习系统。

作为现代化教学的手段,数字语音教室将逐渐取代传统的语音教室。

在数字语音教室中,学生终端是基于嵌入式技术,而教师机采用的是计算机多媒体技术,二者通过网络通信技术实现交互,在这种交互过程中,尤其是以学生终端与教师机之间的实时音频交流为主要内容。

在课堂教学中,当教师机进行广播讲话或广播音频时,学生端被动接受音频流;当教师端与学生终端进行一对一谈话时,由于双方均可收发音频流,在基于TCP/IP协议下,可以实现双工通信,但是如果将这种一对一谈话,向全班同学示范,即其他终端均能实时听见双方的谈话内容,就必须将双方的音频流进行混音,实时地广播给其他终端,特别是在一对多实时音频交流、小组实时音频讨论的情况下,需要进行更为复杂的混音处理,即多路混音处理。

因此,多路实时音频混音技术,是设计开发数字语音教室的一个关键技术。

本文从分析数字语音教室的体系结构出发,在考虑学生终端处理能力及网络通信负荷的情况下,对数字音频混音技术进行了研究,提出了一种应用于数字语音教室的多路实时音频混音算法并分析了数字语音教室中混音技术的实际应用。

1数字语音教室的体系结构传统型语言学习系统的结构设计主要就是以录音机机芯为主体,通过各厂家自行定义的相关线缆来进行连接与传输。

数字化系统的核心技术是基于计算机数据传输协议的网络技术,在实际应用中,我们设计开发的数字语音教室的体系结构如图1所示:学生终端基于嵌入式技术,支持TCP/IP网络协议,支持语音输入、输出处理,能够输入4个以上选择项,具有选择和执行菜单功能。

并具有以下外部接口:以太网网卡;电源接口;麦克风/耳机语音输入输出设备、显示屏(LCD)及键盘。

教师机采用普通的PC机,采用Windows系统,利用Visual C++编写的服务器程序来控制包括学习终端的整个系统。

根据实际要求可以为教师端配置磁带卡座、DVD播放器、投影仪、VCD机等外部辅助教学工具,这些均由教师机通过主板上的红外线端口来实现控制操作,并将相关数据传递给各学生终端。

整个系统通信采用TCP/IP协议,通过交换机配置普通的局域网,每个终端和服务器采用各自的IP地址来实现数据通信。

图1 数字语音教室结构图图 图2 混音前后音频波形表示2数字音频多路实时混音的原理在时域上,语音是短时平稳信号,对语音信号的处理是以语音样本缓冲区为基本单位,多个模拟音频源的混音,实际上是以样本缓冲区为基本单位的线性叠加。

事实上,多路数字语音的混音也是基于此原理,假设有n路基于相同采样率的输入音频流进行混音,X i(t)是t时刻的第i路输入语音的线性样本,则t时刻的混音值为:m(t)=∑X i(t),i = 0,1,……,n-1 ( 1 ) 显然,当按(1)式进行线性叠加时,必然涉及到混音后的音频流m(t)线性样本的取值范围问题,如果该样本值超过了输出设备所允许的最大范围,就会产生噪声(如图2 ),因此,必须对混音后得到的样本值进行平滑处理。

对于此类噪声的消除,基本的处理方法是:根据带噪声的音频信号幅度的平均值确定阈值,当信号幅度超过给定的阈值时,判定为脉冲噪声,然后对它进行适当的衰减。

在我们设计开发的数字语音教室中,为了满足教学的基本要求和良好的音质,音频采用采样频率为11025HZ,16位,双声道的数据格式,因此,采样值的范围是-232768~+32767 ,信号的正半周期用0~32767 表示,负半周期用 -232768~0 来表示,没有信号时,采样值为0 。

同时在平常的课堂教学中,参与教学示范或小组讨论的人数一般在2-5人,因此,我们在此基础上进行多路混音算法的设计。

假设有nTotal路基于同一采样率的音频源在某一时刻的数据存贮在缓冲的大小为nBufLen有nTotal个缓冲的lpArraySrcBuf[]缓冲组中,混音结果存贮在目标缓冲区lpDestBuf。

算法如下:void MultiAudioMixer( LPSAMPLE lpDestBuf, LPSAMPLE lpArraySrcBuf[], int nTotal, int nBufLen ){int n = 0;memcpy( lpDestBuf, lpArraySrcBuf[ n++ ], nBufLen );//将存贮在缓冲区的第一路音频数据拷贝到目标缓冲区int nTemp = 0; //定义一个临时变量while( n < nTotal ){short * pDest = ( short * )lpDestBuf;//定义一个指向目标缓冲区的指针short * pSrc = ( short * )lpArraySrcBuf[ n ];//定义一个指向音频源组中下一个将要处理的缓冲区的指针for( int i; i < nBufLen; i++ ){nTemp = pDest[ i ] + pSrc[ i ];//音频数据叠加//叠加后,采用箝位算法对音频数据作平滑处理if( nTemp > 32767 ) nTemp = 32767;if( nTemp < - 32768 ) nTemp = -32768;//将结果写入目标缓冲区相应位置pDest[ i ] = nTemp;}n++;}}采用上述算法可以实现多路音频源的混音。

实验表明,该算法实现的混音能较真实地反映实时多人的交互,并有效保留了原声音的同步性,在2-5路混音的情况下,效果比较理想,能满足数字语音教室的设计要求。

但是,在音频源逐渐增加( 大于5路)的情况下,由于各路音频源自身的背景音,混音后噪音未能得到有效抑制,该算法有待进一步改进。

3多路实时混音技术在数字语音教室中的应用在数字语音教室中,由于基于嵌入技术的学生终端的处理能力有限,因此在实现多人教学示范或小组讨论的功能时,实现多路音频处理的机制应尽可能在教师机端来完成。

在实际应用中,我们根据不同的教学功能,采取不同的混音实现机制。

下面以任意四台学生终端(A、B、C、D )与教师机(T)实时音频交互为例(如图3),分析所有混音在教师机(T)上处理从而实现与多台学生终端的实时音频交互。

图3 学生终端与教师机实时音频交互模型3.1示范教学中的混音机制示范教学是课堂教学中最重要的功能之一,它将教师与1个或多个学生的实时音频交流示范给其他同学,也就是教师在课堂上对某一个同学进行提问或对多个同学同时进行提问或让多个同学就某一问题发表见解并由教师评讲。

从技术上来说,实现这些功能就必须采用多路实时混音技术。

由图3可知,当教师机与四个学生终端进行实时音频示范教学时,采用如下混音机制:(1)T发出指令,指定A、B、C、D参与示范教学;A、B、C、D收到T发来的指令后,将自己的状态置为教学示范状态;(2)置为教学示范状态的A、B、C、D将实时采集的语音数据包发送给T;(3)T收到从A、B、C、D处发来的语音数据包后,作如下混音处理:将A、B、C、D四路语音数据混音后送给T回放,同时,分别给A发送T、B、C、D的四混音数据包,给B发送T、A、C、D的四路混音数据包,给C发送T、A、B、D的四路混音数据包,给D发送T、A、B、C的四路混音数据包,给其他的学生终端广播发送T、A、B、C、D五路混音数据包;(4)A、B、C、D和其他学生终端收到语音包后进行回放;(5)这个过程将不断重复,直到T发出终止教学示范指令,A、B、C、D恢复到正常课堂教学状态。

3.2小组讨论中的混音机制小组讨论也是课堂教学中常用的一种手段,与示范教学相比,小组讨论是学生自由分组或教师指定分组而进行相互交流的一种小组活动。

其实现机制如下:(1)T选择“自由分组”或“指定分组”来确定分组方式,假设ABCD被分为一组(其他组处理方式相同)如图3;T发送分组指令给A、B、C、D,收到指令后,A、B、C、D置自己为小组讨论状态;(2)置为小组讨论状态的A、B、C、D将实时采集的语音数据包发送给T;(3)T收到从A、B、C、D处发来的语音数据包后,作如下混音处理:分别给A发送B、C、D的三路混音数据包,给B发送A、C、D的三路混音数据包,给C发送A、B、D的三路混音数据包,给D发送A、B、C的三路混音数据包。

(4)T可以随时加入任何一个小组,该小组的混音机制类似于示范教学,只是不再向其他学生终端广播发送语音数据包。

相关主题