天天看點

荔枝FM技術團隊:當我們談論聲音時究竟應談論什麼

對聲音的深刻思考

對于我們來說,聲音是一種非常古老的東西,即可以用簡單的實體原理來描述,又充滿着一種神秘的文化;它什麼都可以解釋,但自身什麼都沒有;它既展現出一種存在感,又代表着一種虛無感。通過聲音我們就能吸收、存儲和溝通驚人的資訊量,并了解我們周遭的世界。從遠古時代猿猴對同伴大叫的一聲「有獅子」到現在我們用語音去溝通和社交,聲音一直在發揮在巨大的作用,聲音可以對資訊進行編碼,友善資訊和知識在我們之間迅速傳播,進而産生了文化;聲音也促使了人類的社交和合作,形成了共同信念和群體智慧。而當我們談論聲音的時候我們究竟在談論什麼?

對于大部多人來說,聲音的首要作用是作為一種媒體去傳遞内容。聲音确實提高了我們傳遞資訊的效率,也帶來了更加靈活的資訊擷取方式。但在很多時候,我們太過于重視資訊和内容,而忽視了聲音的内涵和本質,僅僅是把它當成工具。但荔枝FM卻有着不同的觀點,他們對聲音的了解超越了音頻内容,不僅重視内容,更重要的是對聲音本身的了解——聲音不僅僅是一個簡單的工具和管道,還是一種能量振動和情感共鳴,更是一種客觀世界的存在,而他們所做的是把聲音的本質還原出來。基于自身對聲音的了解、尊重和使用習慣去生産更加豐富的東西,去做一件更加宏大的事情。對此,荔枝聯合創始人魏雷說:「荔枝FM在重構人與聲音的親密關系。」通過這些工作讓更多人愛上聲音。

對聲音更加深刻的了解也形成了他們獨特的産品理念和技術基因,而這些一直貫穿于他們的整個創業過程,直到今天。

荔枝FM從2013年春節後正式的開始做,當時團隊考慮選擇哪個方向,面對文字、圖檔和視訊都有巨頭把持的網際網路行業,他們希望去發掘一個新的東西,荔枝CEO賴奕龍以前做過DJ,有着濃烈的電台情節,是以就确定了聲音這個細分領域。「當時的想法還是比較模糊,創始團隊參照《精益創業》的理念快速嘗試,最終确定了播客這個方向。」公司 CTO 丁甯回憶到。

當時荔枝FM做了一個公衆号,通過技術開發讓微信公衆号上面可以聽到podcast上面的播客,通過這種方式去驗證市場是否存在,短短三個月内公衆号就聚集了100萬粉絲。在經曆了微信公衆号的成功驗證之後,公司5月份開始開發App,精研技術的公司基因和工程師文化開始顯現。丁甯上司的技術團隊花了三個月的時間去研究蘋果的整個錄音系統并全部吃透,從最上層到最底層的Audiotoolbox。當時的技術架構參照了開源項目AmazingAudioEngine,然後在這層引擎上逐漸架構出自己的音頻引擎,因為它可以把蘋果音頻的這個架構封裝起來并抽象出模型,然後就可以在這個模型上快速擴充。丁甯說:「如果你直接面向Audiotoolbox去寫的話,你的整個代碼很過程化,沒法面向對象,後續擴充的時候就很麻煩。」

在第一版的開發中,荔枝技術團隊把音頻編碼後的資料全部放到了記憶體裡面處理,既滿足了需求又降低了開發難度。但随着産品的調整,必須把資料轉到磁盤上處理,最初為了提高效率使用了系統自帶的m4a格式編碼器,但是這個接口在系統記憶體比較低的情況下有些BUG,團隊又花了一個月時間去解決這個問題。其實,蘋果本身的音頻硬體和架構設計的很好,但由于内部音腔限制,是以在回放和聲音信噪比上都不夠理想。此後,技術團隊又補充了回聲抑制、降噪和聲音美化等功能。在解決了錄音子產品的技術難題之後,技術團隊又用差不多兩個月時間把播放器打磨成型,2013年10月份,錄音和播放全部打通,iOS版本正式上線,兩個月之後安卓版上線。整個過程一氣呵成,這與公司深厚的技術積累密不可分。

