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