a级片网址,www.一级毛片,日批国产,中文字幕日韩精品有码视频,黄色毛片免费网站,久久久精品午夜免费不卡,天堂福利视频

您當(dāng)前的位置是:  首頁 > 新聞 > 專家觀點(diǎn) >
 首頁 > 新聞 > 專家觀點(diǎn) >

靠“喂喂喂”來測試實(shí)時(shí)語音質(zhì)量靠譜嗎?

2016-11-02 09:48:16   作者:   來源:CTI論壇   評論:0  點(diǎn)擊:


\  

  陳若非,現(xiàn)在任職聲網(wǎng)Agora.io的音頻技術(shù),負(fù)責(zé)整個(gè)音頻技術(shù)架構(gòu)。在香港城市大學(xué)讀博士期間是音頻方面的諸多重要會議和期刊的主編。這位同學(xué)在以前的工作經(jīng)驗(yàn)里積累了大量關(guān)于音頻的降噪、混合、雙麥等等這方面的工作經(jīng)。
  大家下午好,很高興今天有機(jī)會和大家分享一下:讓我們的APP實(shí)現(xiàn)實(shí)時(shí)語音功能時(shí),我們需要做哪些測試?要怎么樣做這些測試才能保證上線后是穩(wěn)定沒有問題的。
  有的開發(fā)者說,他們自己做了實(shí)時(shí)語音的功能,在自己的測試中覺得沒有問題,在公司測得都很好,也通過了。上線后,收到很多用戶反饋:為什么你的語音這么卡,為什么有回聲,為什么會有雜音?。他們才發(fā)現(xiàn)這些問題其實(shí)并不是這么容易定位的,也不能像平時(shí)我們解BUG那樣快速修復(fù)這樣的問題。再追溯回來他們發(fā)現(xiàn)這背后跟很多網(wǎng)絡(luò)相關(guān)的優(yōu)化、音頻底層的算法都有很大的關(guān)系,這一塊他們自己也解決不了,所以就會出現(xiàn)比較尷尬的局面。所以,希望在今天的演講之后可以給大家一些更豐富的手段,幫助大家去評估一下自己手里的音頻引擎效果是怎么樣的。
  首先,我們來講講實(shí)時(shí)語音的發(fā)展。我相信大家對實(shí)時(shí)語音這樣的功能應(yīng)該比較了解。實(shí)時(shí)語音發(fā)展已經(jīng)有幾十年的歷史,近幾年越來越多的APP提供了這個(gè)功能,包括微信、陌陌。越來越多的用戶愿意使用實(shí)時(shí)語音功能,從側(cè)面說明一個(gè)問題,實(shí)時(shí)語音這個(gè)功能已經(jīng)達(dá)到可以商業(yè)化的地步了。
  這背后,我們這兩年網(wǎng)絡(luò)基礎(chǔ)設(shè)施的升級,智能終端設(shè)備的更新?lián)Q代,包括現(xiàn)在流行的WebRTC技術(shù)的快速發(fā)展,都為實(shí)時(shí)語音野蠻省長提供非常肥沃的土壤。我們非常高興地看到,除了社交之外,游戲、直播、在線醫(yī)療、在線教育這些行業(yè)對實(shí)時(shí)語音需求都是非常強(qiáng)烈。
  那么問題來了,當(dāng)我們有一個(gè)語音引擎在手里,我們已經(jīng)調(diào)通了,出聲了,到上線究竟還有多遠(yuǎn)?這個(gè)問題其實(shí)是見仁見智的。我們跟一些開發(fā)者打交道下來,聽到比較多的兩種聲音是:我現(xiàn)在就想做視頻應(yīng)用,看臉的世界,出聲就可以;還有一種,我覺得音頻很重要,但是我不知道怎么測?我要如何來做測試才能保證上線后的穩(wěn)定?要回答這兩個(gè)問題我們首先來看一下我們實(shí)時(shí)語音到底有哪些特征?
