前提

本文代码基于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自动增益相关推荐

  1. 详解 WebRTC 高音质低延时的背后 — AGC(自动增益控制)

    前言 自动增益控制(AGC:Auto Gain Control)是我认为链路最长,最影响音质和主观听感的音频算法模块,一方面是 AGC 必须作用于发送端来应对移动端与 PC 端多样的采集设备,另一方面 ...

  2. 详解 WebRTC 高音质低延时的背后—AGC 自动增益控制

    前面我们介绍了 WebRTC 音频 3A 中的声学回声消除(AEC:Acoustic Echo Cancellation)的基本原理与优化方向,这一章我们接着聊另外一个 "A" – ...

  3. webrtc agc matlab,c++ WebRTC AGC(自动增益控制)

    我测试WebRTC AGC,但我一定是做错了,因为信号只是通过未修改. 下面是我如何创建和初始化AGC: agcConfig.compressionGaindB = 9; agcConfig.limi ...

  4. Android IOS WebRTC 音视频开发总结(三三)-- Periscope介绍

    本文主要介绍Periscope,文章来自博客园RTC.Blacker,支持原创,转载请说明出处. 可能国内很多人没听说过Periscope,这可是现在Twitter上很火的一个APP,先看看人家自己是 ...

  5. WebRTC系列之音频的那些事

    年初因为工作需要,开始学习WebRTC,就被其复杂的编译环境和巨大的代码量所折服,注定是一块难啃的骨头.俗话说万事开头难,坚持一个恒心,终究能学习到WebRTC的设计精髓.今天和大家聊聊WebRTC中 ...

  6. 详解 WebRTC 高音质低延时的背后 — AGC

    简介:本文将结合实例全面解析 WebRTC AGC 的基本框架,一起探索其基本原理.模式的差异.存在的问题以及优化方向. 前面我们介绍了 WebRTC 音频 3A 中的声学回声消除(AEC:Acous ...

  7. WebRTC 及点对点网络通信机制

    原文请查阅这里,略有删减,本文采用知识共享署名 4.0 国际许可协议共享,BY Troland. 这是 JavaScript 工作原理第十八章. 概述 何为 WebRTC ?首先,字面上已经给出了关于 ...

  8. WebRTC 中的基本音频处理操作

    在 RTC,即实时音视频通信中,要解决的音频相关的问题,主要包括如下这些: 音频数据的采集及播放. 音频数据的处理.主要是对采集录制的音频数据的处理,即所谓的 3A 处理,AEC (Acoustic ...

  9. 展望2018:WebRTC和下一代编解码器

    WebRTC的优势与短板,编解码器的未来是属于FVC还是AV1?FPGA.ASIC.GPU等专用硬件编解码器的应用前景如何?来自网宿科技的投稿对此进行了深度分析,本文也是『2017-2018音视频技术 ...

最新文章

  1. 怎么修改nginx的access.log的时间格式
  2. LIVE555再学习 -- 初识
  3. B 树、B+ 树、B* 树
  4. java酒店信息管理系统_java实现酒店管理系统
  5. jsp中接收java的返回值_jsp中request的一些方法返回值
  6. 关于Cocos2d-x中使用完Blink动作后精灵突然消失的问题的解决
  7. GJB150A-2009军用装备实验室环境试验标准目录
  8. 第五章 Spark-SQL进阶(一)之Dataset用法
  9. CPU的内部架构和工作原理(好文)
  10. Vsphere平台虚拟机vmdk文件丢失重建
  11. 判断多边形边界曲线顺/逆时针 两种方法
  12. Hinton 最近提出的 Capsule 计划
  13. 计算机上的mac是什么意思啊,Mac版是什么意思,Windows版是什么意思?
  14. MySQL中date、datetime、timestamp、time、year的区别
  15. 辽宁2010省赛NEW RDSP MODE I (思维,推导公式)
  16. linux 文件缓存大小设置,Linux文件读写机制及优化方式
  17. USB射频功率计DIY——构建软件校准方案
  18. 卡尔曼滤波公式推导(2)
  19. 日期格式yyyy-MM-dd和YYYY-MM-dd到底有什么不同
  20. android toast设置背景颜色,android-自定义Toast消息文本颜色

热门文章

  1. cisco显示ip地址_cisco视频会议,会议室两台电视、一个投影线路如何连接布线
  2. 基于Python + Redis实现分布式锁
  3. C++里vector::erase函数
  4. Python自动化必会技能-Excel文件读取
  5. python制作的游戏如何转化为swf_PYTHON实现swf提取
  6. SpringCloud之良心入门干货(Eureka入门)
  7. 【收藏】RPM包制作和spec文件详解
  8. matlab虚拟现实之V-Realm Builder2建模注意事项
  9. php 二进制 十六进制转换,php 实现进制转换(二进制、八进制、十六进制)互相转换实现代码...
  10. ipconfig默认网关为空_网络工程师之IPCONFIG命令详解