荔枝FM的技術亮點

回顧荔枝FM的技術研發過程,處處可以看到他們對技術的堅持和投入,同時也取得了衆多成果,而從今天來看荔枝的技術亮點,最顯著的便是音頻子產品、通訊、大資料和語音識别。

1)音頻子產品

荔枝FM的整個音頻邏輯主要是為了滿足使用者用手機用戶端進行節目錄制的需求。在用戶端方面,荔枝FM的音頻團隊進行了許多技術上的優化,比如加入EQ均衡和适量的混響,讓錄制者的聲音聽起來更加圓潤。還通過聲音降噪将錄制者周圍的背景噪音過濾掉。更加重要的是,這些技術适用于大部分手機,讓大部分手機的錄音效果都有所提升,但這其實是個很有挑戰的工作。「比如說iphone和安卓,它們的音頻架構就不一樣,」公司音頻引擎工程師JC說,「盡管有了EQ均衡、混響等音頻算法,但怎麼将這些與不同的系統結合起來其實是很難的。舉一個簡單的例子,iPhone的錄音延時就控制的很好,但安卓就不行,而且安卓不同機型間的差别也特别大。是以你就要根據它每次進來的資料的點數,去比對你的算法。我們的程式是自适應的,沒有寫死,是以每次程式會先檢測一下數是多少,對有什麼變化,然後再對它的變化進行調整。」通過這樣方式,将優化音頻算法應用到了不同的移動終端中。

荔枝FM在錄音端還實作了手機上的實時剪輯功能,「剪輯中有很大的技術難點,我們也是花了很多時間去研究。」JC說。尤其是荔枝FM的在錄音時可以添加背景音樂,這也增加了難點,錄音是一道音軌,背景音樂是另一道音軌,在錄音的時候如果要剪輯,一般會有兩種方案,一種是把兩個或多個音軌合成在一起編碼後存儲在磁盤上,在剪輯狀态下再解碼成采樣進行操作;另一種是在錄制的時候不編碼就存儲,在剪輯的時候直接操作采樣。但這兩種方案在剪輯時或最終合成時都會非常的緩慢。但是荔枝FM通過一個比較巧妙的方法直接對編碼後的檔案進行剪輯少去了再編碼解碼的過程,是以這個過程變得很快,更加重要的是在手機CPU和記憶體的情況下完成的。

由于使用者在錄音時會加入背景音樂,這就造成了另外一個問題。使用者的剪輯往往是根據自己的錄音去完成,這樣就可能會造成剪輯後的背景音樂不連續,而使用者對這種聲音中的不連續又格外敏感。是以,音頻團隊做到了不管是從哪個位置去剪輯背景音樂,剪完之後的音樂都會過度很自然,聽起來完全沒有不協調的感覺。是以,使用者在制作音頻節目時可以通過試聽和實時剪輯非常友善的完成節目制作。

荔枝FM中還擁有一個獨特的功能——繼續錄制,比如說使用者的一期節目比較長,在錄制時可能會中斷,按照之前的操作方式是先将已經錄完的部分進行儲存,下次再重新開啟一個新檔案錄制後面的部分,最後再用專業軟體将這些檔案拼接起來。這就造成了兩個問題,一是音頻拼接需要在電腦上完成,增加了播客的制作時間和門檻;二是需要解決這多個檔案連接配接處的自然過渡問題。但荔枝FM通過複雜的技術手段實作了繼續錄制功能,在一個已經儲存過的音頻内容上可以進行繼續錄制,完全跟上次接起來。在iPhone上解決這個問題難度較大,首先不能使用iPhone的存儲方案,而是完全換了一種方案。其次是形成一種新的編碼方案,讓多個檔案實作了無縫對接。

除了在手機用戶端,荔枝FM在伺服器端也有一些專門的算法對聲音進行優化。在使用者錄制完成上傳到伺服器後,伺服器重新對這些節目做統一編碼。除此之外,還加了一些獨特算法,其中一個是音量均衡。因為荔枝上的大部分内容都是ugc,使用者在錄制節目時會因為手機和使用習慣的不同,最後形成錄音的音量可能會産生很大差異,進而影響了使用者的收聽體驗。伺服器端的音量均衡算法可以讓所有内容的音量控制在一個較為合适的區間,做到了當使用者不同内容間切換時無需再去手動調節音量。

