1.speex_echo回音消除案例

#ifdef HAVE_CONFIG_H
#include "config.h"
#endif#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include "../../include/speex/speex_echo.h"
#include "../../include/speex/speex_preprocess.h"#define NN 128
#define TAIL 1024int main(int argc, char **argv)
{FILE *echo_fd, *ref_fd, *e_fd;short echo_buf[NN], ref_buf[NN], e_buf[NN];SpeexEchoState *st;SpeexPreprocessState *den;int sampleRate = 8000;echo_fd = fopen("./pcm/speaker.pcm", "rb");ref_fd = fopen("./pcm/micin.pcm", "rb");e_fd = fopen("./pcm/out.pcm", "wb");if (echo_fd == NULL && ref_fd == NULL){printf("read file err\n");}st = speex_echo_state_init(NN, TAIL);den = speex_preprocess_state_init(NN, sampleRate);speex_echo_ctl(st, SPEEX_ECHO_SET_SAMPLING_RATE, &sampleRate);speex_preprocess_ctl(den, SPEEX_PREPROCESS_SET_ECHO_STATE, st);while (!feof(ref_fd) && !feof(echo_fd)){fread(ref_buf, sizeof(short), NN, ref_fd);fread(echo_buf, sizeof(short), NN, echo_fd);speex_echo_cancellation(st, ref_buf, echo_buf, e_buf);speex_preprocess_run(den, e_buf);fwrite(e_buf, sizeof(short), NN, e_fd);}speex_echo_state_destroy(st);speex_preprocess_state_destroy(den);fclose(e_fd);fclose(echo_fd);fclose(ref_fd);return 0;
}

1.效果图

2.注意事项

1.播放线程和采集线程 `要尽可能的实时同步`。(绝对同步是很难做不到的,因为操作os本身就是分时系统,线程之间存在调度切换)。
2.如果不同步,speex的回声消除算法无法快速收敛,就无法消除回声。

echo回音消除方案相关推荐

  1. Acoustic Echo Cancellation (AEC) 回音消除技术探索

    回声产生的原因: 本地产生的音频信息通过网络传输到远端, 远端音频信号通过反射再由远端麦克采集到远端系统,再通过IP网络传输本地,本地播放后,在由本地麦克采集到,这就构成了类似闭环正反馈,当延时较小时 ...

  2. python 回声程序_一种回声消除系统及回音消除方法与流程

    本发明涉及通信技术领域,具体涉及一种回声消除系统及回音消除方法. 背景技术: 回声消除器通常由滤波器和算法组成,根据具体应用和性能要求的不同可以有多种选择. 滤波器有FIR(有限长度冲激晌应)滤波器和 ...

  3. android speex AEC 回音消除

    android speex AEC 回音消除. 有时候喇叭声音会被mic录制进去,就会产生回音数据,这是非常让人头疼的,所以去回音在音视频应用中非常重要. 现在主流的回音消除手段有android自带a ...

  4. 实时语音通讯的回音消除技术详解

    本文是一篇详细介绍实时音频通讯过程中的回音消除技术的文章,主要描述的是回音消除技术理论和算法原理等. 内容概述 笔者从2004年开始接触回音消除(Echo Cancellation)技术,而后一直在某 ...

  5. 论android等平台回音消除解决方案

    来源 http://www.qttaudio.com/android-aec.html 回声消除介绍 http://www.baike.com/wiki/%E5%9B%9E%E9%9F%B3%E6%B ...

  6. 回音消除原理解析及Android应用

    标签(空格分隔): Android Echo-Cancellation 什么是回音 回音分为两种: 声学回音(Acoustic Echo) 线路回音(Line Echo) 目前我们只讨论声学回音:声学 ...

  7. 音频回音消除算法(一)--在语音对讲系统中的应用

    最近接触到了一个项目,是某小区物业的门禁管理系统,其中需要用到语音对讲功能,由于调试过程比较复杂,跟常规的回音消除处理上也有写差别,简单说明下,系统应用组网图如下: 门口机是我们本次要处理的设备,室内 ...

  8. 【iOS】iOS语音通话回音消除(AEC)技术实现

    一.前言 在语音聊天.语音通话.互动直播.语音转文字类应用或者游戏中,需要采集用户的麦克风音频数据,然后将音频数据发送给其它终端或者语音识别服务.如果直接使用采集的麦克风数据,就会存在回音问题.所谓回 ...

  9. 即时通讯音视频开发(十):实时语音通讯的回音消除技术详解

    前言 即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙.原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的.有关实时 ...

最新文章

  1. 如何读取多个文件,文件后缀名不一致,不过类似source.1 source.2 source.3等
  2. .NET 关于Geometry转GeoJson
  3. 7月30日 举办专注于微服务的.NET Conf Focus
  4. LeetCode 820. 单词的压缩编码(后缀树)
  5. 可以接收数量不定的参数的函数
  6. 延迟上班别发愁,远程办公抗疫情!
  7. java 中文 转义_java html中文汉字 反转义
  8. linux go环境安装
  9. java实现二分查找
  10. 数学画图软件_关于数学建模(或科研绘图)的画图学习建议
  11. python cryptography key加密_python加密解密库cryptography使用openSSL生成的密匙加密解密...
  12. 8年测开经验面试28K公司后,吐血整理出1000道高频面试题和答案
  13. 免费在线图片识别文字工具
  14. [转]Cisco小失误,大麻烦
  15. python:利用DouYin的API爬取热门视频和音乐
  16. Java 专项练习【1 - 10】,突围金三银四面试季
  17. 只能存储12KB数据,“码农女神”是怎样把人类送上月球的?
  18. 【案例】全国知名网上书城——基于企业中台构建智慧悦读体验
  19. SSD固态硬盘能否恢复--争议
  20. vs2019 installer Projects 【打包程序 下载地址】

热门文章

  1. lammps计算聚合物例子_MD原理与Lammps实例.ppt
  2. 最新大学英语四级词汇表 A
  3. display:weston:weston-simple-egl
  4. 说说如何在项目中引入 jBPM4 工作流框架以及遇到的坑儿
  5. 基于MFC的OpenDDS发布订阅例子(PubSubDemo)
  6. error LNK2019: 无法解析的外部符号 __imp_DeleteObject
  7. Ubuntu开机启动黑屏,只有鼠标
  8. WIFI 国家码和信道划分
  9. 加权平均资本成本【读书笔记】
  10. 【Python】【教程】Python 教程