\
  實(shí)時(shí)語音到底有哪些特征?
  首先,實(shí)時(shí)語音的完備性要求非常高。我們不可否認(rèn)語音是溝通的本質(zhì),是信息的載體。如果我們在通話中語音信息丟失了,這個(gè)對話是根本不能繼續(xù)下去的。這實(shí)際上說明了,我們首先對實(shí)時(shí)語音的完備性要求是非常高的,而且用戶對這部分的音頻問題容忍度是非常低的。
  第二,實(shí)時(shí)語音其實(shí)是隨機(jī)性很大。我們要做基于互聯(lián)網(wǎng)的實(shí)時(shí)語音,也決定了我們繞不開網(wǎng)絡(luò)的丟包、延時(shí)的問題,所以這部分又決定了實(shí)時(shí)語音其實(shí)是隨機(jī)性很大的。
  第三,問題的多元性。這個(gè)問題怎么解釋?舉個(gè)例子,大家平時(shí)有人會給你報(bào)你的語音卡頓,到底是什么原因?你首先想到的肯定是網(wǎng)絡(luò),網(wǎng)絡(luò)會卡頓。其實(shí)還有別的原因會引起卡頓,比如設(shè)備CPU負(fù)荷很高時(shí),錄放音調(diào)度有問題,也會導(dǎo)致聲音的卡頓。更隱性的問題,比如回聲消除,兩個(gè)人同時(shí)說話時(shí),這邊開著外放,收回去的時(shí)候兩個(gè)聲音混在一起,過程中會有損傷,造成斷續(xù)。通過這些例子,可以想見,實(shí)時(shí)語音的問題很難去定位。
  最后,對錄放音設(shè)備的依賴。我們每個(gè)人都有自己的嘴和耳朵,設(shè)備也一樣,有揚(yáng)聲器和麥克風(fēng),而且它還有更多的外設(shè)。所以,其實(shí)最后的聽感體驗(yàn)很大程度受到錄放音設(shè)備的制約,這也決定了音頻的問題其實(shí)是碎片化的。
  我們可以看到,這四個(gè)問題其實(shí)都是很難搞的問題,這也決定了用喂喂喂或者簡單幾次測試不可能很好覆蓋整個(gè)音頻測試。
  來總結(jié)一下,我們這里把影響語音質(zhì)量的因素分為三類:
  網(wǎng)絡(luò)問題:丟包,或者抖動(dòng),都會導(dǎo)致聽感滯后或者斷續(xù);
  設(shè)備問題:很突出,在一些低端的安卓機(jī)上,聲學(xué)設(shè)計(jì)并不理想。揚(yáng)聲器之間的耦合很大,或者揚(yáng)聲器的非線性很大,導(dǎo)致你的算法不能很好貫通在上面,導(dǎo)致聽感上有一些卡頓、毛刺的問題。
  物理環(huán)境:比如我在一個(gè)很吵的環(huán)境和你打電話,或者我在很小的房間跟你打電話感覺是不一樣的;還有遠(yuǎn)場拾音,比如做電視應(yīng)用,必須要在2米以外收音,這個(gè)時(shí)候麥克風(fēng)的拾音效果決定了音頻聽到的體驗(yàn)。
  這么多復(fù)雜的問題,業(yè)界一般怎么處理?
