论文部分内容阅读
随着IP技术和无线网络技术的快速发展,VoIP系统在得到迅猛发展的同时获得了极大普及。它的出现不仅降低了人们之间通讯的资费,丰富了通讯的形式,而且还提高了人们的生活质量。同时,Android系统自Google公司推出以来,一直是各大厂商移动设备中的主流系统,在人群中有着巨大的使用量。 本文设计了一个基于Android的VoIP系统,选择带有Android系统的移动设备作为开发平台同时采用Speex标准和H.264标准分别对音频和视频数据进行压缩处理。本文设计的系统除了能够实现传统 VoIP系统的音频通话功能外还实现了体验更丰富的视频通话功能。本文完成的内容主要如下: (1)介绍了Android程序开发所需的相关技术并分析本软件开发的重点和难点。根据功能需求设计了系统的总体框架,具体实现了音视频采集播放模块、数据编解码模块、音视频同步模块、音视频质量优化模块以及数据通信模块。 (2)通过对开源库Mjsip和jLibrtp的移植分别实现了系统中SIP信令的交互和音视频数据的RTP传输。针对Java语言实现算法效率低的问题,本文结合Android NDK技术和Java JNI技术把由C语言实现的算法移植到Android项目中,提高程序算法运行的效率。 (3)为了解决语音回声问题,本文采用声学回声消除器实现语音回声的消除。同时本文对声学回声消除器中的NLMS自适应滤波算法和双端通话检测算法进行了研究和改进。改进后的NLMS自适应滤波算法在保持快速收敛的前提下有更高的算法精度。双端通话检测算法在保证准确检测通话状态的前提下有更好的自适应滤波器的收敛性能。 (4)本文在数据接收端设计了一套接收缓存机制。通过对收到的RTP数据包排序以及丢包处理,提高了音视频的播放质量。 本文最后对系统进行测试。结果表明整个系统的业务流程运行正常,能完成实时的语音通信和视频通信功能,达到了预期效果。