的通用 ASIO 驅(qū)動(dòng):讓任意聲卡接入 WASAPI 獨(dú)占低延遲音頻)
免費(fèi)的通用 ASIO 驅(qū)動(dòng)讓任意聲卡接入 WASAPI 獨(dú)占低延遲音頻【免費(fèi)下載鏈接】FlexASIOA flexible universal ASIO driver that uses the PortAudio sound I/O library. Supports WASAPI (shared and exclusive), KS, DirectSound and MME.項(xiàng)目地址: https://gitcode.com/gh_mirrors/fl/FlexASIOFlexASIO 是一款開源的通用 ASIO 驅(qū)動(dòng)通過(guò) PortAudio 庫(kù)把 Windows 的 WASAPI共享/獨(dú)占、Kernel StreamingWDM-KS、DirectSound 與 MME 統(tǒng)一成標(biāo)準(zhǔn) ASIO 接口。它不綁定具體聲卡任何沒(méi)有原生 ASIO 驅(qū)動(dòng)的消費(fèi)級(jí)音頻設(shè)備都能借此接入 Cubase、Ableton Live 等依賴 ASIO 的 DAW 與采樣器。FlexASIO 通用 ASIO 驅(qū)動(dòng)替代了什么Windows 音頻工具鏈中的位置FlexASIO 本質(zhì)是一層膠水把 ASIO API 橋接到 PortAudio而 PortAudio 負(fù)責(zé)對(duì)接各種 Windows 音頻后端。它替代了 ASIO4ALL、ASIO2KS、ASIO2WASAPI 這類單一后端的通用 ASIO 驅(qū)動(dòng)——后三者只走 Kernel Streaming 或 WASAPI 獨(dú)占FlexASIO 則四個(gè)后端全覆蓋。同時(shí)它保留了共享模式能力音頻流經(jīng) Windows 音頻引擎其他程序可以同時(shí)使用聲卡這是其他通用 ASIO 驅(qū)動(dòng)普遍不具備的。配置模塊的解析邏輯詳見(jiàn) config.cpp。四個(gè)后端任選MME、Windows DirectSound、Windows WASAPI、Windows WDM-KS支持共享與獨(dú)占兩種 WASAPI 模式獨(dú)占模式可繞過(guò) Windows 音頻引擎實(shí)現(xiàn)位精確輸出無(wú)官方 GUIASIO 宿主里的配置按鈕點(diǎn)了不會(huì)有任何反應(yīng)所有設(shè)置走FlexASIO.toml可配合第三方 FlexASIO GUI 工具兼容 32 位與 64 位 ASIO 宿主應(yīng)用Windows Vista 及以上自帶診斷工具PortAudioDevices.exe枚舉設(shè)備、FlexASIOTest.exe自測(cè)、FlexASIO.log詳細(xì)日志5 分鐘安裝 FlexASIO 通用 ASIO 驅(qū)動(dòng)clone、編譯、注冊(cè)三步從源碼構(gòu)建需要 Windows 環(huán)境加 Visual Studio 生成工具M(jìn)SVC和 CMakesuperbuild 位于src/目錄且依賴若干 git 子模塊git clone --recurse-submodules https://gitcode.com/gh_mirrors/fl/FlexASIO cd FlexASIO cmake -S src -B build cmake --build build --config Release cmake --install build安裝完成后FlexASIO 會(huì)出現(xiàn)在任意 ASIO 宿主應(yīng)用的驅(qū)動(dòng)列表中。不想自己編譯的話可直接從倉(cāng)庫(kù)的 releases 頁(yè)面下載現(xiàn)成安裝程序。創(chuàng)建 FlexASIO.toml 的完整模板參數(shù)速查與三套場(chǎng)景配置配置文件放在 Windows 用戶目錄如C:\Users\你的用戶名\FlexASIO.toml采用 TOML 語(yǔ)法。文件缺失時(shí)全部使用默認(rèn)值FlexASIO 會(huì)監(jiān)視該文件檢測(cè)到合法變更后自動(dòng)向宿主發(fā)起重置請(qǐng)求無(wú)需重啟應(yīng)用。注意不存在的選項(xiàng)名會(huì)被靜默忽略拼寫錯(cuò)誤不易發(fā)現(xiàn)但已有選項(xiàng)的值類型錯(cuò)誤會(huì)導(dǎo)致初始化失敗。參數(shù)類型默認(rèn)值說(shuō)明backendstringDirectSoundPortAudio host APIMME/Windows DirectSound/Windows WASAPI/Windows WDM-KS最重要的選項(xiàng)bufferSizeSamplesinteger建議值 20 ms范圍 1 ms–1 s按宿主采樣率換算向宿主報(bào)告的 ASIO 緩沖大小越小延遲越低但越易爆音devicestring該后端的 Windows 默認(rèn)設(shè)備設(shè)備全名須與PortAudioDevices.exe輸出逐字一致含括號(hào)設(shè)為表示禁用該方向deviceRegexstring無(wú)用正則匹配設(shè)備名與device互斥匹配到多個(gè)設(shè)備會(huì)初始化失敗channelsintegerPortAudio 報(bào)告的最大通道數(shù)硬件聲道數(shù)PortAudio 常報(bào)錯(cuò)多聲道場(chǎng)景建議顯式指定sampleTypestringFloat32獨(dú)占模式下會(huì)猜硬件原生類型Float32/Int32/Int24/Int16輸入輸出建議保持一致suggestedLatencySecondsfloat3 倍 ASIO 緩沖長(zhǎng)度給 PortAudio 的建議延遲0.0表示請(qǐng)求當(dāng)前緩沖下最低可能延遲wasapiExclusiveModeboolfalse共享WASAPI 獨(dú)占模式開關(guān)僅 WASAPI 后端有效wasapiAutoConvertbooltrue共享模式下是否允許 WASAPI 自動(dòng)轉(zhuǎn)換采樣率/聲道數(shù)設(shè)為 false 時(shí)格式必須與 Windows 音頻設(shè)置完全一致wasapiExplicitSampleFormatboolfalse獨(dú)占模式下是否允許隱式樣本類型轉(zhuǎn)換false 保證位精確低延遲演奏/錄音監(jiān)聽文檔給出的單位數(shù)毫秒起點(diǎn)獨(dú)占模式會(huì)獨(dú)占設(shè)備backend Windows WASAPI bufferSizeSamples 480 [input] suggestedLatencySeconds 0.0 wasapiExclusiveMode true [output] suggestedLatencySeconds 0.0 wasapiExclusiveMode true直播/多程序并存共享模式允許 OBS 等同時(shí)出聲設(shè)備名需用PortAudioDevices.exe查詢后逐字填寫backend Windows WASAPI bufferSizeSamples 960 [input] device Microphone (Realtek High Definition Audio) suggestedLatencySeconds 0.05 [output] device Speakers (Realtek High Definition Audio) wasapiExclusiveMode false單向播放/位精確只出不進(jìn)獨(dú)占兩端無(wú)混音、無(wú) APO、無(wú)樣本類型轉(zhuǎn)換backend Windows WASAPI [input] wasapiExclusiveMode true [output] wasapiExclusiveMode trueFlexASIO 延遲實(shí)測(cè)對(duì)比WASAPI 獨(dú)占為什么能到個(gè)位數(shù)毫秒方案典型延遲備注WASAPI 獨(dú)占個(gè)位數(shù)毫秒文檔中觀測(cè)值繞過(guò) Windows 音頻引擎無(wú)混音與 APO期間其他程序不能用該設(shè)備WASAPI 共享 / MME / DirectSound≥10 ms共享管線內(nèi)部緩沖約 10 ms且 MME/DirectSound 報(bào)告的延遲被低估至少 10 msWDM-KSKernel Streaming可低于 10 ms直達(dá)設(shè)備驅(qū)動(dòng)路徑最直接但設(shè)備枚舉與驅(qū)動(dòng)兼容性復(fù)雜說(shuō)白了共享 Windows 音頻管線的內(nèi)部緩沖被觀測(cè)為 10 ms因此只有獨(dú)占類后端WASAPI 獨(dú)占、WDM-KS能壓到 10 ms 以下。另外宿主看到的延遲數(shù)值通常高于 ASIO 緩沖本身PortAudio 和 Windows 還會(huì)追加緩沖且不含硬件如藍(lán)牙鏈路本身的延遲。FlexASIO 高頻問(wèn)題速查表初始化失敗、爆音與獨(dú)占模式排錯(cuò)癥狀可能原因修復(fù)動(dòng)作驅(qū)動(dòng)初始化失敗配置中 backend 或設(shè)備名拼寫錯(cuò)誤、類型不對(duì)、缺引號(hào)對(duì)照PortAudioDevices.exe實(shí)際輸出核對(duì)在用戶目錄建空文件FlexASIO.log開日志定位配置文件/日志不生效Windows 文本編輯器把文件存成FlexASIO.toml.txt.txt擴(kuò)展名默認(rèn)被隱藏用命令行執(zhí)行dir %userprofile%\FlexASIO*確認(rèn)真實(shí)文件名錄音時(shí)周期性爆音、斷音緩沖過(guò)小、實(shí)時(shí)路徑處理過(guò)重、輸入輸出來(lái)自兩塊不同時(shí)鐘的設(shè)備、或開著日志阻塞式文件 I/O逐步調(diào)大bufferSizeSamples刪除FlexASIO.log盡量只用單設(shè)備半雙工WASAPI 獨(dú)占初始化失敗宿主選的采樣率、channels或sampleType不被硬件原生支持與 Windows 音頻設(shè)備設(shè)置對(duì)齊wasapiAutoConvert false時(shí)采樣率/聲道數(shù)必須精確匹配裝了 ASIO4ALL 等其他通用 ASIO 驅(qū)動(dòng)后隨機(jī)失敗部分宿主Ableton、Pro Tools 等會(huì)并行初始化多個(gè) ASIO 驅(qū)動(dòng)爭(zhēng)搶設(shè)備獨(dú)占卸載其余通用 ASIO 驅(qū)動(dòng)源碼模塊導(dǎo)讀FlexASIO 通用 ASIO 驅(qū)動(dòng)的關(guān)鍵路徑src/flexasio/FlexASIO/flexasio.cppASIO 驅(qū)動(dòng)主實(shí)現(xiàn)對(duì)外暴露 ASIO 接口src/flexasio/FlexASIO/portaudio.cppASIO 與 PortAudio 的橋接層緩沖搬運(yùn)與后端分發(fā)src/flexasio/FlexASIO/config.cpp解析FlexASIO.toml并監(jiān)視文件變更觸發(fā)重置src/flexasio/PortAudioDevices/list.cppPortAudioDevices設(shè)備枚舉工具的實(shí)現(xiàn)FlexASIO 把可配置的 ASIO 低延遲能力帶給任意 Windows 聲卡完整參數(shù)與排障細(xì)節(jié)見(jiàn) CONFIGURATION.md 和 FAQ.md。【免費(fèi)下載鏈接】FlexASIOA flexible universal ASIO driver that uses the PortAudio sound I/O library. Supports WASAPI (shared and exclusive), KS, DirectSound and MME.項(xiàng)目地址: https://gitcode.com/gh_mirrors/fl/FlexASIO創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考