線上 KTV 現狀
近年來,唱鴨、鯨鳴、回森、小森唱等多款產品競相出現,激勵金、高投入等現象也很常見,各平臺都在搶佔使用者市場方面牟足了勁兒,一份份財報、資料圖和全線飈紅的 K 線,也給投資人們的投入帶來了可觀的回報。根據第三方資料研究機構比達諮詢在 2021 年 4 月底釋出的相關資料顯示,3 月份全民 K 歌的活躍使用者數在行業中大幅領先,月活使用者數達到 13543.8 萬人,唱吧位列第二,月活達到 3037.3 萬人,此外,酷我 K 歌、天籟 K 歌和唱鴨分列第 3-5 位,月活使用者均超 300 萬人。
線上 K 歌的玩法層出不窮,但是線上合唱這一場景卻鮮有平臺去嘗試。這主要是因為目前各廠商的技術能力在合唱這一場景下,還很難給使用者帶來極致的體驗。
聲臨其境的難點和合唱困局
為了探索線上合唱這一場景,我們用最簡單的 RTC 服務,搭建了一套未定製化的合唱 Demo 來測試效果。這套系統的簡單說明如下圖。
演唱者 A 自主播放伴奏,RTC 引擎把幹聲和伴奏混合後發到演唱者 B 和觀眾。此時演唱者 B 聽到 A 的歌聲和伴奏後,合著節奏一起唱。但這個流程有幾個明顯的問題亟待解決:
- 演唱者之間的通訊延遲過大,A 聽到 B 的聲音比自己的音樂要慢很多
- 觀眾聽到 A 的聲音在伴奏節拍上,但 B 的聲音卻比伴奏慢
- 歌詞無法同步傳遞
- 演唱者和非演唱者都沒有置身 KTV 包廂的沉浸感
- 參與合唱的使用者的聲音會被互相打斷
抽絲剝繭的找對策
為了完善這個場景,我們對上面測試中遇到的問題一一進行分析,並在我們的實時合唱方案中予以解決,具體內容見下表:
網易雲信的實時合唱方案
整體結構
降低延遲到極限
- 雲信的 WE-CAN 傳輸網路優化了傳輸延遲。
對於距離較近的使用者,We-Can 的 2.0 排程系統能夠進行智慧排程,保證使用者能到達同一個機器、機房或儘量近的機房,這樣流就完全不用走公網,在機房內完全解決,達到極致的低延遲效果。
對於不同的運營商,通過智慧路由的選擇,能夠保證網路穩定性達到 99.99%,延遲<75ms。
- 在端上對音訊的整個 pipeline 做了大量的優化,使平均的採集播放、訊號處理延遲降低至52ms。
- 在特定網路下,這些工作可以保障在當前網路條件下得到最低的通訊延遲,而由於通訊延遲的客觀存在。我們需要用其他的方案來減少延遲對於合唱體驗的影響。
通過精確同步伴奏來減少延遲對於體驗的影響
為了解決演唱者雙方聽到的聲音延遲過大的問題,我們實現了基於伺服器精準同步的 NTP 修正值,給整個業務體系提供一個精準的時間戳。當合唱發起時,參與合唱的兩端精準開始播放伴奏(同步精度達 10ms 級),雙方各自跟著伴奏唱歌,不再需要等對方的伴奏,使整體合唱延遲對於使用者體驗的影響降低。
無弱網時多臺伴奏同步性測試結果:
加入弱網時:
與傳統的合唱方案不同的是,雲信提出合唱方案需要以伴奏為基準。由於傳輸延遲的客觀存在,這是不可避免的。但通過精確的伴奏起始同步,來儘量降低延遲,這對於演唱雙方的體驗升級是切實可行的。為此我們基於現有的方案(音訊全鏈路端到端延遲在正常網路約 100ms)做了主觀測試:
在存在大量弱網的條件下,使用者體驗依然能夠得到保障。
觀眾端的同步模組
由於參與合唱的多位使用者的網路情況各不相同,其音訊資料到達不同觀眾的延遲也各不相同,雲信創新的運用了相對時間戳,使多位合唱者的幹聲主動對齊。這能讓頻道中的觀眾和非參與合唱的上麥者聽到的聲音和幾位主唱保持一致,完整地復現 KTV 包廂場景。
合唱端將自己的幹聲標記伴奏的相對時間戳,隨音流包一起傳送,觀眾端通過定製的 buffer 演算法、主動對齊策略使演唱者的聲音和伴奏嚴格對齊。該方案可以在主唱和觀眾之間存在各種複雜的網路情況時,保證觀眾端依然可以還原主唱的歌聲和節奏。而通過修改快慢放策略,加快了多個音訊流的對齊時間,減少了收斂時間,確保在伴奏的前奏部分即可實現伴奏/幹聲對齊收斂。同時,這個機制還可以支撐視訊功能,可以保障 KTV 視訊和主唱演唱的對齊,完美呈現 KTV 包廂體驗。
減少網路負擔的伴奏輔流方案
KTV App 在實使用中,尤其是使用者選曲的時候,通常需要同時下載伴奏和歌詞資訊,而觀眾也需要下載對應的伴奏檔案,這對於中間加入頻道的觀眾體驗很不友好。為了使合唱的觀眾方案體驗更佳,我們設計了伴奏輔流方案。即伴奏通過音訊輔流傳送並帶有特殊的相對時間戳,當接收端(觀眾或非合唱主播)收到資料後,結合幹聲的時間戳進入同步模組,做精準同步。
播放偏移估計
在合唱的和聲部分,對方的幹聲有時候會影響自己的節奏,可能會發生“跑偏”或者唱錯節奏的情況,為此我們優化了合唱兩端的音量,實現剛好可以聽清又不影響歌唱的效果。
在 KTV 場景中,使用者始終是聽到伴奏後才開始唱歌的,這樣會引入一個在合成歌唱效果時的延遲,不同裝置有不同的播放延遲。雲信通過創新的訊號迴環演算法和硬體 buffer 計算相結合的方式,互相驗證,並保證延遲計算的準確性。同時我們還進行了大量的機型適配。
未來展望
通過文中介紹的工作,我們基本上解決了合唱中的各種體驗問題。未來,網易雲信也將持續深耕技術,持續關注行業動態,提供完善的解決方案和最佳範例,以技術創新助力客戶增質提效。