论文部分内容阅读
对讲机是一种便携式无线半双工语音通信设备,被广泛应用于生产生活中。但是对讲机是一种半双工通信系统,使用对讲机进行发言时需要按下发送按钮。但是,在进行野外工作时,会发生工作人员双手正在完成工作而无法按下发送按钮机进行发言的情况。基于有线网络的语音会议系统是一种能够进行多方全双工语音通信的系统,但是存在设备便携性差和需要有线网络连接的缺点。为满足野外工作环境下进行语音通信的需求,需要一种便携式无线语音会议系统。本文提出了一种基于ad-hoc网络的便携式无线语音会议系统设计方案。系统由多个对等节点通过ad-hoc网络连接而成。节点基于嵌入式系统实现以减小系统体积,硬件平台选用ARM处理器S5PV210,软件平台选用嵌入式Linux。软件系统按功能的不同被分为3个模块:网络协议模块、语音传输模块、按键输入模块。网络协议模块实现了自行设计的ABP(Ad-hoc Bootstrap Protocol)协议,解决了ad-hoc网络中的IP地址分配问题,还实现了节点上线通知、在线通知和下线探测功能;语音传输模块实现了语音数据的采集、发送、接收和回放。语音信号在经过麦克风采集后进行量化,然后进入编码器进行编码,编码后的数据通过UDP组播在IP网络中传输,收到数据节点将数据解码后与来自其它节点的数据混音,然后通过耳机回放;键输入模块读取按键输入并传给其它模块。本文采用多进程模型、使用函数库对各个模块进行了实现,并采用UNIX domain socket作为进程间通信设施实现进程间通信。网络协议模块基于事件循环的高性能网络编程库libuv实现,网络协议中的所有通信均使用UDP广播进行。语音传输模块使用功能强大的流媒体库mediastreamer库实现。语音编码选择了编码质量较高的speex编码器。为了取得更好效果,使用了speex编码器的回声消除、语音活动性检测、丢包补偿功能。本文在E8开发板上对系统进行了初步测试。测试结果表明系统能够实现多对多全双工无线语音通信,通信距离可达120m,可进行3点语音会议,语音总体清晰流畅。