本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.

今天测试了speex中带回声消除模块,效果还可以。

测试环境:网络双工通话,16K采样16位编码,speex压缩以及解压.原来通话会听到线路另一端传过来的自己的声音,现在在程序中加入speex回声消除模块。

代码:

#include "speex/speex_echo.h"
......
......
#define SPEEX_FRAME_BYTE 640
SpeexEchoState *echo_state speex_echo_state_init(320,5000);
short Echo_Data[SPEEX_FRAME_BYTE / 2];//从网络上收到的语音包//读取声卡,将数据保存在input_frame0中
......
//回声消除
speex_echo_cancellation(echo_state,input_frame0,Echo_Data,input_frame);
//将回声消除后的数据input_frame通过网络发送
......

speex_echo_state_init(320,5000);这个函数中320为每一个数据包的帧数,5000即为尾音长度,这个参数的设置将影响回声消除模块的处理效果。如果在一个房间里,最好是发射时间的1/3.我现在的情况是通过网络传输,大概估算回声出现的时间是在说话后1秒左右的时间,1s的帧数是320 * 50 = 16000,1/3即5333帧,取5000帧写入函数。

speex回声消除功能测试相关推荐

  1. java speex回声消除_speex 回声消除的用法

    speex的回声消息 就是speex_echo_cancellation函数的正确用法 回声消息的原理: 对参考声音(解码的对端原始语音包)做延迟(会有多个延迟,如麦克风直接采集到音箱的声音,经墙壁反 ...

  2. Speex回声消除原理深度解析

    这里假设读者具有自适应滤波器的基础知识.Speex的AEC是以NLMS为基础,用MDF频域实现,最终推导出最优步长估计:残余回声与误差之比.最优步长等于残余回声方差与误差信号方差之比,这个结论可以记下 ...

  3. [投稿]Speex回声消除代码分析

    本文是音频处理的朋友icoolmedia(QQ:314138065)的投稿.对音频处理有兴趣的朋友可以通过下面的方式与他交流: 作者:icoolmedia  QQ:314138065  音视频算法讨论 ...

  4. Speex 回声消除

    为什么需要声学回声消除呢?在一般的VOIP软件或视频会议系统中,假设我们只有A和B两个人在通话,首先,A的声音传给B,B然后用喇叭放出来,而这时B的MIC呢则会采集到喇叭放出来的声音,然后传回给A,如 ...

  5. [投稿] Speex回声消除原理深度解析

    本文是音频处理的朋友icoolmedia(QQ:314138065)的投稿.对音频处理有兴趣的朋友可以通过下面的方式与他交流: 作者:icoolmedia  QQ:314138065  音视频算法讨论 ...

  6. Speex Acoustic Echo Cancellation (AEC) 回声消除模块的使用

    背景:回声与啸叫的产生  http://blog.csdn.net/u011202336/article/details/9238397 参考资料:  http://www.speex.org/doc ...

  7. Speex Acoustic Echo Cancellation (AEC) 回声消除模块的使用

    转自:http://blog.csdn.net/u011202336/article/details/9238699 背景:回声与啸叫的产生  http://blog.csdn.net/u011202 ...

  8. speex与webrtc回声消除小结

    回声消除AEC包含:   延时估计对齐+线性自适应滤波器+NLP(双讲检测.处理)+舒适噪声CNG 一.speex aec 1.没有NLP 2.只考虑实时DSP系统,即是没有延时对齐等 3.自适应滤波 ...

  9. 音频应用(如sip与Voip),编解码API(Ringtone,SoundPool,MediaPlayer),回声消除等(Lame Speex等),OpenSL ES

    3套音频播放API:MediaPlayer,SoundPool,AudioTrack. android录音项目,用单例模式集成了record,并实时转码mp3- https://github.com/ ...

最新文章

  1. NTU 课程: MAS714(3) DFS BFS(搜索算法)
  2. 成功解决raise XGBoostError(_LIB.XGBGetLastError()) xgboost.core.XGBoostError: b'[22:08:00] C:\\Users\\Ad
  3. java 肌汉模式_设计模式之原型模式详解(附源代码)
  4. nagios-3.4.3搭建
  5. Mac配置环境变量(Java,Android,Gradle,Maven,Hosts)
  6. VMware Workstation 14永久激活密钥
  7. po是什么意思java_PO/VO/DAO/BO/POJO是什么(JAVA 的解釋)
  8. 电脑win+R小知识
  9. raid缓存策略设置
  10. SHELL脚本下获取文件时间转换时间戳,使用时间戳计算日期差
  11. Echarts柱状图上加图标
  12. 充电桩检测设备TK4860E交流充电桩检定装置
  13. 华中师范大学计算机学院学分绩,华中师范大学学生学业成绩表(模板)
  14. 谈谈科研论文的追踪、管理和阅读
  15. CSS之iconfont导入方式
  16. 笔记本电脑锁屏密码能输入,但解锁后键盘不好用
  17. 超小型迷你BT客户端-uTorrent(附安装教程)
  18. Snap在2019年第三季度的每日活跃用户数有所增长,但其股价下跌5%
  19. (附源码)php校园二手交易网站 附源码041148
  20. Hex文件和bin文件以及flash大小关系

热门文章

  1. Http管理状态:Cooki与Session
  2. 高清电视HDTV概述(2)
  3. 【MySQL】分区表的使用
  4. 2023年的六一儿童节,愿我们永远热泪盈眶,永远保持童心,致我们终将逝去的青春!
  5. java中题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
  6. 3D数学基础-三角函数
  7. 后羿:我射箭了快上—用MotionLayout实现王者荣耀团战
  8. Selenium与浏览器驱动安装测试
  9. Unity--Vector3的使用
  10. 可视化工具BI(superset,redash)