本项目是北京理工大学人工智能&未来精工技术的大三小学期成果。整个代码,除了涉及opencv的部分均可在windows,linux上几乎完美地运行。视频通话部分只在windows上成功测试过。
-
设备需要有摄像头与摄像头驱动,如果你不用人脸识别&视频通话,那无所谓。
-
有关Pyside和whisper,请参考官方在github上的安装流程
-
由于PyAudio库较为古老,直接pip install可能报错
请尝试
sudo apt-get install portaudio19-dev sudo apt-get install python3-all-dev pip install pyaudio
-
受限于设备,我们没有测试linux端的视频通话。以下是linux系统可以尝试一下的,不保证成功
首先安装gtk2.0-dev与pkg-config以进行视频通话(cv.destroyallwindows的报错)
解决opencv与pyside的plugin冲突导致的报错
pip install opencv-python-headless
-
请参考
requirements.txt
完成余下的配置
受限于当时的水平与时间,我对于代码结构是不太满意的:有更多代码可以复用,在封装上也可以做得更加优雅。越往后,越为了实现功能而不断向屎山靠拢。起初我们是对标着微信来设计的,不过受限于实力和时间,对一些功能做了阉割。请务必注意有一些地方我们的代码处理还不够完善(比如文件收发:当文件没有发送完毕,接收会bug),希望后来者能够补足。除此之外,有几个重要的缺陷是我必须交代的:
- 并行的线程管理:几乎没有去管这方面,属于是摆了
- socket管理:几乎没有去管这方面,属于是摆了
- 数据安全性:几乎没有去管这方面,属于是摆了
- whisper在不同设备上表现差异较大,没理解
还有一些琐碎的问题,包括但不限于
- 发送&接收的文件重名处理
- 有反映用户id难记,想换个方式登录的
- 人脸识别效果很差,没实装
- 发送的如果是图片,直接显示为图片而不是文件
- 头像动态刷新(现在是退出登录之后才会刷新)
- 语音识别目前是固定录制5秒,没来得及做自由控制时间的
- 我觉得UI做的不够好看,
虽然Qt负责者TT2TER很满意 - 消息框滚动位置的小细节
- 其它问题
- @TTRTER于2023年12月30日凌晨1.40分想起:本项目没有单用户多设备的同步功能
by PM @FluppyFR 2023.9.6