您當(dāng)前的位置是:  首頁 > 新聞 > 文章精選 >
 首頁 > 新聞 > 文章精選 >

AI 在 RTC 中的四大技術(shù)應(yīng)用方向

2018-12-19 10:19:47   作者:   來源:聲網(wǎng)Agora   評(píng)論:0  點(diǎn)擊:


  大到無人駕駛、智能物流,小到人們出國旅游手上拿著的翻譯機(jī),AI 早已從曾經(jīng)的天馬行空變得觸手可及。AI 也成了很多公司未來的核心戰(zhàn)略,并應(yīng)用到了產(chǎn)品中。其實(shí),在 RTC 領(lǐng)域亦是如此。
  提到 RTC 中的 AI,你可能還會(huì)記得今年 RTC 領(lǐng)域中的熱門話題超分辨率。前幾天,據(jù)說某款手機(jī)已經(jīng)將其應(yīng)用于調(diào)節(jié)照片遠(yuǎn)景放大后的清晰度上。我們也曾有不止一位演講人,曾在 RTC 2018 中分享過將超分辨率應(yīng)用于實(shí)時(shí)音視頻中的研究。不過,超分辨率只是 AI 在 RTC 中的一個(gè)應(yīng)用而已。
  概括來講,目前 AI 與 RTC 的結(jié)合點(diǎn)有四個(gè):
  • 語音分析:使用機(jī)器學(xué)習(xí)分析,將實(shí)時(shí)音視頻中的語音轉(zhuǎn)錄為文本、字幕。
  • 語音機(jī)器人:在對(duì)話框中與用戶交互的語音機(jī)器人,輸入與輸出皆通過語音,比如Siri、Alexa、Cortana等。
  • 計(jì)算機(jī)視覺:處理視頻,分析和理解視頻中的內(nèi)容。
  • RTC 優(yōu)化:用于提高服務(wù)質(zhì)量或性能的機(jī)器學(xué)習(xí)算法模型。
  1、語音分析(Speech Analytics)
  如果你對(duì)今年 Google I/O 有印象,你可能還會(huì)記得官方曾經(jīng)做過一段演示,YouTube 可以根據(jù)視頻的圖像和聲音,將視頻內(nèi)容翻譯并以字幕形式顯示出來。而且,Google 在語音識(shí)別、分析方面做了優(yōu)化,即使視頻中口音模糊,也能根據(jù)視頻內(nèi)容進(jìn)行智能翻譯,最終顯示為字幕。應(yīng)用于其中的一個(gè)重要技術(shù)方向就是語音分析。
  在 RTC 中,語音分析主要的應(yīng)用形式包括電話中心智能語音交互、語音轉(zhuǎn)文本、翻譯等等。語音分析是一個(gè)相對(duì)成熟的技術(shù)應(yīng)用方向,也是一個(gè)多學(xué)科應(yīng)用于實(shí)際的范例。它涉及了信號(hào)處理、模式識(shí)別、概率論和信息論、發(fā)聲機(jī)理和聽覺機(jī)理、深度學(xué)習(xí)等。就像 Google 所做的,我們可以將它應(yīng)用于自己的視頻會(huì)議、視頻通話、直播連麥等一系列實(shí)時(shí)音視頻場(chǎng)景中。如果想快速實(shí)現(xiàn),市場(chǎng)上有很多 API 可以幫助到你;如果你的團(tuán)隊(duì)技術(shù)實(shí)力雄厚,那么也有幾個(gè)比較著名,也比較老的開源工具可以使用。
  業(yè)界有不少公司都能提供語音分析功能,例如國內(nèi)的訊飛、百度、搜狗等,再例如 Google Speech API 和 Facebook 推出的 wav2letter 等。Agora 開發(fā)者也完全可以基于 SDK 的接口與這些語音識(shí)別、分析服務(wù)結(jié)合,實(shí)現(xiàn)創(chuàng)新場(chǎng)景。
  如果自研,那么也有不少可以參考的算法模型。例如這4個(gè)“歷史悠久”的語音識(shí)別相關(guān)的開源項(xiàng)目與非開源項(xiàng)目:HTK、CMU Sphinx、Julius、Kaldi。我們逐一簡(jiǎn)單介紹下。
  • HTK首先 HTK 并不是開源項(xiàng)目,它是由劍橋大學(xué)工程學(xué)院(Cambridge University Engineering Department ,CUED)的機(jī)器智能實(shí)驗(yàn)室于1989年開發(fā)的,用于構(gòu)建CUED的大詞匯量的語音識(shí)別系統(tǒng)。HTK 主要包括語音特征提取和分析工具、模型訓(xùn)練工具、語音識(shí)別工具。1999年 HTK 被微軟收購。2015年 HTK 發(fā)布了3.5 Beta 版本,也是目前最新的版本。
  • CMU-SphinxCMU-Sphinx 是卡內(nèi)基-梅隆大學(xué)(CarnegieMellon University,CMU)開發(fā)的一款開源的語音識(shí)別系統(tǒng)。它包括了一系列語音識(shí)別器和聲學(xué)模型訓(xùn)練工具,被稱為第一個(gè)高性能的連續(xù)語音識(shí)別系統(tǒng)。Sphinx 的發(fā)展也很快,Sphinx4 已經(jīng)用 Java 改寫,所以適合嵌入到Android平臺(tái)。
  • JuliusJulius 是日本京都大學(xué)和 Information-technology Promotion Agency 聯(lián)合開發(fā)的一個(gè)實(shí)用高效雙通道的大詞匯連續(xù)語音識(shí)別引擎。Julius 通過結(jié)合語言模型和聲學(xué)模型,可以很方便地建立一個(gè)語音識(shí)別系統(tǒng)。Julius 支持的語言模型包括:N-gram模型,以規(guī)則為基礎(chǔ)的語法和針對(duì)孤立詞識(shí)別的簡(jiǎn)單單詞列表。它支持的聲學(xué)模型必須是以分詞為單位,且由HMM定義的。HMM 作為語音信號(hào)的一種統(tǒng)計(jì)模型,是語音識(shí)別技術(shù)的主流建模方法,正在語音處理各個(gè)領(lǐng)域中獲得廣泛的應(yīng)用。Julius 由 C 語言開發(fā),遵循GPL開源協(xié)議,能夠運(yùn)行在 Linux、Windows、Mac:OS X、Solaris 以及其他Unix平臺(tái)。Julius 最新的版本采用模塊化的設(shè)計(jì)思想,使得各功能模塊可以通過參數(shù)配置。
  • KaldiKaldi 是2009年由 JohnsHopkins University 開發(fā)的,剛開始項(xiàng)目代碼是基于HTK進(jìn)行的開發(fā),現(xiàn)在是 C++ 作為主要語言。Kaldi的維護(hù)和更新非常及時(shí),幾乎每一、兩天就有新的 commits,而且在跟進(jìn)學(xué)術(shù)研究的新算法方面也更加快速。國內(nèi)外很多公司和研究機(jī)構(gòu)也都在用 Kaldi。
  上述幾種語音識(shí)別開源代碼是基礎(chǔ)的開源版本,基于這些版本誕生了不少衍生的版本,比如 Platypus、FreeSpeech、Vedics、NatI、Simon、Xvoice、Zanzibar、OpenIVR、Dragon Naturally Speaking等。
  2、語音機(jī)器人
  現(xiàn)在很多呼叫中心都引入了 IVR(互動(dòng)式語音應(yīng)答),顧客可在任何時(shí)間打電話獲取他們希望得到的信息,當(dāng)遇到無法解決的問題時(shí)才轉(zhuǎn)入人工坐席。它可以提高服務(wù)質(zhì)量、節(jié)省費(fèi)用。
  但它自身也存在著問題。你可能也遇到過,有時(shí)候打給一個(gè)客戶中心,語音提供了多個(gè)選項(xiàng)讓你選擇,可當(dāng)你聽到第五個(gè)之后,就忘了之前的選項(xiàng)都有什么,以至于還要再聽一遍。所以很多呼叫中心會(huì)把菜單設(shè)計(jì)成更少選項(xiàng)更多層級(jí)。但這會(huì)讓用戶的交互過程變得更長。
  所以語音機(jī)器人開始成為呼叫中心的新選擇(也可能有人管它叫智能客服或其它名字)。用戶只需要說出想要什么,它就能根據(jù)關(guān)鍵信息篩選出用戶想要的信息,就好像電話那頭多了一個(gè) Siri。
  當(dāng)然,Siri 也是是除了呼叫中心以外,語音機(jī)器人的另一種應(yīng)用形式。目前已經(jīng)有很多公司都推出了相應(yīng)的產(chǎn)品或接口(如上圖所示)。不過,要建立一個(gè)能與人自然交流的語音機(jī)器人,從架構(gòu)、音頻處理到算法模型的訓(xùn)練等,需要面對(duì)很多問題:
  • 處理噪音
  • 處理方言和自定義詞匯表
  • 語音驗(yàn)證
  • 處理延遲
  • 使用 SSML 進(jìn)行更自然的語音合成
  • 模型訓(xùn)練
  3、計(jì)算機(jī)視覺
  現(xiàn)在計(jì)算機(jī)視覺的應(yīng)用應(yīng)該已經(jīng)很常見了,例如:
  • 面部識(shí)別
  • 物體檢測(cè)
  • 手勢(shì)識(shí)別
  • 情感分析
  我們?cè)谀瓿醯臅r(shí)候分享過兩篇文章,講述了如何結(jié)合 WebRTC 與 TensorFlow 實(shí)現(xiàn)物體識(shí)別,這是一位開發(fā)者的實(shí)驗(yàn)。大體過程是,每秒將視頻圖像經(jīng)由 HTTP 傳輸?shù)椒⻊?wù)器端,然后通過服務(wù)器端的機(jī)器學(xué)習(xí)算法模型處理后得出檢測(cè)結(jié)果,再反饋給本地,具體代碼可以看我們之前的文章。
  不過這個(gè)實(shí)驗(yàn)仍然存在很多的局限,如果圖像質(zhì)量過高,會(huì)需要更多傳輸、處理的時(shí)間,這會(huì)影響檢測(cè)的實(shí)時(shí)性。所以,后來有人提出了可以在本地進(jìn)行圖像識(shí)別。
  上圖是一個(gè)基本架構(gòu),如果你感興趣,也可以嘗試一下。它利用了 google 的 AIY 硬件工具來運(yùn)行 DNN。也就是說,當(dāng)你采集到視頻之后,可以在本地進(jìn)行處理,那么就無需擔(dān)心圖像識(shí)別的實(shí)時(shí)性問題了。
  4、對(duì) RTC 的優(yōu)化
  利用 AI 可以在實(shí)時(shí)音視頻方面做很多事情,例如利用超分辨率來提升實(shí)時(shí)視頻中模糊圖像的細(xì)節(jié),給用戶呈現(xiàn)更高清的視頻效果,提高視覺體驗(yàn);同時(shí),由于網(wǎng)絡(luò)傳輸線路上有丟包,接收的數(shù)據(jù)有失真,所以 AI 也被用來做算法補(bǔ)償,提升傳輸質(zhì)量。
  超分辨率是通過深度學(xué)習(xí)來提高其分辨率,進(jìn)而改善實(shí)時(shí)視頻圖像質(zhì)量的技術(shù)。為什么需要這項(xiàng)技術(shù)呢?因?yàn)楸M管現(xiàn)在用戶都在高分辨率模式下獲取圖像,但在實(shí)時(shí)傳輸過程中,視頻編碼器可能會(huì)降低分辨率,以匹配可用帶寬和性能限制。由于這個(gè)處理機(jī)制,導(dǎo)致圖像質(zhì)量通常會(huì)低于實(shí)際拍攝的質(zhì)量。而超分辨率的目的就是將視頻質(zhì)量恢復(fù)到原始狀態(tài)。
  超分辨率在整個(gè)實(shí)時(shí)音視頻傳輸過程中屬于后處理中的一步。視頻源經(jīng)過編碼在網(wǎng)絡(luò)上傳輸,解碼器收到后經(jīng)過解碼出來是一個(gè)相對(duì)模糊的圖像,經(jīng)過超分辨率處理把細(xì)節(jié)提升或者放大,再顯示出來。
  現(xiàn)在很多的實(shí)時(shí)視頻場(chǎng)景都發(fā)生在移動(dòng)設(shè)備上,所以對(duì)于一個(gè)深度學(xué)習(xí)算法模型來講,需要模型體量盡量要小,這就需要面對(duì)三個(gè)主要的挑戰(zhàn):
  • 模型能夠?qū)崟r(shí)運(yùn)行于移動(dòng)設(shè)備上,且盡量降低功耗,避免引起發(fā)熱等問題。
  • 模型小,但性能要好,可以得到足夠好的結(jié)果。
  • 訓(xùn)練要能夠基于比較合理數(shù)量的數(shù)據(jù)集。
  我司的首席科學(xué)家鐘聲曾在 上海的 DevFest 活動(dòng)和美國的 Kranky Geek 上分享過相關(guān)話題的演講。如果你希望深入了解,可以查看我們過去的分享。
  除了超分辨率,開發(fā)者們還可以利用無監(jiān)督學(xué)習(xí)來分析通過 WebRTC 的RTCStats接口收集到的數(shù)據(jù),從而來確定影響通話質(zhì)量的原因。也可以用 TensorFlow 來分析并規(guī)范化 MOS 數(shù)據(jù)。
  上圖所示是一個(gè)常規(guī)的降噪算法的處理邏輯,但在以后,Mozilla 曾推出過一個(gè) RNNoise Project,利用了深度學(xué)習(xí),幫助 WebRTC 用戶,特別是在嘈雜環(huán)境中進(jìn)行多方通話的用戶實(shí)現(xiàn)更好的降噪效果。他們也在官方提供了一個(gè) Sample,與 Speexdsp 的降噪效果進(jìn)行對(duì)比。在 Sample 中,他們模擬了人在馬路旁、咖啡館中、車上的通話效果,然后用不同的方式進(jìn)行降噪處理。你會(huì)明顯聽出,通過 RNNoise 降噪后,無人說話時(shí)幾乎聽不到噪聲,而在有人說話時(shí),還是會(huì)有輕微的噪音摻雜進(jìn)來。如果你感興趣,可以去搜搜看,體驗(yàn)一下。你可以在 xiph 的 Github 中找到它的代碼。盡管這只是一個(gè)研究項(xiàng)目,但提供了一種很好的改進(jìn)思路。
  盡管舉了這么多的研究案例與開源項(xiàng)目,但 AI 在 RTC 行業(yè)的應(yīng)用還只是剛剛開始。
【免責(zé)聲明】本文僅代表作者本人觀點(diǎn),與CTI論壇無關(guān)。CTI論壇對(duì)文中陳述、觀點(diǎn)判斷保持中立,不對(duì)所包含內(nèi)容的準(zhǔn)確性、可靠性或完整性提供任何明示或暗示的保證。請(qǐng)讀者僅作參考,并請(qǐng)自行承擔(dān)全部責(zé)任。

專題