分析评估和定位声音质量

分析评估和定位声⾳质量
/**
* @author wangdaopo
* @email
*/
影响⾳频质量和稳定性的因素
⾳质好坏的评价,响度、⾳⾼、⾳⾊,家用水果榨汁机
测试,你的语⾳引擎是基本可⽤的,客观评测软件是RMAA(RightMark Audio Analyzer;⽐较适合开发者⾃⼰去做,在上线前⾃测的⼀些⽅法
频率与⾳⾊的听⾳训练 及 训练⾳乐听觉
主板维修工具
语⾳通信中提⾼⾳质的⽅法
硬质合金车刀
影响⾳频质量和稳定性的因素到底有哪些实时语⾳到底有哪些特征?
0.通话中语⾳信息丢失了,这个对话是根本不能继续下去的
1.⽹络随机性(丢包 延时 抖动):都会导致听感滞后或者断续;⽹络对⾳频质量的影响是⾮常直观的,如果承载⾳频信息的语⾳包在⽹络传输的过程中丢失,晚到,或者不均匀的到,就会造成我们常说的丢包,延时和抖动。另外值得⼀提的是,除了在传输层引起的丢包抖动,最后⼀公⾥(Last Mile)的问题(路由器,移动数据⽹络等)也会引起丢包抖动
实时语⾳的问题很难去定位    语⾳卡顿,到底是什么原因? 问题多源性:你⾸先想到的肯定是⽹络,⽹络会卡顿。 其实还有别的原因会引起卡顿,⽐如设备CPU负荷很⾼时,录放⾳调度有问题,也会导致声⾳的卡顿。更隐性的问题,⽐如回声消除,
2.设备 (声学设计,计算能⼒):听感体验很⼤程度受到录放⾳设备的制约,扬声器之间的耦合很⼤,或者扬声器的⾮线性很⼤,导致你的算法不能很好贯通在上⾯,导致听感上有⼀些卡顿、⽑刺的问题。
3.物理环境 (密闭环境,噪声, 啸叫等)⽐如我在⼀个很吵的环境和你打电话,或者我在很⼩的房间跟你打电话感觉是不⼀样的;还有远场拾⾳,⽐如做电视应⽤,必须要在2⽶以外收⾳,这个时候麦克风的拾⾳效果决定了⾳频听到的体验
听⾳
建议对通话进⾏录⾳,这样可以在测试后重听和标注,更好的分析问题。如果测试的引擎不带录⾳的话,可以在外放的⽽环境通过外部设备来录制。
⼀般我们先在较好的⽹络状态下测试⾳频的基础质量,然后慢慢增加丢包率来测试⼀个引擎抗丢包的边界。
1 log
2 最⼩系统
做⼀个软件系统时刚开始是⼀个最⼩系统,即缺了任何⼀个模块,系统不能⽤。后来加上⼀个个功能使系统完备。在写代码时我们可以加上⼀些标志位使这些后加的功能enable或者disable。这有助于后⾯出现问题时排查。下图是语⾳通信的软件框图,最⼩系统是采集播放编解码⽹络发送接收等,没有这些不能通话。⽽前处理的⼀些模块(AEC/ANS/AGC等)则不是最⼩系统⾥⾯的,它们是后来⼀步步加上去的。假设系统出问题了,我们先disable前处理的诸多模块,形成最⼩系统,看有没有问题,有说明问题在最⼩系统⾥,再继续调查。没有的话先把AEC使能看有没有问题,有说明问题在AEC⾥,没有说明问题在ANS或者AGC⾥。如没有问题继续使能ANS看是否有问题,有说明问题在ANS⾥,没有说明问题在AGC⾥。经过这⼏步基本定位问题在哪个模块⾥,后⾯再结合其他⽅法直到到根本原因。
⾳频开发时不管是voice还是music好多问题是⾳频听下来不对,这时就要⽤⾳频特有的debug⽅法了。
3 dump⾳频数据
Dump⾳频数据就是把⾳频数据dump出来⽤⼯具(⽐如CoolEdit, 后⾯讲⼯具时会具体讲)播放,或者看波形,或者看频谱,看是否正确。⼀般是⼏个可能的dump点,进模块前⼀个dump点, 出模块后⼀个dump点。如果进模块前dump出来的数据是好的,⽽出模块后的⾳频数据是坏的,那么问题就出在这个模块了,再⼀步步排查,最终到把⾳频数据写坏的地⽅。还是以上⾯的语⾳通信软件框图为例,在AEC前设⼀个dump点,AEC后再设⼀个dump点,如果AEC前的⾳频数据是好的,AEC后的⾳频数据不好了,问题肯定出在AEC⾥。
Dump⾳频数据也有⼏种不同的⽅法,在不同的场合⽤不同的⽅法。
a)把⾳频数据写进指定的⽂件⾥,问题复现后把这个⽂件导出来⽤⼯具分析。
b)把⾳频数据放进RTP包⾥发送到指定的IP地址上,⽤抓包⼯具(⽐如wireshark, 后⾯讲⼯具时具体讲)抓到这些包。由于是PCM数据,在wireshark上可以直接听或者看波形。这多⽤于语⾳通信场景。
c)有时候有些模块对⾃⼰是⿊盒的,⽐如在linux下kernel space的⾳频驱动对做use space的来说就是⿊盒。在use space⾥调查下来⾳频数据没问题,但是最终从扬声器或者⽿机出来的⾳频是有问题的,这时可以⽤⼀根⾳频线⼀头连着出问题的设备的⽿机,另⼀头连着电脑,复现问题,⽤CoolEdit把出问题时的⾳频录下来,先听确认问题出在这个⿊盒模块⾥,然后看波形,是否有规律,如果有规律,好查⼀些,没规律再具体问题具体分析。
4 loopback⾳频数据
loopback⾳频数据就是形成回环,从⽽来排查问题。还是以上⾯的语⾳通信软件框图为例,有⼏种不同层次的loopback,见下图:
1)    把采集和播放形成loopback,即把采集到的⾳频数据⽴刻payback出来,听下来是好的说明⾳频驱动没问题,不好说明问题在⾳频驱动⾥⾯。
2)    把前处理后的数据和播放形成loopback,即把ANS后的PCM数据直接播放出来,听下来是好的说明前处理没问题,不好说明问题在前处理⾥⾯。
3)    把编码和解码形成loopback,即把编码后的码流⽴刻放进解码器得到pcm数据再playback出来,听下来是好的说明问题出在⽹络侧,不好说明问题出在编解码⾥⾯。
通过上⾯⼏个loopback基本上可以定位问题出在哪个模块⾥,再在这个模块⾥仔细调查直到到根本原因。
5,⼯具
上⾯讲⽅法时提到了⼏个⼯具,如CoolEdit,下⾯具体讲。
1)CoolEdit / Audition
这应该算是做⾳频开发的必备⼯具了。以前叫CoolEdit,后来被Adobe收购重新包装后形成了Audition。我个⼈还是习惯于⽤CoolEdit,原因⼀是⽤习惯了,⼆是CoolEdit可以保存成PCM⽂件,⽽Audition却不可以,做⾳频开发的保存成PCM⽂件最⽅便。
⽤CoolEdit可以听⾳频是否正常,也可以看波形,在出问题时看波形是否有规律,还可以看频谱。同时还可以⽣成⼀些特定的⾳频⽂件⽤于去调试。⽐如调试⾳频算法时⽤⼀个时间相对较长的(> 1秒)的⾳频⽂件会很不⽅便,主要是因为log多,不便于分析。算法通常⼀帧为10ms或者20ms,需要⼏帧就可以调试算法了。这时⽤CoolEdit做⼀个⼏⼗ms的PCM⽂件给算法调试⽤。再⽐如⽤CoolEdit做⼀个
20HZ到20000HZ的扫频⽂件作为某个算法或者某个系统的输⼊,看这个算法或者系统的频响如何。
管束式集装箱
CoolEdit的具体使⽤可以看help⽂件,或者看⽹上的⽂章,这⾥就不详细讲了。
2)Wireshark
Wireshark主要⽤于语⾳通信场景,抓⽹络上的语⾳包。当然它也可以抓其他类型的包,在做⾳频开发时就是抓语⾳相关的RTP/RTCP包了。抓到包后可以看某个具体包的RTP/RTCP属性,⽐如sequence number/time stamp等,从⽽去分析定位问题等。Wireshark也可以分析丢包率等,还可以播放codec 为g711的语⾳包,当然还有其他⽤途,这⾥就不⼀⼀说了,有需求的可以到⽹上看具体的⽂章。
3)mediainfo
Mediainfo主要⽤于⾳乐场景,⽤它可以看到⼀个⾳乐⽂件(例如MP3)的属性,有采样率/声道数/codec类型/码率等。如果在log中看到的打印值和mediainfo中显⽰的值对不上,说明读取⾳乐⽂件属性的代码有问题。
4)GoldWaverbd-446
GoldWave也主要⽤于⾳乐场景,⽤它来做采样率/codec/码率等的转换。⽀持的采样率、codec、码率都特别多,对调试有不少帮助。例如某个系统要⽀持采样率为11025HZ的⾳乐⽂件,但是市⾯上的⾳乐⽂件⼀般为44.1KHZ或者48KHZ的,这就需要专门的⼯具去做转换,从⽽得到想要的⽂件。然后拿
这个⽂件去调试测试看系统是否⽀持采样率为11025HZ的⾳乐⽂件。
在⾳质好坏的评价中,最重要的是这四个⽅⾯的对⽐,把这四点的思路理顺了,在选择或评测时就不⾄于会⽆从下⼿:
1、⾳⾊的“冷”、“暖” 选择。
2、⾳场的“空间感”和“定位感”对⽐。
3、平衡度的“左右声道⾳量及分离程度”和“三频量感平衡”对⽐。
4、解析⼒的三频质感和层次感、细节还原能⼒对⽐。
看起来是少,但实际上涉及的⾯很⼴,要运⽤起来还真不简单呢!
⼀、选择⾳⾊:暖⾊调的⾳⾊听起来温和闲适(欧洲的产品⼤多数声⾳偏暖),适合听古典乐;⽽冷⾊调听起来则冷酷⼲脆(亚洲的产品⼤多数声⾳偏冷),适合听摇滚乐
⼆、对⽐声场 :感觉空间越⼤、定位越准确就越好。
(1)空间感  倘若想要听到⽴体的空间感只能多听多想,
在 欣 赏⾳乐时可以闭上眼睛,想象⾃⼰正坐在观众席上,声⾳是从舞台上传来的。请把⾳量尽量调⼩,你会发现这时声 ⾳离 你远了——原来你坐在剧场的后排!
(2)定位感
定位感就是说能否准确分辨出声⾳的位置。
就要⽐较各种声⾳定位的准确性:⽐如听流⾏歌曲,⼀听就知道⼈在前⾯,⿎在⼈后⾯,吉他在左,钢琴在右,更进⼀步,听出他们相距多远,很明显就在这个位置,OK!
三、对⽐平衡度
这是要⽐较两个声道的⾳量平衡、声道分离度和三频量感平衡。这正像作画时也要顾及⾊彩平衡⼀样。
(1)声道⾳量平衡、声道分离度
对⽐声道⾳量平衡,就是对⽐左右声道⾳量是否⼀样。
对⽐声道分离度,就是对⽐本来只是左(右)声道的声⾳,右(左)声道是否也在凑热闹。
这个其实不重要,因为⾄今我还没见过有哪个产品能⽜逼到声⾳不均衡也敢出来卖的地步。这个⼀般在使⽤仪器的客观评测中才看得出差别。
(2)三频量感平衡
这 个 是说⾼频、中频和低频的⾳量是否⼀致,
我们说的频段分为极低频(20Hz—40Hz)、低频(40Hz—80Hz)、中低频(80Hz— 160Hz)、 中频(160Hz—1280Hz)、中⾼频(1280Hz—2560Hz)、⾼频(2560Hz—5120Hz)、极⾼频(5120Hz — 20000Hz)。 ⽐如⼤家平时说,低⾳真爽,可能就是说低⾳的量感很⾜,低⾳被突出了,这样不好吗?好,但从还原⾳质的⾓度看,就是失真了。
⾼频量感不⾜,听起来会觉得压抑;中频量感不⾜,听起来则不够结实;低频量感不⾜,听起来就显得平淡。⼀般来说,三频量感越均衡,声⾳就越有层次,但不是绝对,下⾯我会说到。
四、解析⼒
如果说上⾯三个要点说的都是横向的,主要抓整体感觉,对⽐较为简单,那么解析⼒这项说的就是纵向的,要抓住整体的⼀个点深究,就是对细节处理能⼒。这像⼀幅好的画作,不是画完就好,还要有优秀的细节。在解析⼒⽅⾯,我们要⽐较三频的质感、⾳乐的层次感和细节还原能⼒。
(1)三频质感,质感说的是质量的好坏。⾼频主要对⽐透明感——透明感⽐较抽象,在同⼀个频率,⼩提琴的⾳⾊⽐⼆胡要透明,⽽钢琴的⾳⾊则⽐⼩提琴更透明。透明的声⾳是明亮清澈的,反之则会感觉暗淡和⽑刺。声⾳不是越透明越好,但决不能不透明。 中频主要对⽐结象⼒——就是要感觉声⾳是否结实饱满,有没有底⽓不⾜或飘来荡去定位不准(再通俗说就是真实感⼀定要强)。 低频要⽐较密度、⼒度和清晰度——⿎声是否清晰有⼒、下潜是否底⽓⼗⾜等都要考虑进去。
(2)层次感
声⾳是否有层次,是由多项因素决定的,声⾳层次分明的机器对细节的再现能⼒⾃然更强。
对⽐层次感,主要应该考虑三项(这也是⾳质的最低要求):声⾳是否清晰细腻、三频的质感和量感是否平衡、乐曲中最⼤⾳量与最⼩⾳量的落差。
(3)细节还原能⼒
⽐ 如 ⼈声的齿⾳、乐器的泛⾳等等。关于细节还原能⼒,还有“空⽓感”⼀说,这是个只能意会不能⾔传的微妙感觉,好象声⾳在传播到你⽿朵的途中带动的空⽓震动
其中响度、⾳⾼、⾳⾊可以在主观上⽤来描述具有振幅、频率和相位三个物理量的任何复杂的声⾳,故⼜称为声⾳“三要素”;⽽在多种⾳源场合,⼈⽿掩蔽效应等特性更重要,它是⼼理声学的基础。
1.响度 响度,⼜称声强或⾳量    ⼈⽿对响度的感觉有⼀个从闻阈到痛阈的范围。
⼈⽿对3kHz—5kHz声⾳最敏感,幅度很⼩的声⾳信号都能被⼈⽿听到,⽽在低频区(如⼩于800Hz)和⾼频区(如⼤于5kHz)⼈⽿对声⾳的灵敏度要低得多。通常200Hz--3kHz语⾳声压级以60dB—70dB为宜,频率范围较宽的⾳乐声压以80dB—90dB最佳。
正常⼈听觉的强度范围为0dB—140dB(也有⼈认为是-5dB—130dB)。固然,超出⼈⽿的可听频率范围(即频域)的声⾳,即使响度再⼤,⼈⽿也听不出来(即响度为零)。但在⼈⽿的可听频域内,若声⾳弱到或强到⼀定程度,⼈⽿同样是听不到的。
当声⾳减弱到⼈⽿刚刚可以听见时,此时的声⾳强度称为“听阈”。
鞋帮加工⼀般以1kHz纯⾳为准进⾏测量,⼈⽿刚能听到的声压为0dB(通常⼤于0.3dB即有感受)、声强为10-16W/cm2 时的响度级定为0⼝⽅。⽽当声⾳增强到使⼈⽿感到疼痛时,这个阈值称为“痛阈”。以1kHz纯⾳为准来进⾏测量,使⼈⽿感到疼痛时的声压级约达到140dB左右。
闻阈和痛阈是随声压、频率变化的。闻阈和痛阈随频率变化的等响度曲线(弗莱彻—芒森曲线)之间的区域就是⼈⽿的听觉范围。
通常认为,对于1kHz纯⾳,0dB—20dB为宁静声,30dB--40dB为微弱声,50dB—70dB为正常声,80
dB—100dB为响⾳声,110dB —130dB为极响声。
⽽对于1kHz以外的可听声,在同⼀级等响度曲线上有⽆数个等效的声压—频率值,例如,200Hz的30dB的声⾳和1kHz的10dB的声⾳在⼈⽿听起来具有相同的响度,这就是所谓的“等响”。⼩于0dB闻阈和⼤于140dB痛阈时为不可听声,即使是⼈⽿最敏感频率范围的声⾳,⼈⽿也觉察不到。
⼀般应特别重视加强低频⾳量。通常200Hz--3kHz语⾳声压级以60dB—70dB为宜,频率范围较宽的⾳乐声压以80dB—90dB最佳。
2.⾳⾼ ⾳⾼也称⾳调,表⽰⼈⽿对声⾳调⼦⾼低的主观感受。客观上⾳⾼⼤⼩主要取决于声波基频的⾼低,频率⾼则⾳调⾼,反之则低,单位⽤赫兹(Hz)表⽰  ⼈⽿对频率的感觉同样有⼀个从最低可听频率20Hz到最⾼可听频率别20kHz的范围。响度的测量是以1kHz纯⾳为基准,同样,⾳⾼的测量是以40dB声强的纯⾳为基准。实验证明,⾳⾼与频率之间的变化并⾮线性关系,除了频率之外,⾳⾼还与声⾳的响度及波形有关。⾳⾼的变化与两个频率相对变化的对数成正⽐。在⾳乐声学中,⾳⾼的连续变化称为滑⾳.  根据⼈⽿对⾳⾼的实际感受,⼈的语⾳频率范围可放宽到80Hz--12kHz,乐⾳较宽,效果⾳则更宽。
3.⾳⾊ ⾳⾊⼜称⾳品,由声⾳波形的谐波频谱和包络决定。声⾳波形的基频所产⽣的听得最清楚的⾳称为基⾳,各次谐波的微⼩振动所产⽣的声⾳称泛⾳。单⼀频率的⾳称为纯⾳,具有谐波的⾳称为
复⾳。每个基⾳都有固有的频率和不同响度的泛⾳,借此可以区别其它具有相同响度和⾳调的声⾳。声⾳波形各次谐波的⽐例和随时间的衰减⼤⼩决定了各种声源的⾳⾊特征,其包络是每个周期波峰间的连线,包络的陡缓影响声⾳强度的瞬态特性。声⾳的⾳⾊⾊彩纷呈,变化万千,⾼保真(Hi—Fi)⾳响的⽬标就是要尽可能准确地传输、还原重建原始声场的⼀切特征,使⼈们其实地感受到诸如声源定位感、空间包围感、层次厚度感等各种临场听感的⽴体环绕声效果。
有的开发者说,他们⾃⼰做了实时语⾳的功能,在⾃⼰的测试中觉得没有问题,在公司测得都很好,也通过了。上线后,收到很多⽤户反馈:为什么你的语⾳这么卡,为什么有回声,为什么会有杂⾳?。他们才发现这些问题其实并不是这么容易定位的,也不能像平时我们解BUG那样快速修复这样的问题。再追溯回来他们发现这背后跟很多⽹络相关的优化、⾳频底层的算法都有很⼤的关系,这⼀块他们⾃⼰也解决不了,所以就会出现⽐较尴尬的局⾯。
当我们有⼀个语⾳引擎在⼿⾥,我们已经调通了,出声了,到上线究竟还有多远?
⾳频很重要
测试你的语⾳引擎是基本可⽤的,客观评测软件是RMAA(RightMark Audio Analyzer;⽐较适合开发者⾃⼰去做,在上线前⾃测的⼀些⽅法
这么多复杂的问题,业界⼀般怎么处理?

本文发布于:2024-09-22 19:39:41,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/118609.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:问题   频率   系统   数据   响度   是否   定位   说明
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议