直播聲卡知識:內(nèi)錄?WDM?DSP?一文講明白
最近在著手寫一篇關(guān)于直播聲卡的上手小記(窮學(xué)生,用過的聲卡不多,不敢自認(rèn)為是評測),但是遇到了一些麻煩:聲卡涉及了一些直播的相關(guān)功能,而如果不單獨(dú)講解一下相關(guān)的理論知識的話,讀的大多數(shù)人會看不懂;但是這樣一坨概念科普塞進(jìn)一篇產(chǎn)品評測里面顯得有些不合適;掃了一眼,一時(shí)也沒有看到什么很干凈利落的文章;思來想去,干脆獨(dú)立成文,自己來寫一篇單獨(dú)的小短文,盡可能簡明地把問題說明白。
筆者自己其實(shí)并不玩直播,相關(guān)概念也是自己硬啃了一些材料,再加之自己的思考匯成。如有問題,歡迎指出。

內(nèi)錄
直播聲卡的內(nèi)錄,本質(zhì)上來說,就是把聲卡的輸出通道轉(zhuǎn)化為(虛擬的)輸入通道。
這個(gè)解釋隨處可見,本身也確實(shí)是準(zhǔn)確的,但很多人看了以后完全無法理解:這樣做的意義何在呢?在此之前,我們必須先來談一下軟件(虛擬)機(jī)架這個(gè)概念。

如果你做直播不只是簡單的玩玩而已,那么你直播時(shí)錄入的聲音通常需要加上一些效果。比如,主播唱歌一般都需要為聲音加一點(diǎn)混響(Reverb);更加專精一點(diǎn)的主播可能需要為自己的聲音加上一點(diǎn)壓縮(Compressor),EQ 之類;很多的主播在直播時(shí)候會被抱怨聲音不夠大,一般是因?yàn)槁曇魶]有加上限制器(Limiter)/最大化效果器(Maximizer)拉升響度 ...... 此文就不對這些效果器的作用進(jìn)行進(jìn)一步的探討??倸w,就算你并不是一個(gè)唱歌為主的主播,如果想要做到相對專業(yè),為麥克風(fēng)錄入的聲音加上效果也是必不可少的。
直播的過程中,電腦一邊接收聲音信號,一邊把信號上傳至服務(wù)器,這時(shí)要同時(shí)對聲音進(jìn)行實(shí)時(shí)處理,那么最直接的辦法自然是使用 CPU 算力實(shí)時(shí)處理,而這一做法的實(shí)現(xiàn)方法就是軟件(虛擬)機(jī)架。聲卡驅(qū)動輸入的聲音信號流進(jìn)入虛擬機(jī)架,在虛擬機(jī)架內(nèi)調(diào)用效果器進(jìn)行實(shí)時(shí)處理(這里使用的很多 VST 效果器往往也用于電腦編曲/混音),之后由虛擬機(jī)架輸出的就是添加過效果的信號了。
但是這里再一次遇到了問題:盡管同樣是信號流,但是由聲卡錄音進(jìn)入電腦的信號會被電腦識別為輸入信號,而經(jīng)過了虛擬機(jī)架處理后出來的信號會被識別為輸出信號,導(dǎo)致后者不能作為直播的信號源,不論在 Windows 系統(tǒng)的聲音設(shè)置,還是在直播常用的 OBS Studio,情況都是如此。這就是內(nèi)錄的意義所在了:經(jīng)過了一次回環(huán),同樣是信號流,聲卡的輸出信號經(jīng)過內(nèi)錄以后被系統(tǒng)和直播軟件識別為了輸入信號,這樣就可以作為直播的聲音輸入了。

WDM:
WDM (Windows Driver Model)是什么?對我來說,我只清楚這是一個(gè)軟件架構(gòu)/協(xié)議,而這就足夠了:我們只需要關(guān)系怎么用就可以。不過為了便于讀者理解,筆者想稍微扯遠(yuǎn)一點(diǎn),先提一下?DrectSound?和?Core Audio。
DirectSound(DS,基本取代了更古老的 WaveOut)和 Core Audio 分別是 Windows 和 macOS 的底層組件/接口。眾做周知,Windows 強(qiáng)調(diào)兼容性,而 macOS 強(qiáng)調(diào)標(biāo)準(zhǔn)統(tǒng)一。Windows 系統(tǒng)的音頻架構(gòu)具有良好的兼容性,而 macOS 強(qiáng)制開發(fā)者使用比較統(tǒng)一、嚴(yán)格的標(biāo)準(zhǔn)。
由于標(biāo)準(zhǔn)高且統(tǒng)一,大家全部統(tǒng)一使用 Core Audio,Mac 的音頻架構(gòu)性能相對較好,除了延遲很低以外,很多聲卡在 macOS 上面可以直接免驅(qū)運(yùn)行;而相對應(yīng)地,由于 Mac 的標(biāo)準(zhǔn)死,很多地方無法實(shí)現(xiàn)復(fù)雜的自定義設(shè)置(比如相對復(fù)雜的信號路由),這是導(dǎo)致用 Mac 直播的人相對較少的重要原因之一(當(dāng)然,在相對昂貴的雙機(jī)推流的情況下,Mac 的穩(wěn)定性相比 PC 可能存在優(yōu)勢,所以雙機(jī)直播方案中見到了不少拿 Mac 作為從機(jī)的方案)。
而相對地,DS 的兼容性非常好,各種的軟硬件一擁而上也較出問題;但由于強(qiáng)調(diào)兼容性,DS 的性能難免受到影響,除了音質(zhì)有數(shù)據(jù)可見的折損以外,聲音信號的延遲也是一大問題(如果你的獨(dú)立聲卡使用 DS 直接返聽自己的聲音,那樣相比于聲卡自己的硬件返聽,你一定可以注意到明顯的延遲)。

