作者 / Smule 工程團隊: David Gayle、Chris Manchester、Mark Gills、Trayko Traykov、Randal Leistikow、Mariya Ivanova。
Smule 采用 Oboe 音頻庫提升錄制率
作為目前下載量排名前列的唱歌類應用,Smule Inc. 一直致力于投入大量資源來提升其應用的 Android 體驗,以提高整體音頻質量。具體而言就是減少延遲時間,讓歌手在表演時能夠通過耳機聽到自己的聲音。擅長音頻和視頻技術的團隊在 2021 年很大一部分時間都忙于必需的提升工作,將逾千萬 Android 用戶使用的 Smule 應用從使用 OpenSL 音頻 API 轉換為使用 Oboe 音頻庫,從而使錄制完成率提高了約 10% 以上。
簡介
Smule Inc. 是卡拉 OK 應用的潮流企業,旗下的應用每天幫助數百萬用戶演唱最愛的歌曲,并分享表演。Smule 應用超越了傳統的卡拉 OK,專注于共同創作,為用戶創造了獨一無二的機會,可以與朋友、平臺上的其他歌手及其最喜歡的音樂人分享音樂和合作。而音頻質量至關重要,Smule 團隊在 2020 年看到了在 Android 平臺提升體驗的潛力。
Smule 使用的舊版 OpenSL 雖然支持全球市場的各種設備,但不太適合利用新設備的高速硬件。Smule 開發團隊認為,升級音頻系統是必要且合乎邏輯的改進。
Oboe 發布策略
Smule 曾面對兩種可行的改進途徑,第一種是針對 AAudio 進行改進,這是 Android O 中引入的高性能 Android C 音頻 API,專為需要低延遲的應用而設計。第二種是采用在內部同時封裝了 AAudio 和 OpenSL 的 Oboe。經過細致評估,Smule 開發團隊選擇了 Oboe,此方案具有易用的代碼庫、廣泛的設備兼容性和強大的社區支持,可最大限度減少延遲時間,并充分利用可用的原生音頻。
改用 Oboe 意味著在應用架構和技術上將發生重大的變化。因此,Smule 在更新過程中采取了謹慎的做法,有計劃地逐步發布,首先面向少數的特定設備型號以驗證質量;然后逐漸地面向更多設備 (將少數使用 Oboe 時出現問題的設備恢復到 OpenSL)。這種循序漸進、有條不紊的方法可以最大限度地降低風險,并讓開發團隊能夠在出現設備特定問題時及時處理。
改善音頻質量體驗
Smule 改用 Oboe 來幫助改善應用體驗。他們希望大幅降低音頻播放崩潰率,消除錄制時的回響和噼啪聲等問題,以及減少音頻延遲。在之前的推文《關于 Android 音頻延遲的最新動態》中曾介紹過,二十種最熱門的設備使用 Oboe 后,平均延遲時間從 2017 年的 109 毫秒減少到現在的 39 毫秒。109 毫秒的監聽延遲會聽到干擾現場演唱的明顯回響,而延遲 39 毫秒則低于實時應用可接受的閾值。當下高端設備的延遲時間都在 22 毫秒以內,這種一致性是一大優勢。
Smule 使用 Oboe 后,或許是因為延遲時間更短,歌手借助 Smule 首屈一指的音頻效果演唱時能通過耳機聽到自己的聲音,同時又沒有回響,錄制完成率因此得以提升。
利用 Oboe 專用的高效協作式 GitHub 門戶,Google 團隊發揮了重要作用,不但幫助 Smule 實現 Oboe 集成,還為其提供重要的數據洞察和支持。兩家團隊通力合作,完成了迄今最大的 Oboe 部署,數百萬活躍用戶受益匪淺。Smule 團隊解決了某些 Oboe 代碼問題,而 Google 團隊與部分移動設備制造商一起進一步增強了 Oboe 的兼容性。
對于歌手社區而言,音頻質量至關重要,我們一起致力于幫助 Smule 提供最佳體驗,并助力音樂創作,我們為此深感欣慰。
Smule 首席技術官 Eric Dumas
既然是大規模部署,自然會面臨設備特定問題。例如,操作系統內置功能會導致原始音頻流中出現回響聲效,造成 Smule 不能正常應用自己的專利 DSP 算法和音頻濾波器。Google 團隊立即施以援手,迅速為開發庫提供更新和補丁。Oboe 問題反饋的流程簡單,描述明確,便于 Google 團隊及時解決。
Smule 還克服了其他設備特定障礙,其中包括特定芯片組錯誤。比如,Oboe 需要單聲道麥克風輸入時,一些設備提供的是引入一個模擬單聲道麥克風輸入的立體聲輸入。Smule 在 Oboe 的 GitHub 中創建工單,以提供示例并使用 Oboe 測試應用重現此問題。
Google 開發的 Oboe 測試器應用工具可幫助用戶在實現過程中解決和標識問題。事實證明,此工具在測試 Oboe、AAudio 和 OpenSL ES 的許多功能、測試 Android 設備,以及衡量延遲時間和故障等方面特別有用。此應用可提供大量有助于模擬絕大部分音頻設置的功能。Oboe 測試器還可用于自動化測試,方法是使用 Android Intent 從 Shell 腳本啟動。由于集成涉及大量設備,Smule 非常依賴自動化測試。
在 Smule 確信已解決設備特定問題,并且 Oboe 音頻相當穩定后,Smule 改用大范圍的對比測試發布方式。短短幾周內,Smule 將使用 Oboe 的人群從目標設備的 10% 增加到 100%,這得益于 Oboe 在發布期間不斷收到積極反饋和綠色 KPI 指標。
結果不言而喻,使用 Oboe 的 Smule 用戶會唱更多歌,就這么簡單。不重復的卡拉 OK 錄制量以及合唱 (或二重奏) 增加了高達 8.07%,不重復的上傳量增加了 3.84%,而演唱完成率則增加了 4.10% 以上。Smule 觀察到,在 2021 年第三季度和第四季度,錄制完成率增加了 10% 以上。
使用 Google 提供的 Firebase Crashlytics 工具,Smule 發現自 Oboe 全面應用以來,與音頻相關的崩潰減少,應用更穩定,即便使用低端設備也如此。Smule 敬業的客服團隊發現,與音頻相關的投訴減少了 33%,其中包括 (非預期的) 機器人音效和回響等問題的投訴。
改用 Oboe 的決策已頗有成效。此應用不同以往,更穩定更出類拔萃,Smule 完全能夠采用更新技術,進一步提升音頻和硬件質量。最重要的是,Smule 用戶可以更得心應手地制作音樂,這才是我們的使命。
審核編輯:湯梓紅
-
Android
+關注
關注
12文章
3936瀏覽量
127403 -
Google
+關注
關注
5文章
1765瀏覽量
57530 -
音頻
+關注
關注
29文章
2877瀏覽量
81547
原文標題:Smule 借助 Oboe 音頻庫提升用戶體驗,助力音樂創作 | Android 開發者故事
文章出處:【微信號:Google_Developers,微信公眾號:谷歌開發者】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論