BeYoung

Stay Hungry, Stay Young

什么是算子融合

算子融合是一种通过合并计算图中多个算子到一个算子,达到减少计算量和内存访问的优化方法。

  • Conv + BatchNormalization + ReLu融合

从融合后的最终公式可以看出,可以在初始阶段就通过BN的均值和方差(推理阶段BN的均值和方差是常量)更新Conv层的weights和bias参数,这样融合后的算子相当少了一个BN层的操作,既减少了内存访问,也减少了计算量

阅读全文 »

Android中几种sdkVersion的区别

最近遇到一个由于升级了targetSdkVersion而引起的线上crash,之前一直对于Android里面几个sdkVersion的含义和作用很模糊,正好这次把这几个不同的sdkVersion理清楚。

阅读全文 »

分析综合滤波器组的作用

由于音频信号在不同的频率范围具有不同的特性,因此在音频处理之前通常都会使用分析综合滤波器组将音频信号分成不同的频率子带,再分别进行处理。比如,音频编码中常用到的子带编码(Subband coding);webrtc的VAD中,会对不同的频率子带计算特征,再综合这些特征计算语音概率。

阅读全文 »

WebRTC由音频引擎、视频引擎和传输模块,音频处理在WebRTC占了很大一块,本文主要对WebRTC中涉及的音频处理进行简单介绍,不会对具体的实现进行介绍。上图是WebRTC中音频处理的流水线(上面的图是网上的图,如有侵权,通知即删),可以看出主要包含了音频采集播放、音频处理、音频编解码和音频传输。下面对这些模块逐一进行介绍。

阅读全文 »

WebRTC Android源码编译

对于WebRTC的学习来说,首先需要搞定的是源码的编译,由于国内的特殊环境和WebRTC本身的复杂性,导致WebRTC源码编译成了WebRTC学习的第一道门槛。这里把自己在编译WebRTC源码过程中遇到的一些坑进行总结分享,希望对大家有帮助。主要参考官网和WebRTC的编译配置脚本,整个操作过程需要具备科学上学的环境,第一次下载好环境和源码后,后面就不需要了。这里以Android端为例,编译环境为Ubuntu 18.04(再高版本会提示不支持),WebRTC官网有提到Android端暂时只支持在Linux下编译。虽然网上也有资源介绍在Mac环境下编译的,但是用虚拟机装个Ubuntu还是挺方便的,咱就不折腾了。

阅读全文 »
0%