一、前言 随着通信技术的进步,利用网络进行语音通信已经日趋成熟和普及。网络的语音通信通信成本低廉,又具有较高的通信质量,在很多场景下,已经替代了传统的语音通信手段。目前,软件市场上的网络语音通信的软件种类繁多,不同的语音通信软件往往针对不同的应用场景设计,有的针对陌生人之间的通信场景,有的应用于熟人交际圈,有的基于学术讨论等。
本文深入分析了现有语音通信软件的特点,目标是设计一款基于 Java 的校园语音通信软件,为学校教师和职工提供适用、稳定的语音通信服务。并针对校园语音通信这一应用场景,专门为校园活动、管理而设计,具有如下特点:
- 满足教职工日常办公语音通信的需要。
- 针对校园大型师生活动时的高噪声环境,本文的语音通信软件有较强的抗噪声能力,满足组织人员之间语音通信的需要。
- 针对校园语音信息发布、校园应急指挥的需求,能够结合学校广播系统,提供分区域语音信息发布,分区域喊话的功能。
二、项目简介 本文在分析了校园语音通信这一场景下需求的基础上,采用 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 协议框架下的语音通信。
三、项目源码 【java|Java校园语音通信软件开发】https://download.csdn.net/download/weixin_47367099/85127184
推荐阅读
- 计算机专业|计算机毕业设计项目推荐(源码+论文+PPT)
- #|JAVA--速度计算
- java|SpringCloud+MySQL+Vue实现人脸识别智能考勤管理系统
- java|java GC常见面试题
- java|大学想要学习JAVA,发展前景如何,该从哪里开始()
- java开发|你觉得学 Python 还是 Java 更好找工作(2022最新分析指南。)
- Java/Android中的优先级任务队列的实践
- Ubuntu 18及以上版本配置 IP 的方法,你 get 了吗()
- Spring Security实现基于RBAC的权限表达式动态访问控制