Java校园语音通信软件开发

一、前言

随着通信技术的进步,利用网络进行语音通信已经日趋成熟和普及。网络的语音通信通信成本低廉,又具有较高的通信质量,在很多场景下,已经替代了传统的语音通信手段。目前,软件市场上的网络语音通信的软件种类繁多,不同的语音通信软件往往针对不同的应用场景设计,有的针对陌生人之间的通信场景,有的应用于熟人交际圈,有的基于学术讨论等。

本文深入分析了现有语音通信软件的特点,目标是设计一款基于 Java 的校园语音通信软件,为学校教师和职工提供适用、稳定的语音通信服务。并针对校园语音通信这一应用场景,专门为校园活动、管理而设计,具有如下特点:

  1. 满足教职工日常办公语音通信的需要。
  2. 针对校园大型师生活动时的高噪声环境,本文的语音通信软件有较强的抗噪声能力,满足组织人员之间语音通信的需要。
  3. 针对校园语音信息发布、校园应急指挥的需求,能够结合学校广播系统,提供分区域语音信息发布,分区域喊话的功能。

本文对本项目的研究背景与意义进行了详细分析,同时介绍了本软件所涉及到或直接适用的相关技术及理论,包括 Java 语言、Android 平台、语音采集和输出技术、噪声与回音消除、编码方式、服务器技术等。绘制了用例图帮助分析软件需求,使用用例表描述了系统的需求。从系统架构、语音通信实现方案、编解码方案、降噪方案、数据库架构、UI 等方面来逐渐形成系统的整体设计。并进一步细化设计,实现系统设计要求。之后,本文总结了项目完成后的优势和不足,针对不足之处提出了修改方法。同时,通过分析提出了本软件可改进和发展的方向。

二、项目简介

本文在分析了校园语音通信这一场景下需求的基础上,采用 C/S(客户端/服务器)的软件架构,搭建即时通讯服务器,基于面对对象的 Java 编程语言,在 Android 操作系统上设计实现一个校园语音通信软件系统。

从功能需求和非功能需求两个方面,对软件系统进行需求分析。在功能需求分析中,以教职工日常办公、校园活动组织者、广播播报者三类用户作为分析对象,绘制了用例图,进行了用例描述。在非功能需求分析中,从语音质量、运行环境等方面进行了分析。

根据需求分析,对软件系统的主要模块进行了设计。进行了系统架构设计、及系统功能设计、语音通信方案设计、编解码、降噪方案设计、数据库设计、界面设计,完成了对软件所使用的技术实现方案的设计。

在系统的整体架构设计上,根据软件的需求可知,P2P 通信方式难以满足软件通信的需要,选择采用一般通讯系统常用的 C/S 架构。

在服务器方面,选择 XMPP 协议作为软件的主要通信协议。在 Windows Server操作系统上安装和配置了开源的 Openfire 服务器,作为 XMPP 协议服务器。为了3方面数据操作,安装和配置了 MySQL 数据库,并将数据库与 Openfire 服务器成功连接。

使用 Java 语言在 Android 平台上开发客户端软件。在开发中,使用 AndroidStudio  Android SDK 作为基本的集成开发环境,使用 smack 库作为客户端的XMPP 实现库。通过 Smack 库完成了用户登录、一对一文本通信、群组文本通信等即时通讯的基本功能。客户端设计可以有不同的登录形态,可以安装于嵌入式安卓平台,使得使得本软件系统能够方便的连接校园广播,实现语音广播与播放控制。在编解码、降噪方面,首先研究了常用的语音降噪和编码方法,选择使用较为有效的 CELP 算法进行编码,STSA-MMSE 算法进行降噪、语音增强。选择了Speex 库作为语音降噪和编码的实现库,实现了对语音的录制、降噪、编码和解码。

克服了 XMPP 协议不直接支持语音通信的困难,使用数据封装的办法,将语音文件封为 XMPP 协议支持的 XML 数据。实现了 Openfire 服务器、XMPP 协议框架下的语音通信。

三、项目源码

https://download.csdn.net/download/weixin_47367099/85127184

猜你喜欢

转载自blog.csdn.net/qq_41701956/article/details/124167300