webrtc自动增益
前提
本文代码基于webrtc M59
背景
有些android设备上语音响度不够需要使用自动增益功能增强响度。
主要有两个方面:
(1)发送端的自动增益
(2)接收端的自动增益,该版本这个功能已经移除( Removing the RX processing APIs from VoEAudioProcessing),不做讨论
webrtc已经提供选项设置自动增益开关,开关如下:
audioConstraints.mandatory.add(new MediaConstraints.KeyValuePair(“googAutoGainControl”, "true"));
但是增益值没有提供选项到java层需要自己封装,代码如下:
mediaconstraintsinterface.h static const char kAutoGainControlLevel[]; //目标电平的值mediaconstraintsinterface.cc const char MediaConstraintsInterface::kAutoGainControlLevel[] = "googAutoGainControlLevel"; //提供给java层的选项名CopyConstraintsIntoAudioOptions接口赋值//set auto gain level ConstraintToOptional<uint16_t>(constraints,MediaConstraintsInterface::kAutoGainControlLevel,&options->tx_agc_target_dbov);java层设置值: audioConstraints.mandatory.add(new MediaConstraints.KeyValuePair(“googAutoGainControlLevel”, "3"));
备注:
以下是一些参数配置和初始化过程的接口
WebRtcAgc_set_config GainControlImpl::Configure GainControlImpl::Enable -》GainControlImpl::Initialize-》gain_controller->Initialize
转载于:https://my.oschina.net/xgcode/blog/2885204
webrtc自动增益相关推荐
- 详解 WebRTC 高音质低延时的背后 — AGC(自动增益控制)
前言 自动增益控制(AGC:Auto Gain Control)是我认为链路最长,最影响音质和主观听感的音频算法模块,一方面是 AGC 必须作用于发送端来应对移动端与 PC 端多样的采集设备,另一方面 ...
- 详解 WebRTC 高音质低延时的背后—AGC 自动增益控制
前面我们介绍了 WebRTC 音频 3A 中的声学回声消除(AEC:Acoustic Echo Cancellation)的基本原理与优化方向,这一章我们接着聊另外一个 "A" – ...
- webrtc agc matlab,c++ WebRTC AGC(自动增益控制)
我测试WebRTC AGC,但我一定是做错了,因为信号只是通过未修改. 下面是我如何创建和初始化AGC: agcConfig.compressionGaindB = 9; agcConfig.limi ...
- Android IOS WebRTC 音视频开发总结(三三)-- Periscope介绍
本文主要介绍Periscope,文章来自博客园RTC.Blacker,支持原创,转载请说明出处. 可能国内很多人没听说过Periscope,这可是现在Twitter上很火的一个APP,先看看人家自己是 ...
- WebRTC系列之音频的那些事
年初因为工作需要,开始学习WebRTC,就被其复杂的编译环境和巨大的代码量所折服,注定是一块难啃的骨头.俗话说万事开头难,坚持一个恒心,终究能学习到WebRTC的设计精髓.今天和大家聊聊WebRTC中 ...
- 详解 WebRTC 高音质低延时的背后 — AGC
简介:本文将结合实例全面解析 WebRTC AGC 的基本框架,一起探索其基本原理.模式的差异.存在的问题以及优化方向. 前面我们介绍了 WebRTC 音频 3A 中的声学回声消除(AEC:Acous ...
- WebRTC 及点对点网络通信机制
原文请查阅这里,略有删减,本文采用知识共享署名 4.0 国际许可协议共享,BY Troland. 这是 JavaScript 工作原理第十八章. 概述 何为 WebRTC ?首先,字面上已经给出了关于 ...
- WebRTC 中的基本音频处理操作
在 RTC,即实时音视频通信中,要解决的音频相关的问题,主要包括如下这些: 音频数据的采集及播放. 音频数据的处理.主要是对采集录制的音频数据的处理,即所谓的 3A 处理,AEC (Acoustic ...
- 展望2018:WebRTC和下一代编解码器
WebRTC的优势与短板,编解码器的未来是属于FVC还是AV1?FPGA.ASIC.GPU等专用硬件编解码器的应用前景如何?来自网宿科技的投稿对此进行了深度分析,本文也是『2017-2018音视频技术 ...
最新文章
- 怎么修改nginx的access.log的时间格式
- LIVE555再学习 -- 初识
- B 树、B+ 树、B* 树
- java酒店信息管理系统_java实现酒店管理系统
- jsp中接收java的返回值_jsp中request的一些方法返回值
- 关于Cocos2d-x中使用完Blink动作后精灵突然消失的问题的解决
- GJB150A-2009军用装备实验室环境试验标准目录
- 第五章 Spark-SQL进阶(一)之Dataset用法
- CPU的内部架构和工作原理(好文)
- Vsphere平台虚拟机vmdk文件丢失重建
- 判断多边形边界曲线顺/逆时针 两种方法
- Hinton 最近提出的 Capsule 计划
- 计算机上的mac是什么意思啊,Mac版是什么意思,Windows版是什么意思?
- MySQL中date、datetime、timestamp、time、year的区别
- 辽宁2010省赛NEW RDSP MODE I (思维,推导公式)
- linux 文件缓存大小设置,Linux文件读写机制及优化方式
- USB射频功率计DIY——构建软件校准方案
- 卡尔曼滤波公式推导(2)
- 日期格式yyyy-MM-dd和YYYY-MM-dd到底有什么不同
- android toast设置背景颜色,android-自定义Toast消息文本颜色
热门文章
- cisco显示ip地址_cisco视频会议,会议室两台电视、一个投影线路如何连接布线
- 基于Python + Redis实现分布式锁
- C++里vector::erase函数
- Python自动化必会技能-Excel文件读取
- python制作的游戏如何转化为swf_PYTHON实现swf提取
- SpringCloud之良心入门干货(Eureka入门)
- 【收藏】RPM包制作和spec文件详解
- matlab虚拟现实之V-Realm Builder2建模注意事项
- php 二进制 十六进制转换,php 实现进制转换(二进制、八进制、十六进制)互相转换实现代码...
- ipconfig默认网关为空_网络工程师之IPCONFIG命令详解