speex回声消除功能测试_合法化vvv的博客-程序员宅基地

               

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

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

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

代码:

#include "speex/speex_echo.h"............#define SPEEX_FRAME_BYTE 640SpeexEchoState *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帧写入函数。


           
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_44949768/article/details/89708265

智能推荐

python单例模式原理-Python实现单例模式_weixin_39699070的博客-程序员宅基地

定义An implementation of the singleton pattern must:ensure that only one instance of the singleton class ever exists; andprovide global access to that instance.单例模式就是保证类在整个使用过程中有且只有一个实例.Python原理要想保证类的使用...

angular?!小白修仙之路……_itest_2016的博客-程序员宅基地

带小白一步步修仙之angular4实践总结,请收下膝盖!

hadoop hdfs格式化_可可爱爱还有个大脑袋的博客-程序员宅基地_hdfs 格式化

@HADOOP 安装小问题HADOOP因为版本的名称不同,在usr/java下文件名为java1.8.0_271-amd64而在之前hadoop配置时写的java-home是java1.8.0_271为了方便,这里采用了改文件夹的名称改名称mv java1.8.0_271-amd64 java1.8.0_271配置hdfs和hdfs的格式化JAVA_HOME=/usr/java/jdk1.8.0_271HADOOP_HOME=/usr/local/hadoop-2.7.7PATH=PAT

MAVROS+MAVLINKan安装小记_I_am_No3的博客-程序员宅基地

我真的好绝望啊。自己安装的Ros版本是最新的Lunar,要不是师兄好,我就被自己蠢哭了。开始想源码安装,在后面这个网页看了一天:https://github.com/mavlink/mavros/tree/master/mavros后来发现了一个神奇的网站http://packages.ros.org/ros-shadow-fixed/ubuntu/pool/main/r/里面有各种版

最大子段和问题——详解(C++)_越前浩波的博客-程序员宅基地_c++最大子段和

最大子段和或称为最大部分和(maximum subtotal)问题,以下简称MS。MS:给定一类特定的数据类型的序列:[x1,x2,x3,x4,x5,x6],从该序列截取一段连续的子序列,如果这个子序列和满足整个序列的任意序列的最大值,我们称之为最大子段和。 Sample:sequence:{6, -3, -4, 7, -1, 5, -3, -4, 8, -2}; subSequen...

linux磁盘挂载与卸载_阿文_ing的博客-程序员宅基地_linux删除挂载磁盘

前言Linux下每个文件系统都有独立的inode,block,super block等信息,这个文件系统要挂载到目录树下在可以使用,将文件系统与目录树结合的操作称作挂载,反之则为卸载。也就是说,挂载一定是目录,二目录是进入磁盘分区(也就是文件系统)的入口挂载时注意事项1.单一文件系统不应该重复挂载到不同的挂载点(目录)中2.单一目录不应该重复挂载多个文件系统3.作为挂载点的目录理论上应该是空目录磁盘分区1.查看已有分区sudo fdisk -l2.分区sudo fdisk /dev/sdb1

随便推点

使用pip install mysqlclient命令安装mysqlclient失败?(基于Python)_aijiaoq44231的博客-程序员宅基地

我们使用Django、flask等来操作MySQL,实际上底层还是通过Python来操作的。因此我们想要用Django来操作MySQL,首先还是需要安装一个驱动程序。在Python3中,驱动程序有多种选择。比如有pymysql以及mysqlclient等。 常见的Mysql驱动介绍:MySQL-python:也就是MySQLdb。是对C语言操作MySQL数据库的一个简单封装。遵循了P...

c语言如何把库放到obj文件,c语言读取obj文件转换数据的小例子_奥肯的博客-程序员宅基地

// hello.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "stdio.h"int _tmain(int argc, _TCHAR* argv[]){FILE *file1,*file2;file1=fopen("047facesmall.obj","r"); /...

企业级静态代码分析工具清单_Bypass--的博客-程序员宅基地

如果要选择一款企业级静态源代码安全扫描工具,那么Gartner 2021应用程序安全测试 (AST) 魔力象限,就可以给我们在产品选型提供很重要的参考。本文整理的是一份商业静态源代码分析工...

走进地理信息可视化_玄魂的博客-程序员宅基地

关注「豆皮范儿」,文末有福利惊喜️豆皮粉们,又见面了,这一期,????由来自字节跳动数据平台的“Kakashi” 带宝宝们了解“地理信息可视化”相关的芝士????。导读:本文先将介绍地...

django的QuerySet 的属性_lm_y的博客-程序员宅基地_django queryset 长度

QuerySet 可以被构造,过滤,切片,做为参数传递,这些行为都不会对数据库进行操作。只要你查询的时候才真正的操作数据库。下面的 QuerySet 行为会导致执行查询的操作:循环(Iteration):QuerySet 是可迭代的,在你遍历对象时就会执行数据库操作。例如,打印出所有博文的大标题:12for e in 

TI XDC工具入门简介_cfistalent的博客-程序员宅基地

1.XDC(Express DSP Component)是TI提供的一个命令行工具,它可以生成并使用实时软件组件包。 2.以上两图说明了XDC的工作方式:通过相关文件设定操作指令,读入源码、库文件以及已经存在的组件包最终生成可执行文件。3.Package------XDC工作的基本单元。包括有:源码、库文件以及元数据;元数据这包含有该包的版本信息和依赖信息,以及模块(Mod

推荐文章

热门文章

相关标签