<开源> 基于Android的SIP电话-----Speex 回音消除 在android 平台
来源:互联网 发布:ak74知乎 编辑:程序博客网 时间:2024/05/17 02:31
我的毕业论文题目是: 基于Android的移动VoIP高清视频通话系统的设计与实现
可以去CNKI下载察看,希望对大家有帮助搞了将近一个月的时间,将Speex的编码和解码做好了,发现还不错。
参考API,又尝试了回音消除,发现最新版还提供了用于在多线程中的playback()和capture(),有了这两个函数,就可以避免在线程中不能同步的问题。
结果,发现虽然进行了回音有了部分消除,但是,还是会一点啸叫以及回声,想来还是要做一点处理,譬如去噪,减小播放或者来音的增益。
在使用了speex提供的 preprocessor 函数后 ,原以为会更好的消除噪声,可视发现也没什么变化,反而可能会更弱,这是为什么
Update:5//12
在使用了Speex回声消除之后,以及添加了预处理的一些Api,并且优化了程序的结构,例如在接收数据然后用来播放的过程中,使用了Ringbuffer来保证数据包处理质量。
最后的结果:
1两个手机都打开扬声器 且放到最大,在不同的房间里,能够听到一声回声,即喂……喂
2两个手机不开扬声器,正常通话音量,在不同的房间里,没有回声。
因为最近比较忙,在做android上,Sip的实现内容,所以没时间贴出具体的语音处理传送项目的实现原理和步骤,等过段时间一定补上,如果有疑问,我也尽量回答
Update: 3/11
看了这篇文章:http://blog.csdn.net/zblue78/article/details/5841357 ,发现我的参数设置错误了
前几天,试了一下,把预处理里面的几个语音预处理功能都打开了,譬如去噪,VAD,结果发现确实效果不错,在没有人音的时候,确实噪声被去掉了,不过,
以前没有延时,因为加了很多处理,所以增加了开销,所以有了500ms的延时(或许吧)。 回音还是会有一点,可能还是参数设置和同步队列的问题。期待解决
Update: 12/8/2012
很多朋友加我QQ询问是否可以提供SPEEX回音消除的代码或者如何使用回音消除,很抱歉,最近由于在写论文,因此没有时间回答各位的问题,等我将论文搞定,会把相关的设计思路与使用方法公布于网上,以供大家学习与交流,如果有问题,希望以邮件给来信,将问题写清楚,我会认真回复的
UPDATE: 3/8/2013
因为毕设已经完成,论文也送审了,所以,实现诺言,将我的代码共享。共享的项目为SIP电话,包含JSIP协议栈、语音编码库(G.711、G.722、Speex),语音处理(Speex)。代码仅做测试与研究所用,如果有疑问,欢迎大家一起讨论
“本着越是容易得到越不珍惜的道理,我不直接放地址了,请你们留言留下邮箱,或者致信给我”
https://code.google.com/p/jay-
使用方法:首先点击init按钮,负责初始化SIP,接着可以注册SIP账户,选择呼叫对方用户,当对方接通,然后就可以打开MediaService,调用语音服务,进行语音通信
UPDATE:5/13/2013
最近受到了很多同学和朋友对本项目的关注,项目本身也是基于各个开源项目,本人才疏学浅,在实现过程中,难免有很多疏漏,对于本项目在所有的机型上面也未做过测试,仅在MOTO XT910上实现,局域网下可实时通话,对于回音也有了一定消除,现在收集到了一些问题,供大家参考,如果有答案,希望能够提供,本项目将于下月再次开放地址。
问题1 : 时延问题
问题2 :长时间通话断开 : linklist 非线程安全,建议使用ConcurrentLinkedQueue 。感谢Shawn4com的提出
问题3: 断续(choppy)
问题4: 当屏幕关闭,则问题3消失
如果您觉得我的工作对您有帮助,支持我的开源分享,请为我留言或捐助(1元也是支持)
- <开源> 基于Android的SIP电话-----Speex 回音消除 在android 平台
- Speex 回音消除 在android 平台上 初见成效
- Speex 回音消除 在android 平台上 初见成效
- Android上用speex做回音消除
- Android上用speex做回音消除
- Android上用speex做回音消除
- 论android等平台回音消除解决方案
- 深度研究speex的回音消除技术
- speex回音消除
- speex回音消除
- Android 平台语音通话及回音消除、噪音消除研究
- Android移植Speex回声消除
- 回音消除原理解析及Android应用
- 基于Speex的声学回声消除
- 基于Speex的声学回声消除
- android上的sip软电话
- android上的sip软电话
- speex编码在android的实现
- QeePHP controller.php文件内容
- Win32汇编环境配置
- python调试
- 黑客以分享林书豪为名进行目标攻击
- 区别:String类与string变量、堆与栈
- <开源> 基于Android的SIP电话-----Speex 回音消除 在android 平台
- Hive执行流程分析
- 一剂尽除之MYSQL 双向主主同步
- 提高你的数据库编程效率:Microsoft CLR Via Sql Server
- 如何查看手机系统版本
- 调用系统函数向进程发信号core
- Dojo 1.7 Release Notes翻译完成,包含若干重大更新
- PROCEDURE can't return a result set in the given context
- 系统分析师考试论文范例(三)---通信行业的应用