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

支持多臺機統(tǒng)一管控可同時錄制6間會議室的錄播主機

如何提升音頻音質(zhì)?比特率和采樣率是關(guān)鍵!

《DNK210使用指南 -CanMV版 V1.0》第二十九章 音頻錄制實驗
synopsys 的design ware:DW_fpv_div,浮點數(shù)除法器,默認(rèn)32位下,想提升覆蓋率(TMAX),如果用功能case去提升覆蓋率呢?
dm368錄制音視頻后用vlc播放不同步是怎么回事?
TLV320AIC3254具有6路的語音錄制功能,可否生成6路完全獨立的音頻文件?
使用adau1961 codec進(jìn)行錄音,發(fā)現(xiàn)錄制的音頻文件噪聲非常大,請問有什么辦法可以優(yōu)化嗎?
高分辨率音頻和傳統(tǒng)音頻區(qū)別

百問網(wǎng)全志系列開發(fā)板音頻ALSA配置步驟詳解
展頻晶振在行車記錄儀中的應(yīng)用

使用提供的esp_audio_codec 的庫組件時,不能將AAC音頻解碼回PCM音頻,為什么?
音質(zhì)全新升級,通信進(jìn)化:從8K到16K采樣率的全雙工音頻技術(shù)

評論