伺服器上的另外一個子產品就是可以對音頻檔案進行重新編碼并聲稱三種規則,超高清320k碼率(專業錄制,在荔枝網站上傳,而非移動用戶端錄制)、高清128k碼率和16k碼率,并實作了128k和16k之間的自由切換,當使用者從Wifi環境切換到移動流量後,就會自動切換到16k,播放依然很流暢。同時由于使用了特殊的高規格aac格式,在幫助使用者節省流量的同時還最大程度的保持了音質。

對于音頻子產品的未來開發方面,JC非常簡潔明了的進行了說明:「我們的使命就是讓人們愛上聲音,之後也是圍繞着這一點,比如說在手機端更加專業的編輯、聲音美化和讓聲音變得更加有趣的功能等。」

2)單通道多路複用的通訊方案

在解決了使用者手機端内容錄制的問題之後,公司技術團隊對用戶端和伺服器端的通信問題也進行了深度思考并形成了自己的一套成熟穩定的通信體系。移動網際網路對通信的要求非常高,因為它面臨的環境比網際網路要複雜的多,比如多信号之間切換的問題、外部環境的問題、功耗和續航的問題,等等。團隊後來發現,移動網際網路下對通信要求最高的就是即時通訊軟體,是以,荔枝FM的通信架構就是按照即時通訊來做的。

公司CTO丁甯表示:「這套通信體系可以概括為『單通道多路複用』,就是整個APP和伺服器之間就一條tcp連接配接。我們也正在申請專利。」http是多通道,一條通道就是一路,内部就是一個request-response close的過程,在這種情況下消耗會比較大,傳輸的資料量也會很大。而荔枝的解決方案是,在一個通道中實作多路傳輸,每個請求會虛拟出一路,在一個通道中多路并行傳輸,就像把所有的http請求都并入了一個TCP鍊路中。上層并不需要關注底層是怎麼實作的,也不需要關注是否會産生并發的問題,性能好不好,全部交給底層處理。而且上層使用起來他效果還是和http一樣簡單,他的整個模式實際上也是request-responds。保持一個TCP通道的好處就是系統開銷小、省電,内部網絡狀态一緻,可控性和靈活性更高,加上編譯型的傳輸資料結構,更是減少了資料傳輸量又加快了解析速度。

這種通訊技術即保持了使用的便利性又解決了長連接配接的問題。App都會有一個冷啟動的問題,其中一個解決方案就是推送,而推送一個關鍵名額就是長連接配接保活。而荔枝的通信技術既實作了http的優勢——上層很好用,同時又實作了和伺服器的長連接配接。「荔枝通過這種底層技術的掌握,傳導到上層就是我們的聊天、下載下傳、上傳在一個整體的協定結構裡全面實作,這和競品完全不一樣,」丁甯說:「其他産品通過接入第三方SDK保持長連接配接,并實作即時通訊部分功能,那他的整體性、穩定性、可控性和靈活性都會差很多,當然好處就是馬上能用。」

封裝在一個通道的另外一個優勢就是加密。荔枝希望所有資料都是整個鍊路加密的,隻有在這樣一個不可視的鍊路加密的環境,才可以發揮更多的想象力去做其他東西,尤其是一些和付費、金融等非常隐私的東西。

3)大資料

與其他音頻類産品不同,荔枝FM是一個UGC平台,有着超過150萬個播客,超過2000萬期節目的長尾内容,需要借助技術進行識别和個性化推薦,是以就需要大資料技術提供支撐。

和大資料的有關的第一個重要功能各種榜單,涉及到熱播榜、新進榜、男生榜、女生榜、目前熱播榜等。其次,哪個時段的哪些内容最受歡迎也會用資料去推薦出來,比如早上資訊類和英語學習類最大,下午脫口秀最多,晚上親子類比較多,深夜則是情感最,可以非常有規律的看到各個時間段使用者的情況。這些榜單的轉換率幾乎達到100%,差不多每個進來的人都會去點。