\
  手機(jī)公司會有很大的消聲室,是用來規(guī)避一些不確定外界聲源的影響。還需要有人工頭、人工嘴和人工耳做高保真的放音和收音,四周有高保真的音響放出自由場的噪聲源,模擬不同網(wǎng)絡(luò)狀況。會測試回聲,語音在干凈或噪聲環(huán)境下的得分,雙降的性能。每個(gè)手機(jī)出場之前都會做這樣的測試。
  但這一般開發(fā)者來說門檻很高,這樣一套設(shè)備很貴,我們有沒有更經(jīng)濟(jì)合理的方法做測試?
  我們也總結(jié)了一下,聲網(wǎng)在實(shí)踐中覺得比較適合開發(fā)者自己去做,在上線前自測的一些方法,這里也按我們之前提到的三個(gè)歸類,網(wǎng)絡(luò)、設(shè)備和物理環(huán)境講一下。
  首先,網(wǎng)絡(luò)部分。有TC跟NetEM,都可以模擬,如果具體步驟不清楚的同學(xué),可以查看這個(gè)教程。
  你還在靠“喂喂喂”來測語音通話質(zhì)量嗎,看完這篇文章你就能掌握正確姿勢
  這里面可能不能涵蓋所有的丟包,但是基本上也能測到語音在不同丟包下的表現(xiàn),可以測到引擎的極限在哪里。聲網(wǎng)的引擎基本現(xiàn)在做到在TC下,30%的丟包是無感的,70%的丟包可以正常的通話。
  還有一個(gè)比較重要的是:跨運(yùn)營商的測試。這一點(diǎn)很多客戶是不重視的,自己在公司內(nèi)用P2P測覺得很好,一上線就有很多問題。在中國,跨運(yùn)營商的丟包,或者2G、3G、4G移動(dòng)網(wǎng)絡(luò)下會有很多問題,建議大家在這方面做足夠測試再上線。
  其次,設(shè)備的問題。大家在一些平板電腦測試覺得聲學(xué)很好,調(diào)的也很好,底層也有算法。但是,到安卓之后就變得非常的麻煩。很多低端的安卓機(jī),底層錄音的通路沒有調(diào)好,底噪很大。而且,聲學(xué)設(shè)計(jì)不夠好,有很多非線性的問題需要適配。而這些問題如果只是在一個(gè)比較高端的機(jī)器上測,可能是不會體現(xiàn)的。所以,如果你的目標(biāo)用戶中有很多這樣的機(jī)型,那么一定要在測試中把這一塊覆蓋好。同時(shí),在聽筒、耳機(jī)、外放、藍(lán)牙,也需要去測,這些都是會影響用戶的體驗(yàn)的細(xì)節(jié)。
  第三,物理場景。我們其實(shí)沒有辦法覆蓋非常多的場景,建議去下載一些語音降噪的序列、噪聲的序列,是免費(fèi)的,可以在不同的信噪比情況下用來測試。遠(yuǎn)場拾音,只要測一下不同的說話距離就能感覺到不同的體驗(yàn)。
  我相信通過這三步的測試,你的語音引擎是基本可用的。
  另外,稍微講一下一些技術(shù)細(xì)節(jié)。
\
  我們常說的3A引擎是指:回聲消除、降噪和自動(dòng)增益控制,這是所有音頻引擎中必須有的模塊。在測回聲時(shí),需要留意降完回聲之后殘留的程度;雙講透明度,就是兩個(gè)人同時(shí)說話的時(shí)候會有多少聲音可以透過去;穩(wěn)定性是指在安卓上這些CPU比較高的情況之下可以穩(wěn)定運(yùn)行的一個(gè)時(shí)間,收斂時(shí)間。 降噪,我降噪完聲音的殘留噪聲的程度和收斂時(shí)間。自動(dòng)增益控制關(guān)注兩個(gè)點(diǎn),第一收音距離多遠(yuǎn),第二,你把聲音推大,雜音也會推大,這個(gè)部分有沒有做特殊的處理?不然有人會說,你的這個(gè)聲音是很大,但是背景音一起推起來了,這時(shí)需要一些算法來做的更好。如果在1米、2米情況下不用AGC聲音已經(jīng)非常小,這里面必須有算法支持它。
\
  上圖的三個(gè)算法也是比較特殊場景下的算法,聲網(wǎng)在這三塊也做了比較多的工作。
  可懂度增強(qiáng):如果我在很噪雜的環(huán)境,對方傳過來的聲音是不吵的,但是我聽著還是很累,因?yàn)槲遗赃呌泻芏嘧屛曳中牡穆曇。這個(gè)時(shí)候,我們需要去評估現(xiàn)在的環(huán)境下的有多噪雜,從而調(diào)整下行的信號讓你聽得更清楚。
  盲源分離:指的是我們剛才的降噪說得是平穩(wěn)噪聲,對應(yīng)在數(shù)學(xué)上也是用統(tǒng)計(jì)模型來做。但是在非平穩(wěn)信號下,可能需要有多麥技術(shù)來定位主講人聲源在哪,主要收主講人的聲音,其他的聲音屏蔽。
  嘯叫抑制:真實(shí)環(huán)境中并不是很多。在做音頻測試時(shí),如果兩個(gè)手機(jī)開著外放,你就會聽到很尖銳的雜音一直響。這怎么辦?其實(shí)很簡單,只要把一臺插上耳機(jī),把回環(huán)的通路打斷就不會叫。聲網(wǎng)自己做了嘯叫抑制的模塊,兩個(gè)手機(jī)都外放,即使不插耳機(jī),我們也會把檢測到的尖銳雜音自動(dòng)壓下來。
  如果做的應(yīng)用是比較特殊的場景,比如直播、游戲,我們還有特殊的點(diǎn)需要注意。