為了解決 DS 的音質(zhì)和延遲問題,一般的外置聲卡廠商都會提供?ASIO?驅(qū)動。ASIO 是一種相對高標(biāo)準(zhǔn)的協(xié)議。在使用 ASIO 時(shí),聲音信號繞過了 DS 層(因此用戶會注意到,在 Windows 系統(tǒng)的控制面板無法控制聲音大小之類),本質(zhì)上來說實(shí)現(xiàn)了某種軟件和外置聲卡硬件的直接握手。一般用于音頻創(chuàng)作的宿主軟件(DAW),連接外置聲卡都建議使用 ASIO。但是,Windows 系統(tǒng)本身,以及直播所使用的軟件,是無法對 ASIO 進(jìn)行操作的;虛擬機(jī)架一般都可以兼容 ASIO,但一般的虛擬機(jī)架都無法直接將音頻流輸出到直播軟件。
直播本身并不苛求錄音創(chuàng)作級別的音質(zhì),延遲問題也可以通過聲卡自身的硬件返聽(大體可以看做集成在聲卡硬件,或聲卡軟件最底層的返聽通道,延遲極低)來基本解決,但是聲卡面對直播情境時(shí)有一個(gè)更大的問題,那就是信號路由,說得再通俗易懂一些,那就是各路信號要去哪些地方,不要去哪些地方。
舉一個(gè)很常見的情境,主播 A 直播打聯(lián)機(jī)游戲,同時(shí)與玩家 B 聯(lián)機(jī)語音。這個(gè)時(shí)候各路信號會有三個(gè)可能的去向:主播 A 的監(jiān)聽信號,直播推流的聲音信號和發(fā)送給玩家 B 的語音信號。聲卡所面對的各路聲音信號可能要去往其中的一兩個(gè)或者全部,而如果某路信號去往了不應(yīng)該去的方向,那就很容易導(dǎo)致問題。比如,一些新手主播錄入的聲音可能會包含有一些詭異的“混響”“回聲”,嚴(yán)重干擾直播間的體驗(yàn),這往往就是直播信號在輸入了一次麥克風(fēng)干音信號以后,再輸入了一次內(nèi)錄/虛擬機(jī)架輸出/軟件返聽信號所致(一般是設(shè)置問題)。再比如,在沒有具備一些針對性軟件支持的情況下,Windows 系統(tǒng)和直播軟件容易把聲卡看作一個(gè)整體,在同時(shí)開啟了內(nèi)錄功能以后,Windows 系統(tǒng)/語音軟件會把輸出到主播 A 的監(jiān)聽信號直接等同于發(fā)送給玩家 B 的直播信號,導(dǎo)致 B 發(fā)送給 A 的錄音信號經(jīng)過了一圈服務(wù)器傳遞被再次返回到 B,使得 B 會聽到自己延遲了一截的聲音,破壞 B 的體驗(yàn);如果此時(shí)玩家 B 自身也在直播,那么 B 的直播間同樣也會出現(xiàn)那種詭異的“混響”“回聲”;這就是直播圈經(jīng)常被提到的 “卡麥”。
面對包括“卡麥”在內(nèi)的信號路由問題,聲卡廠商給出了最根本的解決方案:多通道 WDM (Multichannel WDM)驅(qū)動。
為了保證說法盡可能嚴(yán)謹(jǐn),筆者昨天花了很多的時(shí)間去查閱資料。找了一圈維基后一臉懵逼,看了甜水網(wǎng)[1]、audiosciencereview[2]?的解釋后還是一頭霧水,這邊保守起見引用一下來自于聲卡廠商的說法:
Antelope Zen Tour Synergy Core 的 Bundle 2.3.9 更新[3],里面明確提到了 :Added?Multichannel WDM Support?that improves Windows playback experience.
RME Babyface Pro FS 的說明書[4],里面多次提到了?WDM Device?的相關(guān)設(shè)置,將其與 ASIO 并列。
盡管一些關(guān)系還是沒有理清,比如有看到一些說法說 DS,Wasapi,KS(Kernel Streaming)之類的都屬于 WDM Channel,但是鑒于娃娃臉說明書里面已經(jīng)提到了一些相關(guān)說法:
Both the rare to find WDM Kernel Streaming and - under Windows 7 to 10 - WASAPI Exclusive bypass the WDM mixer.
從保守的角度來看,筆者也自信可以使用 “多通道 WDM 驅(qū)動”“WDM 設(shè)備”的說法。
這一塊的理解如有問題,還請對相關(guān)領(lǐng)域了解更多的老師指出。