大資料的第二個應用就是為使用者添加标簽和粉絲畫像。目前荔枝對使用者标簽已經有10000個緯度,然後對其進行實時推薦。計算是分兩部分,一部分是根據曆史的離線去計算,然後一部分是實時計算,上來一個東西立即給使用者推薦。同時還會特别注重對效果的監控和測試,每調和一個參數、每上一個算法都可以實時看到它的效果,這樣就可以根據效果去做一些微調。此外,還會對主播粉絲的年齡、性别、地域、活躍程度等屬性進行分析。根據使用者所屬IP、地理位置和手機上已裝App等向其推薦内容。

大資料的第三個功能就是對使用者回報分析。這包括對完播率、複播率、訂閱數、點贊數、收藏數等行為的分析,給使用者推薦完這些播客之後再根據這些使用者回報進行調整,進而形成一個完整的、動态調整的推薦體系。

4)語音識别

荔枝應該是音頻創業公司中最早開展語音識别研究的,而啟動語音識别的初衷并不是因為人工智能近年的火爆,而是同樣因為他們對聲音的深入了解和思考。丁甯回憶說:「我在2014年有一個觸動,資訊類産品能夠快速做起來的原因是文本資訊可以被很容易的識别和分析,是以很容易做摘要、打标簽、抽中關鍵詞,然後再通過搜尋和精準定位傳遞給使用者。但回到音頻,卻發現這些我們完全做不到,我們根本不知道音頻裡面是什麼東西。我們是在做音頻,但卻完全徘徊在音頻的大門外。如果仔細想一下的話,這是一件很沮喪的事情。那如何打開這個通往音頻世界大門呢?肯定是要把内容識别出來。」

就這樣,荔枝開始了對語音識别技術的探索。技術團隊最初是與國内某家語音識别公司合作,但出現了兩個問題,一大是通訊量超大,對公司的機房和帶寬都帶來很大壓力。二是荔枝的許多音頻内容都是有背景音樂,合作方對于普通語音的識别率還可以,但對于加上背景音樂的音頻檔案識别率就非常低了。畢竟無法為荔枝獨特的音頻檔案進行訂制。

之後,荔枝開始自己組建團隊進行語音識别的研發,一位來自華南理工大學的博士後來上司該項目。目前,内部語音識别準确率已經達到70%。語種識别功能已經上線,準确率達到了90%。語種識别有兩個作用,第一,語種識别是語音識别的前提,要想提高準确率首先需要把語種識别出來,然後再進行語音訓練。第二,語種識别有助于進行内容稽核。

公司在研發語音識别技術時也是基于自身對聲音的了解,根據特有的産品和功能需求進行定制研發,比如說,會提升有背景聲音下的語音識别準确率。荔枝認為,語音識别的想象空間非常大,一個可以稽核問題,降低人力成本,提高效率;二是通過語音識别對音頻内容進行分析,進而進行更加智能的推薦;第三是有助于商業化,比如說可以識别出主播提到的商品。

技術和聲音的完美結合

丁甯說:「我覺得我們都是一群對技術有追求的人。」不管在産品初期對于iPhone語音結構的深入了解,還是之後從音頻子產品到通訊邏輯、再到伺服器算法的技術創新,以及基于大資料的職能推薦和對語音識别的率先布局,其中都能看到一條主線,就是用技術去踐行對聲音的深刻了解,讓使用者更好的去享受聲音,而也正是因為他們對聲音有着自己的價值判斷,也會促使他們有持續的動力通過各種技術來呈現聲音的種種功能,這是一種探尋聲音本源的人文情懷與追求效率和體驗的技術精神的完美結合。

荔枝FM這個聲音世界的極客玩家正在用自己的方式開辟一條通往聲音世界的入口,盡管從技術切入是一條艱難的荊棘之路,但是無可否認,隻有科學技術革新才能推動文化産業繁榮和人類文明進步。荔枝FM也一直堅信自己走在正确的道路上,一條光榮的荊棘路上。

繼續閱讀