首页 > 其他分享 >webrtc 低通滤波器

webrtc 低通滤波器

时间:2023-11-07 11:26:53浏览次数:37  
标签:0.0 double pBuff 低通滤波器 output prev webrtc

 

#include "low_pass_filter.h"

 

 

    double prev_output= 0.0;
    double prev_input = 0.0;

 

 

//去噪
WebRtcNsx_Process(webrtc_nsx, &g_aecmAudio, 1,&g_ns);

if(WebRtcAgc_Process(webrtc_agc,&g_ns , 1, 160, &pBuff, in_mic_level, &out_mic_level, echo, &saturation_warning) != 0)
LOGE("WebRtcAgc_Process fail\n");

//LOGE("fd =%d nPackSize=%d",fd3,write(fd3,(char*)pBuff,160));
// if (fp1 != NULL)
//fwrite(g_ns, sizeof(short), nLen, fp1);
short low_pass_buff[160] = {0};
//double prev_output;
prev_output = 0.0;


double cutoff_freq = 2000.0; // 2 kHz
double sample_rate = 16000.0;
for (int i = 0; i < nLen; ++i) {
double tmp = filter(pBuff[i], prev_output, prev_input, cutoff_freq,
sample_rate);
low_pass_buff[i] = (tmp);
prev_output = tmp;
prev_input = pBuff[i];
}
// 音频压缩
int nEncLen = g_speex.Encoder(pBuff,m_speexEncBuf);

 

标签:0.0,double,pBuff,低通滤波器,output,prev,webrtc
From: https://www.cnblogs.com/baldermurphy/p/17814606.html

相关文章

  • mac os 编译webrtc 报错screen_capturer_mac.mm:500:5: error: 'CGDisplayStreamStop'
    ../../modules/desktop_capture/mac/screen_capturer_mac.mm:462:11:error:'CGDisplayStreamUpdateGetRects'isonlyavailableonmacOS13.0ornewer[-Werror,-Wunguarded-availability-new]462|CGDisplayStreamUpdateGetRects(updateRef,kC......
  • vue视频直接播放rtsp流;vue视频延迟问题解决;webRTC占cpu太大卡死问题解决;解决webRTC播
    vue视频直接播放rtsp流;vue视频延迟问题解决;webRTC占cpu太大卡死问题解决;解决webRTC播放卡花屏问题::https://blog.csdn.net/killerdoubie/article/details/133884070......
  • python 安装包时 ERROR: Failed building wheel for webrtcvad
    报错信息:error:subprocess-exited-with-error×Buildingwheelforwebrtcvad(pyproject.toml)didnotrunsuccessfully.│exitcode:1╰─>[9linesofoutput]runningbdist_wheelrunningbuildrunningbuild_pycreatingbuildcre......
  • RTMP流媒体服务器LiteCVR支持在iOS播放WebRTC低延时视频流
    视频监控设备是安防行业的细分专业领域,近年来,视频监控业务正在向其他领域加速渗透。众所周知,iOS系统支持HLS流,但是HLS流延时高,无法满足实时流的要求;而WebRTC播放延时低,因此,很多用户希望能在iOS系统上播放Webrtc视频流。针对用户的这一需求,LiteCVR平台灵活的视频能力,可以完全满足。......
  • WebRTC 简单入门与实践
     一、前言WebRTC技术已经广泛在各个行业及场景中被应用,但对多数开发者来说,实时音视频及相关技术却是比较不常接触到的。做为一名Web开发者,WebRTC这块的概念着实花了不少时间才搞明白,一是WebRTC本身有较多的独有概念,二是虽然带“Web”字样,但依赖底层概念和网络却是Web......
  • Android WebRTC 编译注意事项
    AndroidWebRTC编译注意事项说明文主要适用于需要从外部C++文件调用WebRTCC++接口的场景本文对应的源码基于m111分支,高版本的也可以参考Android平台用默认参数编译AndroidWebRTC存在的主要问题RTTI默认未开启C++库默认使用了webrtc内部的C++库,与外部C++库abi不兼容,由......
  • WEBRTC回声消除-AECM算法源码解析之参数解析
    一概述 webrtc针对回声问题一共开源了3种回声消除算法,分别为aec,aecm,以及aec3,其中aec是最早期的版本,在后续的更新中aec3的出现代替了aec在webrtc中的地位,而aecm主要是针对计算能力较弱的移动端或是嵌入式设备而开发的,但同时也带来了它自己的劣势;本文主要介绍AECM算法的计......
  • STUN,TURN,ICE,WebRTC
    参考:KavirajanST  : WhatisWebRTCandHowtoSetupSTUN/TURNServerforWebRTCCommunication?AndreyB. :Еnvironment:signaling,STUNandTURNserversMeddane : DemystifyingNATTraversalwithSTUNTURNandICE STUNSTUN的唯一目的是让防火墙后面的设......
  • WebRTC C++ 线程和线程管理剖析
    线程管理实例化代码(单例)ThreadManager*ThreadManager::Instance(){staticThreadManager*constthread_manager=newThreadManager();returnthread_manager;}初始化位置WebRTC中启动新线程的标准方法是通过创建Thread对象,然后调用Thread.Start()方法来启用......
  • WebRTC C++ RTP over TCP配置
    前言RTPoverTCP这种情况,一般是WebRTCP2P打洞失败,才会选择WebRTC默认使用UDP传输,但是也可以通过TCP传输。使用TCP传输,需要服务器中转,turnserver,licode,janus之类的服务器解决方案搭建coTurn中转服务器https://blog.51cto.com/fengyuzaitu/7265986C++修改代码url后面必须指定?t......