当前位置: 首页 > news >正文

Opus从入门到精通(一)简介

Opus从入门到精通(一):简介

Opus是什么?

Opus编解码器是专门设计用于互联网的交互式语音和音频传输。它是由IETF的编解码器工作组设计的,合并了Skype的SILK和Xiph. Org的CELT技术。

Opus编解码器的设计目的是处理广泛的交互式音频应用程序,包括IP语音,视频,游戏内聊天,甚至远程现场音乐表演。它可以适用于从低码率窄带语音到非常高质量的立体声音乐。它的主要特点是:

  • 采样率从8至48 kHz
  • 比特率从6kb/s到510kb/s
  • 对固定码率(CBR)和可变码率(VBR)都能支持
  • 从窄带到宽带的音频带宽
  • 支持语音和音乐
  • 支持单声道和立体声
  • 支持多通道(最多255通道)
  • 帧规格从2.5毫秒到60毫秒
  • 良好的损失鲁棒性和包丢失隐藏性(PLC)(注:应是指丢包也不容易被发现)
  • 浮点和定点执行

Opus主要优点

从窄带到宽带的音频带宽

什么是窄带,宽带呢?人类的发生范围是65~1100Hz,听力感知范围是从20Hz到20kHz,将听力感知范围分成以下四种:

  • 窄带
  • 宽带
  • 超宽带
  • 全带

在这里插入图片描述

亨利·奈奎斯特(Harry Nyquist)采样定理:当对连续变化的信号波形进行采样时,若采样率fs高于该信号所含最高频率的两倍,那么可以由采样值通过插补技术正确的回复原信号中的波形,否则将会引起频谱混叠(Aliasing),产生混叠噪音(Aliasing Noise),而重叠的部分是不能恢复的.(同样适用于模拟视频信号的采样)人声语音的特点
不用的编码器针对不对频段的,如常见的MP3,AAC,Vorbis针对的是高频段的音频,AMR,iLBC是针对低频段的窄带音频,而Opus编码器覆盖了低频段到高频段的全带音频

在这里插入图片描述

低延迟

延迟依赖于帧规格,Opus最低帧规格2.5ms,非常适合实时音视频场景.

Opus配套设施

  1. 官网
  2. 编解码器libopus
  3. 封装器opusfile
  4. opusenc工具
  5. opusdec工具
  6. opusinfo工具

相关文章:

  • 深层网络:层数多真的更好吗?
  • 解锁ChatGPT:从原理探索到GPT-2的中文实践及性能优化
  • 【安装笔记-20240612-Linux-内网穿透服务之cpolar极点云】
  • Android 10.0 framework层禁止扫描5g wifi功能实现
  • Jtti:ubuntu文件系统根目录磁盘空间不足怎么办
  • 6月11号作业
  • 【数据结构】二叉树:一场关于节点与遍历的艺术之旅
  • 代码随想录算法训练营第36天(py)| 贪心 | 452. 用最少数量的箭引爆气球、435. 无重叠区间、763.划分字母区间
  • 解决SpringBoot在使用AOP切片时DATE类型出现Argument is not assignable to ‘lombok.Data‘ 的问题
  • payable介绍, 编写一个转账的测试合约
  • 代码随想录【字符串】
  • 云化XR什么意思,Cloud XR是否有前景?
  • 详细分析Mysql中的JSON_OBJECT() 基本知识(附Demo)
  • 阅文集团CEO侯晓楠:建立10亿生态扶持基金,为好内容搭建舞台
  • LVS+KeepAlived高可用负载均衡集群
  • 【Amaple教程】5. 插件
  • 【EOS】Cleos基础
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • CSS盒模型深入
  • CSS居中完全指南——构建CSS居中决策树
  • Fundebug计费标准解释:事件数是如何定义的?
  • gulp 教程
  • nfs客户端进程变D,延伸linux的lock
  • Python socket服务器端、客户端传送信息
  • 电商搜索引擎的架构设计和性能优化
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 浏览器缓存机制分析
  • 前端代码风格自动化系列(二)之Commitlint
  • 前嗅ForeSpider中数据浏览界面介绍
  • 深入 Nginx 之配置篇
  • 详解移动APP与web APP的区别
  • 一道面试题引发的“血案”
  • 阿里云重庆大学大数据训练营落地分享
  • ​Python 3 新特性:类型注解
  • #define
  • #Spring-boot高级
  • (16)Reactor的测试——响应式Spring的道法术器
  • (C++哈希表01)
  • (done) 声音信号处理基础知识(4) (Understanding Audio Signals for ML)
  • (leetcode学习)236. 二叉树的最近公共祖先
  • (翻译)terry crowley: 写给程序员
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (十一)图像的罗伯特梯度锐化
  • (图)IntelliTrace Tools 跟踪云端程序
  • (转)C#调用WebService 基础
  • (转)Scala的“=”符号简介
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .NET 动态调用WebService + WSE + UsernameToken
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .NET6 命令行启动及发布单个Exe文件
  • /etc/skel 目录作用
  • @Async注解的坑,小心
  • @LoadBalanced 和 @RefreshScope 同时使用,负载均衡失效分析
  • @Transaction注解失效的几种场景(附有示例代码)
  • [2008][note]腔内级联拉曼发射的,二极管泵浦多频调Q laser——