最近简单看了一下Skype SILK codec 算法, 基本原理和流程大体明白了, 以后有时间再仔细研究一下细节,今天就简单说说. SILK Codec是一个语音和音频编解码算法, 对于音频带宽、网络带宽和算法复杂度都具有很好的弹性。支持4种采样率:8KHz、12KHz、16KHz、24KHz;三种复杂度:低、中、高。编码码率在 6~40kbps(不同采样率具有不同的码率范围)以及还支持VAD、DTX、FEC等模块,感觉还是比较全面。最重要的一点是提供了定点C代码,非常有利于向ARM、DSP移植和优化。

顺便附上原理流程图

看过SILK Codec 代码,总觉得他是iLBC和Speex混合拼出来的,当然没有这么简单,整体采用Source-filter经典模型,即对语音产生系统建模为基础,经过两级滤波,第一级长时预测滤波器(LTP),去除浊音语音中的周期成分,当然对于清音就不需要这一步了;第二步进行短时滤波(LPC),去除近样点之间的冗余信息,这里采用伯格(Burg)算法计算得到LPC系数(一般CELP Codec都采用自相关算法计算LPC),然后采用多级矢量量化的方法(一般CELP Codec都采用分裂式矢量量化方法);经过这两级滤波就可以得到激励信号,一般CELP Codec往往采用固定码书+自适应码书分别量化的方法,它们分别近似激励信号中的近周期成分和类噪声成分(这个模型简直太经典了,所以CELP可以在8Kbps以上保持非常好的音质,在进一步对固定码书的不同量化方法又引出了不同Celp的命名和变体,不能再说了否则就成介绍CELP了),这里SILK也不同于iLBC,但是却很相似也是在子帧中找到能量最大的点,然后进行增益量化和归一化,对归一化后的信号采用距离编码(Range encode),这个距离编码是无损压缩算法,性能和原理类似算术编码,用它主要是出于避开专利的原因。另外,对于VAD、DTX、FEC以及对于噪声的抑制也很不错,变码率的编码方式与Speex比较相似。

好了,今天先到这里,明天还要上班呢,以后再对细节仔细研究。

Skype SILK codec overview的更多相关文章

  1. Skype SILK vs. iLBC vs. Speex

    对比一下这三种VOIP语音算法的特点: 1 参数与特征 2 SILK性能 关于iLBC和Speex的性能可以参考以前写的文章. 3 关于VOIP一些观点(仅代表个人观点) 1)  Skype 辛苦三年 ...

  2. Silk codec的一些资料

    Skype表示它最近将开始向第三方开发人员和硬件制造商提供免版税认证(RF)的Silk宽带音频编码器. Silk下载地址如下 http://developer.skype.com/silk/SILK_ ...

  3. iSAC测试报告

    iSAC测试报告 测试码流:24k bit/s 测试环境:三星i9250  CPU 1.2G*2   ram:1G  TI芯片  OMAP 4460 双核1.2GHz MOTO ME722  CPU ...

  4. FreeSWITCH 总体架构

    [1]总体结构 [2]代码结构目录 [3]模块简介 Applications应用 mod_abstraction – 提供了一个抽象的API调用(未来有更多功能)Provides an abstrac ...

  5. 关于vp8,vp8与264比较总结

    1 Other Codecs l MSN 使用的video codec “x-rtvc1”,09之前的版本使用的ML20.参考网址: http://www.amsn-project.net/forum ...

  6. 发现一个好的开源项目:lomoX(挑着看,每天看一点,看一年就ok了)——用Webkit开发桌面软件,炫

    http://www.oschina.net/p/lomox https://github.com/caidongyun/lomox 用Web技术做桌面客户端.虽然仍然免不了要分发客户端,但好处是,界 ...

  7. Office 365 机器人(Bot)开发入门

    作者:陈希章 发表于 2017年7月29日 前言 作为人工智能技术的一个主要的表现形式,这些年机器人(bot)的应用越来越广泛.不管是有实物的,还是纯软件的,现在的机器人技术应该说已经走入寻常百姓家了 ...

  8. Android P2P语音通话实现

    1.http://www.cnblogs.com/milospooner/archive/2012/07/13/2590950.html 2.http://my.oschina.net/sanshan ...

  9. RTP Payload Format for Opus Speech and Audio Codec

    [Docs] [txt|pdf] [Tracker] [WG] [Email] [Diff1] [Diff2] [Nits] Versions: (draft-spittka-payload-rtp- ...

随机推荐

  1. 微信小程序的官方文档

    虽然不知道微信小程序今后的发展情况,不过做为一名it人员的我还是去了解它. 这是他的文档路径,里面有详细的使用和申请内测号的全部流程,这里就不再过多解释了. 看后那个开发小程序的文档记得分析你感觉微信 ...

  2. Hadoop学习笔记——Hadoop经常使用命令

    Hadoop下有一些经常使用的命令,通过这些命令能够非常方便操作Hadoop上的文件. 1.查看指定文件夹下的内容 语法: hadoop fs -ls 文件文件夹 2.打开某个已存在的文件 语法: h ...

  3. python字符串基本方法

    字符串类型在Python中是十分重要的类型,他一般用引号中间添加字符的形式表达,不同于其他语言的是,Python中双引号(” “)与单引号(’ ‘)是不予区分的.都可以用来表示字符串 创建.赋值和访问 ...

  4. 九度OJ 1260:珍珠项链 (字符串处理、DP)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:101 解决:27 题目描述: 假设有一条珍珠项链,有很多珍珠,r代表红色, b代表蓝色, w代表白色. 假设你在某一处剪开之后,你会沿着顺时 ...

  5. php, tp5, 选中导航菜单

    1. 首先定义一个函数: function nav_select($navindex){ $nav_arr = [ 1 => ['index',], 2 => ['mei',], 3 =& ...

  6. flex (html弹性布局)

    flex是什么? 任何容器都可以指定为flex布局: .box{ display: flex;  /* 行内元素可以使用:inline-flex,webket内核浏览器必须 -webkit-flex ...

  7. Linux修改网络配置

    修改:/etc/sysconfig/network-scripts/ifcfg-eth0 重启网卡/etc/rc.d/init.d/network restart

  8. easy_install和pip的安装及使用

    在终端输入命令报错后,在网上找到了这篇博客,用easy_install命令安装pip,问题解决 Fatal error in launcher: Unable to create process us ...

  9. Linux基础系列:常用命令(8)_shell script

    一.什么是shell script 将OS命令堆积到可执行的文件里,由上至下的顺序执行文本里的OS命令 就是脚本了. 再加上些智能(条件/流控)控制,就变成了智能化脚本了 二.变量命名规则 以字母或下 ...

  10. Spring笔记:IOC基础

    Spring笔记:IOC基础 引入IOC 在Java基础中,我们往往使用常见关键字来完成服务对象的创建.举个例子我们有很多U盘,有金士顿的(KingstonUSBDisk)的.闪迪的(SanUSBDi ...