\
  做直播,推流基本用44.1K,但聲音有效采樣取到多少才是真正重要的。左圖是32K的采樣,右圖那個(gè)雖然是44.1K的聲源,但其實(shí)有效頻率是8K,實(shí)際聽到的聲音會變悶的。
  ASMR,就是用立體聲錄音去給聽眾聽到空間感的音頻。那聲網(wǎng)在手機(jī)平臺上,第一個(gè)做到立體聲錄音和播放。這意味著,主播可以現(xiàn)在拿著這個(gè)立體聲的設(shè)備走到街上,一輛車開過去,其實(shí)直播的聽眾戴了耳機(jī)就能感覺到從左到右的效果。
  再講一下游戲,很特殊的場景。拿一個(gè)槍戰(zhàn)類的游戲舉例,在3D環(huán)境里可以聽到周圍有隊(duì)友開槍,可以聽到哪邊交火。如果玩家開了實(shí)時(shí)語音,自己開著外放。那么玩家開槍的聲音通過他的外放再被收回去,這部分回聲消除由于沒有參考信號就做不了。這個(gè)聲音傳過去會影響對方的判斷,直接降低玩家的游戲體驗(yàn)。
  上線只是一個(gè)開始,上線之后,語音的碎片化問題還會不斷出現(xiàn)。那么就需要做兩方面的統(tǒng)計(jì)。
\
  全局監(jiān)控。來反饋全局質(zhì)量,是不是大部分用戶都比較好?上圖是聲網(wǎng)做的一個(gè)統(tǒng)計(jì),反應(yīng)每天使用用戶大概比例,用什么網(wǎng)絡(luò)什么系統(tǒng),音頻視頻打分如何,丟包率如何?如果你不是使用聲網(wǎng)的服務(wù),你自己也需要做這樣一套系統(tǒng),來改進(jìn)服質(zhì)量 。
  個(gè)例分析。全局反饋良好,但依然有用戶報(bào)問題,我的聲音聽不到怎么辦?聲網(wǎng)在實(shí)踐當(dāng)中做了這樣一套系統(tǒng),可以根據(jù)用戶ID去查詳細(xì)的通話信息:包括一些碼率、CPU的情、音頻錄音大小可以自己看得到,這樣子就能定位問題。
  以下是現(xiàn)場提問
  提問:我問一個(gè)關(guān)于降噪的問題,你剛才的演示PPT里面沒有很清楚,降噪之后背景噪聲是消除越干凈越好?還是應(yīng)該是有一定的率?
  陳若非:降噪有一個(gè)很大的問題,你壓得越多噪聲越低,語音失真也越大,這是必然的。如果你有一個(gè)噪音,失真率很小,如果壓得很多,非常干凈,這個(gè)聲音頻率上會特別高,聽起來尖尖的,不是很舒服。所以這需要你在實(shí)踐中自己去調(diào)到一個(gè)你認(rèn)為最好的點(diǎn),沒有絕對,我不知道這樣回答有沒有回答你的問題?
\

專題

灌阳县| 焦作市| 马鞍山市| 阜宁县| 涪陵区| 新兴县| 宁德市| 桂阳县| 普洱| 德格县| 台东市| 清水河县| 莒南县| 万载县| 灵山县| 乳源| 曲水县| 吉安市| 渭南市| 本溪市| 民丰县| 中宁县| 承德市| 郯城县| 阿拉善盟| 化州市| 嘉禾县| 迭部县| 资兴市| 哈巴河县| 炉霍县| 凯里市| 郎溪县| 阿克陶县| 会泽县| 香河县| 桂平市| 汝城县| 巴马| 阳东县| 灯塔市|