搞定音频技术
冯建元
声网 Agora 音频算法专家
5340 人已学习
新⼈⾸单¥59
登录后,你可以任选3讲全文学习
课程目录
已完结/共 19 讲
搞定音频技术
15
15
1.0x
00:00/00:00
登录|注册

09|音频编解码器是如何工作的?

你好,我是建元。今天我们来聊聊什么是音频编 / 解码器,以及它背后的原理。
在我们讲音频编 / 解码器之前,你不妨先设想一下:如果没有音频编 / 解码器,我们直接给对方发送原始数据,会发生什么事情呢?
我们假设一个在线会议有 10 个人,每个人要发给另外 9 个人的音频信号是 48kHz 采样率的单通道音频。每个采样点我们用 16 位的浮点来表示。那么上行通道中我们需要每秒发送 48000 乘以 16 bit 的音频信号,也就是大约 768kbps;而接收的下行通路的信号是除了你之外的另外 9 个人的信号,也就是 6912kbps。
所以上行加下行要想在没有音频编 / 解码的情况下,完成一个 10 人的在线会议,你需要消耗 7.5Mb 的带宽在音频信号上,来保证流畅的音频通话,注意这里我们还没有计算发送的包头以及抗弱网所需要的额外带宽。
这么大的带宽消耗在带来巨大成本的同时,也会在网络条件比较差或者通话人数比较多的时候让实时音频出现卡顿甚至不可用的问题。所以音频编 / 解码器的任务就是在减少带宽码率消耗的同时,尽量保持音频的音质不会受到损伤。
那么具体是如何实现的呢?这节课我们就来说道说道。清楚了这些,对于你接下来实践音频编解码,以及选择合适的编解码器都是大有帮助的。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

音频编解码器在音频通信中扮演着关键角色。本文介绍了音频编解码器的发展历程和不同类型,包括语音编解码器、音乐编解码器以及混合编解码器。针对不同信号类型,编解码器采用不同的压缩方法,如裁剪采样率和非线性量化,以有效降低音频数据的码率,同时尽可能地保持音质。文章还提到了一些常见的编解码算法,如A-LAW,用于对音频数据进行压缩和解压缩。此外,文章还介绍了语音编码器和音乐编码器的基本原理,包括线性预测编码(LPC)和离散余弦变换(MDCT)等技术。总的来说,音频编解码器通过不断的技术演进,为音频通信提供了更高效和更优质的解决方案。 文章还提出了一个思考题,探讨了采用文字识别作为编码(语音转文字ASR),然后用文字转语音技术(TTS)来解码的编解码器的码率。这种编解码器的码率取决于人类每分钟说话的字数和常用汉字的数量,是一个值得思考的问题。 总的来说,本文深入浅出地介绍了音频编解码器的基本原理和发展趋势,对于对音频通信感兴趣的读者来说,是一篇值得阅读的技术文章。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《搞定音频技术》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(7)

  • 最新
  • 精选
  • 方杰
    4096个汉字,可以使用12bit来表示,每分钟200个字,码率=12*200/60=40pbs

    作者回复: 算得不错

    2021-12-14
  • 晓龙
    200字/min ≈ 3.33字/s ≈ 4字/s 编解码码率:12bit * 4字 = 48bit/s 所以每秒钟: 48bit

    作者回复: 对的,差不多

    2021-12-13
  • 徐刚
    每个字的码本由12bit表示;每秒码率=每秒字数 * 码本大小 = (200/60) * 12 = 40bit/s

    作者回复: 可以的

    2021-12-13
  • 坚坚
    2的12次方,可以用12bit储存,即1.5BYTE,1.5*200=300Byte每秒,若进一步考虑句子相关性,例如通过词来编码,或者进一步利用上下文信息来编码,若采用词向量的方式,应该还可以进一步压缩,这个应该就是属于用深度学习来做编解码的范畴了。

    作者回复: 不错,思维很清晰

    2021-12-10
  • springXu
    4096种汉字共需要4k的编码。2的12次方。 一分钟200个字,也要800k的码率。。。 这个和文中提到的48000的采样率16bit的编码768k的码率还要大。

    作者回复: 注意一下单位,分钟和秒

    2021-12-10
    2
  • Dom
    4096个汉字,可以用12bit来表示(2的12次方等于4096),那么计算码率的方法=总传输的数据量/时间,使用这个公式进行计算得到:码率=200字*12bit/60s=40bps。 如果说要进行优化的话,首先想到的是压缩编码,用更少的bit来表示4096个汉字,比如根据使用的频率统计做哈夫曼编码,提升效果会比较明显。 在这个场景下,每个汉字都是一个独立的个体,它们的组合是无限个的或者说是数量级比较大的,不像LPC系数是有限固定的,所以应该是不能用VQ的方式来做的。 至于深度学习里面的词向量,我觉得也是不合适的,个人观点
    2022-01-13
    1
  • 龚长华
    12bit可用能表示4096个汉字。因此最大码率:200 * 12 / 60 = 40 bps
    2022-04-20
收起评论
显示
设置
留言
7
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部