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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

Multi-Point Audio Mixing Algorithm Based on Digital Classroom for Language learning and Its Application

(1.武汉理工大学;2.长沙理工大学;3衡阳师范学院)刘新华13,李方敏1,旷海兰23,张小麟1

LIU 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 Mixer

0引言

随着多媒体语音数码技术、网络通信技术、实时嵌入式软件和硬件技术的进步,数字语音教室的技术日趋成熟。由于其在语音教学应用上有着传统语音教室无可比拟的强大功能,而被现代教育系统推广。数字语音教室是建立在网络数据交换的基础上,将经过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 ];//定义一个指向音频源组中下一个将要

相关文档
最新文档