讓我們回到上面的“主播 A 玩家 B”的例子。如果使用的是筆者手頭這樣的一塊聲卡,那樣可以把游戲的聲音輸出設(shè)備選擇為“Playback 1/2”,語音軟件的聲音輸出設(shè)備選擇為“Playback 3/4”,如果還有個(gè)什么背景音樂,還可以再選擇為“Playback 5/6”之類(本身麥克風(fēng)輸入就可以在聲卡面板里面顯示為硬件輸入),那么就可以把各路軟件的輸出信號匯總到聲卡的控制面板;在聲卡驅(qū)動內(nèi)部進(jìn)行完信號路由(調(diào)音臺/跳線盤/路由矩陣)后,聲音信號可以被輸出到指定的“Record”設(shè)備,成為直播軟件、語音軟件等等的輸入信號;在多通道 WDM + 內(nèi)錄的支持下,聲卡的信號路由問題就可以得到徹底解決了。
和多通道 WDM 的思路類似,為了給一些沒有提供多通道 WDM 驅(qū)動的聲卡提供類似的支持,網(wǎng)絡(luò)上有很多的虛擬跳線軟件(軟跳線)。這些軟件包括 ASIO Link Pro 等等,從效果上來說確實(shí)能夠?qū)崿F(xiàn)很多信號路由功能,但網(wǎng)絡(luò)上普遍認(rèn)為這些軟件的穩(wěn)定性較差,筆者也很少見到有人推薦使用。說句實(shí)在話,筆者自己確實(shí)沒有上手過這些軟件;而且網(wǎng)上這樣的軟件特別多特別雜,其中究竟有沒有穩(wěn)定好用的,筆者完全不敢下定論。



不同聲卡內(nèi)的信號路由方式各不相同,調(diào)音臺、跳線板、路由矩陣都經(jīng)常可以見到,這里不作過多展開。

DSP:
前面我們已經(jīng)談到了,直播錄入的聲音強(qiáng)烈建議加上效果處理,而最直接的方法是采用虛擬機(jī)架,使用 CPU 算力。
但是這種方法有自己的問題。首先,使用 CPU 算力渲染效果,自然會加重 CPU 自身的負(fù)擔(dān)。直播推流(編碼)本身需要消耗大量的 CPU 算力,而同時(shí)可能進(jìn)行的游戲、Live2D 渲染之類同樣需要使用 CPU 算力。雖然大部分效果器對 CPU 算力的消耗并不算嚴(yán)重,但是混響效果非常吃 CPU。如果你的 CPU 算力本身并不算出色,那么效果器算力的需求無疑會令推流導(dǎo)致的 CPU 算力短缺問題雪上加霜。
另外,多了一層虛擬機(jī)架軟件,系統(tǒng)的不穩(wěn)定性因素也更多了一些。直播情境下多重軟件的套娃對 Windows 系統(tǒng)的穩(wěn)定性構(gòu)成了相對較大的挑戰(zhàn)。主播在直播時(shí)一旦藍(lán)屏死機(jī),狀況自然會非常尷尬,而這種情況發(fā)生也不在少數(shù)。
既然使用虛擬機(jī)架,使用 CPU 算力可能導(dǎo)致問題,那解決問題的根本辦法自然就是不使用 虛擬機(jī)架和 CPU 算力。相對應(yīng)地,很多廠商在自家的聲卡上面搭載了?DSP 芯片,可以在聲卡控制面板直接調(diào)用效果。


在 DSP 效果器的加持下,用戶理論上來說就可以拋開虛擬機(jī)架來直播了。各家的 DSP 算力調(diào)用形式也是千差萬別,需要具體問題具體討論。

本文的寫作時(shí)間約 6 小時(shí)。筆者并非專業(yè)人士,如果文章里面的概念有錯(cuò)誤,還請看官們指出。
希望本文可以幫助到對直播了解極少但是希望進(jìn)行直播的讀者。
原創(chuàng)文章,首發(fā)于某乎,禁止未授權(quán)轉(zhuǎn)載

參考資料
^The difference between the ASIO, WDM and MME drivers?https://www.sweetwater.com/sweetcare/articles/roland-difference-between-asio-wdm-mme-drivers/
^ASIO, WASAPI, Direct Sound... is there any difference in sound quality??https://www.audiosciencereview.com/forum/index.php?threads/asio-wasapi-direct-sound-is-there-any-difference-in-sound-quality.7029/
^Zen Tour SC - Bundle 2.3.9?https://support.antelopeaudio.com/support/solutions/articles/42000082447-zen-tour-sc-bundle-2-3-9
^MANUALS: Babyface Pro FS?https://www.rme-audio.de/babyface-pro-fs.html
