语音信息的本质 你也许知道,声音的本质源于声源震动的传递,而人的耳朵能感应到震动的2个维度,一是震动的强度,在我们感知中称其为“音量”,震动强的声源音量大,反之则音量小,另一个维度是震动的频率,即固定时间内声源发出震动的次数,在我们的感知中称其为“音调”,不同的东西发出不一样的“音调”,比如猫的叫声,鸟的叫声,你之所以能区分它们,并不是因为音量的大小,而是因为你能感受到他们不同的震动“频率”,话虽如此,并不是每个“声源”的震动频率你都能感知,人类耳朵能感受到“频率”范围位于每秒20~20000次震动之间,用数学的方法表示为20~20kHZ,而人类的声带能发出的“音频”范围则更窄,频率为“100~10KHZ”次震动(100~10KHZ)之间。 也许你会有一个疑问,如果我们想要通过一个仪器记录一个声音,那这个仪器的工作原理是记录声音的震动强度,还是记录声音振动的次数? 很遗憾,由于振动是一个无限连续的过程,我们很难直接记录振动次数,而是尽可能多的记录声音强度,由这些强度数据推算出声音的频率。 这幅图代表了声音的一次震动,你可能会问,如果一个声音的长度是1秒钟,那在这1秒钟,我们需要记录多少次震动强度才能完美的还原这个声音?一位叫“奈奎斯特”的科学家通过一系列的数学方法证明,需要“声源”震动频率的2倍,即如果声源最大频率是每秒震动2000次,那你需要记录4000次才能完美的还原这个声音,所以想要记录人耳感知范围内所有能够识别的声音,大概需要每秒记录20000x2=40000次震动强度,科学家给这个记录强度的过程起了一个名称,叫声音的“采样”。 现实生活中,往往我们不需要记录人耳所有能够识别的声音,因为有些声音是你不希望听到的噪音,比如频率太高的声音过于刺耳,而你仅仅想记录人们说话聊天的声音,而人类正常说话时震动的频率通常不会超过4KHz,因此每秒记录8000次就够了,我们通常叫它8K采样率,8K采样率通常用在电话之类的场合,而如果是音乐,需要感受更加细腻的音调,所以往往采样率会更高,像常听的MP3音乐,一般采用44.1K采样率,即采样率为44.1KHZ。 如果要把8000次震动强度记录成数字化的数据,你必须要有一种办法去描述震动的强度,科学家也给这个过程起了一个名字,叫声音的“量化”,在语音处理领域,一种量化方式是把震动强度分成256个级别,每一个级别代表不同的强度,如果把每一次震动都通过2进制的方式记录,想要描述256级别,则需要8bit的二进制去表示,而这一个过程,被称之为“编码”。在语音处理的领域,8K采样率几乎是一个普遍的标准,但考虑到各种使用环境的优化,“量化”和“编码”往往会有各种不同的方式,其中一些标准在不增加信息量的同时降低语音信息的失真率(比如G.711编码),还有一些标准轻微增加失真率但大幅度降低数据量(比如G.729),近年来还出现一些新标准,可以根据网络环境的实时状况动态的调整“采样、量化、编码”方式(比如大名鼎鼎的webRTC中的OPUS编码) 互联网品质对语音的影响 以前网络和语音处理几乎是不相关的领域,互联网、多媒体的兴起,越来越多的语音应用需要依赖于网络传输,典型的比如视频网站:爱奇艺、优酷、土豆;音乐app,虾米、QQ音乐等,他们这些内容里面的音频需要通过网络传输,但是由于这些内容并没有实时的互动,仅仅一方在收听,所以可以通过“缓冲”的机制去预先在观众收听之前把内容下载到本地即可,因而只对网络品质中的一个维度比较敏感,这个维度叫“网络带宽”,如果“带宽”太小,观众缓冲的速度跟不上观看的进度,则会出现卡顿,等待缓冲。 然而随着互联网的蓬勃兴起,出现了更多的应用,比如基于互联网的在线培训,这是一种比较新产业,老师和学生通过线上课堂来互动,这种需要实时互动的应用场景给网络带来更大的挑战。 你也许知道,衡量网络的品质一般通过这4个维度:“网络延时”、“网络抖动”、“网络丢包率”和“网络带宽”,实时语音对网络的要求一般需要达到: 1. 网络延时: < 100ms(0.1s) 2. 网络抖动: < 30ms 3. 网络丢包率: < 1% 4. 网络带宽:与编码方式相关(G.729约80kbps/通道,G.729约25kbps/通道,OPUS约10~40Kbps/通道) 你会发现,由于实时语音一般用于对话沟通的环境,虽然它的低“采样率(8K采样率)”和“量化级别(8bit)”并不会造成很大的“网络带宽”开销”,但是由于语音品质需要保障“端到端”的网络带宽,因此对于一些平台设计者而言会有比较大的挑战,再加上需要保障另外三个维度的网络品质,设计者就需要站在更高的维度去看待网络架构的问题,正如我之前在《广域专网之“一层网络”与“二层网络”》中提到的一样,这种情况下,设计者已经不能光想着搬到已经装修好的房子入住,而要考虑在你的土地上,把房子盖成什么样,继而装修成你想要的风格再居住。 很多做线上外语培训的机构,教师可能分布在世界各地,这种情况,往往设计者就需要考虑企业全球化网络架构的问题,但是很遗憾,笔者见过很多线上培训机构在拼命的做2件事,1是改变互联网入口的品质,增加不同运营商的接入线路,甚至把Internet出口换成更好的BGP出口;2是改善语音的“编码”,使之能承受更大的网络波动和更差的网络品质。 对于第一种做法,我其实还蛮能理解,电信行业一直是一个信息相当不对称的行业,而且服务能力相对滞后,以至于大部分企业与运营商打交道都有一种深深的恐惧和不信任感,再加上日益严重的行业竞争和投资方的压力,导致这些机构都把大量的经费投入到营销与竞争当中而忽略了基础架构建设,尤其是像网络这种对于管理者而言既抽象又没有直接带来收益的项目。 而对于第二种,我认为大部分原因是因为管理者的决策失误,尤其是CTO,先不说语音的编码本身是一门系统学科,涉及到通信领域大量的基础科研投入,一般的互联网公司承担不起这类研发经费,最关键的是“想要车不颠簸,你光改善避震是没有太大意义的,系统性的考虑整个行驶环境才是正道”,而这些恰恰是以平台研发和运维为主导的互联网IT部门欠缺的。 其实设计一个合适的网络架构有很多方案,笔者也曾经为不少互联网公司和500强企业设计过这类方案,当然这些超出了本文的范畴,以后笔者如果有空闲时间,会单独开辟一个专题去写这类网络解决方案。
浅谈“网络语音”及“互联网品质对语音的影响”【科普】
原创
©著作权归作者所有:来自51CTO博客作者卷饼大师的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
浅谈互联网产品
互联网产品,是用来解决日常生活的需求而产生,来自于现实转化虚拟的产物,何为需求?是
经验分享 互联网产品 产品经理 搜索 -
网络分层及互联网协议
关于网络分层和互联网协议的基本介绍
协议 互联网 网络分层