- Äänen latenssi Windows Se riippuu äänimoottorista, pusferin koosta ja ajureista.
- Windows 10 paransi WASAPIa ja AudioGraphia, jotta jaetussa tilassa saavutettaisiin pieni viive.
- Nykyaikaiset ajurit voivat määrittää pieniä puskureita ja tehdä yhteistyötä IAudioClient3:n kanssa jaksollisuuden vähentämiseksi.
- Valitse hyvin laitteisto, kuljettajat Ja API (ASIO, WASAPI, AudioGraph) on avainasemassa latenssin, vakauden ja laadun tasapainottamisessa.

Jos työskentelet äänen kanssa Windowsissa, ennemmin tai myöhemmin törmäät ongelmaan WASAPI-latenssi ja ikuinen vertailu ASIO ja WASAPIJokainen, joka äänittää DAW-ohjelmalla, striimaa livenä, pelaa online-pelejä tai tuottaa musiikkia, tietää, että muutaman millisekunnin viive voi pilata otoksen, aiheuttaa äänen synkronoinnin häiriöitä tai muuttaa pelin koettelemukseksi.
Windows 10:ssä ja uudemmissa versioissa Microsoft on parantanut äänipinoaan merkittävästi, ja nykyään se on mahdollista saavuttaa paljon pienemmät latenssit WASAPI:n kanssa jaetussa tai yksinomaisessa tilassauhraamatta selaimen ääntä tai muita sovelluksia. Tärkeintä on ymmärtää, miten pino toimii, mikä on muuttunut, mitä laitteistorajoituksia meillä on ja mitä parametreja voimme säätää (käyttäjinä tai kehittäjinä) saadaksemme irti ne ylimääräiset millisekuntia.
Mikä on äänen latenssi ja miksi sillä on niin suuri merkitys?
Kun puhumme äänen latenssista, viittaamme siihen, aika, joka kuluu äänen generoinnista siihen, kun kuulet sen tai sovelluksesi vastaanottaa senTämä aika mitataan millisekunteina, ja vaikka paperilla se vaikuttaa lähes merkityksettömältä, käytännössä se tekee eron sujuvan kokemuksen ja täysin epämukavan välillä.
En musiikillinen tuotanto ja äänityksissä instrumentalisti tarvitsee kuulua lähes välittömästi soiton aikanaJos jokaisen nuotin palaaminen kuulokkeiden kautta kestää kymmeniä millisekunteja, aivot alkavat kamppailla kuulemansa ja tuntemansa kanssa, ja rytmin ylläpitämisestä tulee koettelemus.
En streamingPodcasteissa ja videopuheluissa viive voi aiheuttaa Videon ja äänen epätasapaino, ärsyttävät kaiut ja tunne kuin "puhuisi seinälle"Oman äänen viive kuulokkeissa muutamalla millisekunnilla rasittaa puhujaa, aiheuttaa kompastelua ja kuulostaa kuuntelijasta luonnottomalta.
Pelaajille, erityisesti ammuntapeleistä, kilpailupeleistä tai VR-kokemuksista pitäville, Hidas äänen vasteaika tarkoittaa, että tärkeimmät äänimerkit puuttuvat (askelia, laukauksia, hälytyksiä) tai huomaat, että ohjaimen toiminnot ja ääni eivät ole synkronoituja, mikä pilaa immersion; näissä tapauksissa on hyödyllistä oppia latenssin mittaaminen videopeleissä ja toimi sen mukaisesti.
Teknisemmin ilmaistuna erotetaan yleensä toisistaan toiston latenssi, tallennuksen latenssi, edestakainen latenssi ja kosketukseen liittyvät latenssit (Esimerkiksi näytön koskettaminen ja äänivasteen kuuleminen). Ne kaikki summautuvat, ja niiden ymmärtäminen on hyödyllistä, jotta tiedämme mihin olemme menossa. aika.
Äänireitin latenssityypit
Windowsin äänipinossa käytetään useita käsitteitä Kuvaile äänen matkan kussakin vaiheessa esiintyviä viiveitä.Se ei ole vain akateeminen kysymys: jokaisella latenssityypillä on omat syynsä ja erilaiset keinot lieventää sitä.
Toiston latenssi on viive sovelluksen äänipuskurin toimittamisen ja kaiuttimien tai kuulokkeiden kautta kuulemisen välilläTämä sisältää puskurin koon, formaatin muunnoksen ja kaikki matkan varrella käytetyt tehosteet.
Tallennuslatenssi on puolestaan mikrofonista tallennetun äänen saapumisaika sovellukseenSe alkaa siitä, kun ääni saapuu anturiin, kulkee käyttöliittymän, ohjaimen ja äänimoottorin läpi, ja jatkuu siihen, kun ohjelmisto voi lukea kyseisen datalohkon.
Niin kutsuttu edestakainen latenssi on molempien summa: Tallenna, käsittele sovelluksessa ja toista kaiuttimistaSe on se, joka todella ottaa vallan esimerkiksi DAW-ohjelman monitoroinnissa, jossa soitat ja signaali kulkee tietokoneen läpi ja palaa korviisi.
Kosketuskäyttöliittymissä puhutaan usein myös kosketuksen ja sovelluksen välisestä latenssista ja kosketuksen ja äänen välisestä latenssista: aika näytön kosketuksen, tapahtuman käsittelyn ja järjestelmän äänellä vastaamisen välilläVirtuaali-instrumenteille tai sovellukset Tablettien tai Windows-käyttöjärjestelmää käyttävien käyttäjillä ketjun tulisi olla mahdollisimman lyhyt.

Windowsin äänipinon kokoaminen
WASAPI:n, ASIO:n ja vastaavien alapuolella Windowsilla on äänipino, jonka keskusmoottori miksaa striimejä, lisää tehosteita, skaalaa formaatteja uudelleen ja viestii ohjaimilleTuon polun ymmärtäminen auttaa näkemään, missä latenssia saadaan ja missä menetetään.
Toistoprosessissa sovellus kirjoittaa ääntä API:n paljastamassa puskurissa. Windowsin äänimoottori lukee tiedot, käsittelee ne (mukaan lukien APO-objektien eli äänenkäsittelyobjektien muodossa olevat tehosteet) ja kun tiedot ovat valmiita, tallentaa ne toiseen puskuriin, jota ajuri käyttää laitteistolle lähettämiseen.
Näihin APOihin liittyvä latenssi Se riippuu niiden käyttämästä prosessoinnista (taajuuskorjaus, melunvaimennus, 3D-tehosteet jne.)Mitä monimutkaisempi algoritmi on ja mitä enemmän tilaa sen on kerättävä, sitä enemmän näytteitä sen on tallennettava puskuriin ja sitä suurempi on viive.
Ennen Windows 10:tä pelkkä äänimoottorin läpi kulkeminen lisättiin noin 12 ms liukulukudatan kanssa ja noin 6 ms kokonaislukudatan toiston kanssaWindows 10:stä lähtien tuota osaa on optimoitu huomattavasti ja se on nyt noin 1,3 ms riippumatta datan tyypistä.
Käsittelyn jälkeen moottori sijoittaa tuloksen puskuriin, jonka pituudella on myös suora vaikutus. Aiemmissa järjestelmissä tuo puskuri oli kiinteästi noin 10 ms.Nykyaikaisissa versioissa ääniohjain voi määrittää erilaisia tuettuja kokoja ja sallia pienempiä arvoja, kuten 2–3 ms.
Samanlaista tapahtuu kaappauksessa, mutta päinvastoin: Laitteisto ottaa signaalin vastaan mikrofonista.Voit käyttää tehosteita (AGC, kaiun poisto jne.), ohjain tallentaa tiedot puskuriin ja äänimoottori kerää ja käsittelee ne omilla APO-prosesseillaan ennen kuin ne ovat sovelluksen käytettävissä.
Vanhemmissa versioissa äänimoottoriin on lisätty jonkin verran kaappaustoimintoja. 6 ms liukulukutiedoille ja käytännössä 0 ms kokonaisluvuilleWindows 10:stä lähtien tämä osuus on pienentynyt käytännössä merkityksettömäksi. Silti ajuri- ja laitteistopuolen puskurit vaikuttavat edelleen kokonaismäärään.
Käytettävissä on myös eksklusiivinen äänipinotila. Jos sovellus avaa päätepisteen eksklusiivisessa tilassa, Se ohittaa miksausmoottorin ja kommunikoi suoraan laitteistopuskurin kanssa.Tämä minimoi viiveen entisestään, mutta haittapuolena on, että mikään muu ohjelma ei voi samanaikaisesti käyttää kyseistä syöttö- tai tulostuslaitetta.
ASIO, eksklusiivinen tila ja miksi WASAPI on parantunut niin paljon
Vuosien ajan tavanomainen tapa saavuttaa Musiikkituotannon matala latenssi on tarkoittanut ASIO:n tai laitteiden käyttöä yksinoikeustilassa.ASIO:n avulla DAW kommunikoi lähes suoraan äänikorttivalmistajan ajurin kanssa ilman järjestelmämikseriä välillä.
Ongelmana on, että tällä lähestymistavalla on haittapuolensa: Se vaatii yleensä tiettyjä kolmannen osapuolen ajureitaOhjelmiston on oltava valmis kommunikoimaan kyseisen API:n kanssa, ja yleensä järjestelmän äänet (selain, pelit, pelaajat) jätetään pois tai niiden reitittämiseen on turvauduttava monimutkaisiin kiertotapoihin.
Samaan aikaan WASAPI:n eksklusiivinen tila tarjosi jotain vastaavaa: Sovelluksen työnkulku menee lähes suoraan laitteeseenMutta jälleen kerran, muut sovellukset menettävät pääsyn siihen vaiheeseen, eikä se ole aivan kätevintä, kun haluat sekoittaa DAW:ta YouTube-videoiden, Discordien ja niin edelleen kanssa.
Välttääkseen pakottavan valinnan viiveen ja joustavuuden välillä, Microsoft Windows 10 paransi jaettua pinoa pienentääkseen viivettä jopa menemättä yksinoikeustilaan.Moottoria kevennettiin ja ennen kaikkea lisättiin kyky neuvotella pienemmistä puskurikooista sovelluksen ja ajurin välillä.
Lisäksi on olemassa erityinen resurssienhallintatila: kun sovellus alkaa toimia hyvin lyhyillä puskureilla, Windows priorisoi kyseiseen äänivirtaan liittyviä säikeitä ja estää muita järjestelmätehtäviä keskeyttämästä prosessointia kriittisinä aikoina.
WASAPI-latenssiasetukset DAW- ja suoratoistokäyttäjille
Loppukäyttäjän näkökulmasta WASAPI on yksi äänilaitevaihtoehdoista monissa DAW-sovelluksissa ja äänitysohjelmissaEsimerkiksi Reaperissa on yleistä nähdä vertailuja ASIO- ja WASAPI-latenssien välillä (sekä eksklusiivisissa että jaetuissa tiloissa).
Joissakin tapauksissa vaihtaminen ASIOsta yksinomaiseen WASAPIin johtaa jopa pienempi latenssi kuin valmistajan ASIO-ajurillaEdellyttäen, että laitteisto ja Windows-ajuri on määritetty oikein, tämä ei ole yleisin tilanne, mutta se voi tapahtua, ja kun näin tapahtuu, on ymmärrettävää, ettei käyttäjä halua palata ASIO-tilaan.
Jaettuun WASAPIin vaihdettaessa ne saattavat kuitenkin näkyä vääristymiä, napsahduksia tai artefakteja toistettaessa tai äänitettäessä ääntä DAW-ohjelmastaVaikka muut järjestelmän äänet (selain, pelit) toimivat ongelmitta, tämä johtuu yleensä formaattien epäsuhtaisuuksista, liian aggressiivisesta puskuroinnista tai pakotetuista muunnoksista.
Yksi tyypillisistä konflikteista syntyy, kun järjestelmä pakottaa laitteen toimimaan eri bittisyvyyden muoto kuin mitä käyttöliittymä todellisuudessa tukeeEsimerkiksi WASAPI näyttää DAW-valintaikkunassa 24 bittiä, kun taas Windowsin äänipaneelissa kortti tarjoaa kaikilla näytteenottotaajuuksilla vain 16 bittiä.
Näissä tapauksissa jaetun WASAPI:n vääristymien välttämiseksi on suositeltavaa tarkistaa Windowsin ääniasetukset. bittisyvyys ja näytteenottotaajuus asetettu oletusarvoiksija varmista, että DAW käyttää formaattia, joka on yhteensopiva käyttöliittymän tuen kanssa.
Muissa yhteyksissä, kuten äänitysten tallentamisessa mikrofonilla USB Yksinkertaisissa sovelluksissa tai työkaluissa, kuten Audacityssä, käytetään enimmäkseen WASAPI:ta. tallentaa järjestelmän oman äänen tai Windows-mikserin tuotoksensen sijaan, että saavutettaisiin mahdollisimman pieni latenssi.
Latenssi, puskurit ja ihmisen havaintokyky
Latenssi mitataan yleensä millisekunteina, ja käytännössä katsotaan, että Alle noin 10 ms:n viive on käytännössä huomaamaton useimmille ihmisille.10 ja 20 millisekunnin välillä se alkaa olla havaittavissa herkissä tehtävissä, ja sen jälkeen siitä tulee selvästi ärsyttävää.
Kun kuuntelet itseäsi kuulokkeilla puhuessasi, mikä tahansa Yli 10 ms:n latenssi alkaa tuottaa "sisäisen kaiun" tunteen.Jos se nousee 30 tai 40 millisekuntiin, useimmat ihmiset hämmentyvät, lopettavat puhumisen tai ottavat kuulokkeet pois päältä.
Samaan aikaan digitaalisia äänisignaaleja kuvataan seuraavasti: näytteenottotaajuus (Hz) ja puskurin koko (näytteinä)Vertailun vuoksi 44 100 Hz tarkoittaa, että aaltomuoto jaetaan 44 100 näytteeseen sekunnissa; 48 000 Hz tekee saman 48 000 näytteellä ja niin edelleen.
Puskuri on eräänlainen pieni tietovarasto, jonka kautta ääni kiertää. Mitä suurempi se on, sitä enemmän turvamarginaalia sinulla on suorittimen piikkejä tai keskeytyksiä vastaan.Mutta tämä tapahtuu millisekuntien lisäämisen kustannuksella kokonaislatenssiin. Jos sitä pienennetään liikaa, järjestelmän on herättävä useammin latenssin täyttämiseksi ja se on alttiimpi kaatumisille tai häiriöille.
Siksi laitetta DAW-ohjelmassa tai suoratoistosovelluksessa asennettaessa tavallinen ongelma on valita puskurin koko on riittävän pieni, jotta viive ei ole havaittavissamutta ei niin paljon, että napsahtelu tai putoaminen alkaisi varsinaisen työn aikana.
Äänen viiveen vähentäminen Windowsissa WASAPI:n avulla
WASAPI-kokemuksen ja yleisesti ottaen Windowsin äänenkäytön parantamiseksi on olemassa useita toimenpiteitä, joita tulisi soveltaa tai ainakin tarkistaa sekä laitteisto-, ohjelmisto- että järjestelmätasolla.
Ensimmäinen asia on varmistaa, että Äänilaitteisto (liitäntä, integroitu kortti, USB-mikrofonit) ja sen ajurit on asennettu oikein ja ajan tasalla.Monet Windows 10:n matalan latenssin parannuksista perustuvat DDI-ominaisuuksiin ja -indikaattoreihin, joita on vain nykyaikaisissa ajureissa; Latenssin diagnosointi LatencyMonilla ja kuljettajaongelmien havaitseminen on suositeltu käytäntö.
Musiikkialalla on edelleen normina käyttää toimii laadukkaiden ASIO-ohjainten kanssa työskenneltäessä DAW-ohjelmien, virtuaali-instrumenttien tai monimutkaisten miksausten kanssaASIO tarjoaa edelleen hienosäädettävää puskurikoon hallintaa ja on yleensä vakaa, jos tietokone on tarkoitettu äänelle eikä sitä rasita ylikellotus tai raskaat rinnakkaiset tehtävät.
Suoratoistossa ja pelaamisessa ASIOsta tulee kuitenkin epäkäytännöllinen, koska Useimmat sovellukset (pelit, OBS, selaimet) vetävät natiiveista Windows-ajureista (DirectSound, WASAPI). Näitä lähteitä yhdistettäessä on suositeltavaa pysyä käyttöjärjestelmän omassa ekosysteemissä.
Yksi harvoin pettävä sääntö on Vältä ketjuttamasta signaalitielle useampia laitteita ja ohjelmia kuin on tarpeen.Jokainen analogia-digitaalimuunnos, jokainen vaihe efektiprosessorin läpi tai jokainen hyppy sovelluksesta toiseen lisää pienen viiveen ja epäsuhtaisuuden riskin.
Esimerkiksi XLR-mikrofoniin puhuminen, joka on kytketty erilliseen äänikorttiin, jossa on suora laitteistomiksaus, ei ole sama asia kuin käytä micro-USB-kaapelia, ohjelmistopohjaista äänenmuunninta, virtuaalista äänireititintä ja USB-pelikuulokkeitaToisessa tapauksessa askelten summa aiheuttaa väistämättä latenssin piikin.
Latenssi ja erityiset parannukset Windows 10:ssä ja uudemmissa versioissa
Microsoft ei ole ainoastaan hionut Windows 10:n äänimoottoria, vaan se on myös lisännyt mekanismeja... Sovellukset ja ajurit tekevät yhteistyötä vähentääkseen edestakaisen matkan viivettä tinkimättä täysin jaetun pinon joustavuudesta.
Ensinnäkin, jopa ilman koodin muuttamista, monet sovellukset ovat nähneet 4,5–16 ms:n lyhennys edestakaisessa latenssissa verrattuna Windows 8.1:eenyksinkertaisesti sisäisten moottorin optimointien ansiosta. Liukulukudataa käyttävät hyötyvät eniten.
Toiseksi, jos järjestelmässä on päivitetyt ohjaimet, nämä voivat ilmoittaa pienemmät puskurikoot kuin klassinen 10 msTämä mahdollistaa matalaa latenssia tarvitsevien sovellusten neuvotella 5 ms, 3 ms, 1 ms jne. arvoista sekä toistossa että tallennuksessa.
Lisäksi, kun sovellus alkaa toimia hyvin pienillä puskureilla, Windows aktivoi resurssienhallintatilan, joka priorisoi äänijärjestelmän: suojaa moottorin, ajurin ja kriittiseksi merkityt äänisäikeet keskeytysten ja virheiden minimoimiseksi.
Kaikki tämä tarkoittaa, että jos kehität sovelluksen, joka vaatii nopeaa reagointia, Voit luottaa uuteen infrastruktuuriin saavuttaakseen erittäin pienet latenssit tinkimättä jaetusta tilasta, edellyttäen että laitteisto tukee sitä.
AudioGraph: moderni API luomiseen ja multimediaan
AudioGraph on Universal Windows Platform API, joka on suunniteltu interaktiivisia ja musiikin luomisskenaarioita käyttäjäystävällisemmällä abstraktiokerroksella jotka käsittelevät suoraan WASAPIa. Se on saatavilla C++-, C#-, JavaScript- ja muilla .NET-kielillä.
Alhaisen latenssin saavuttamiseksi AudioGraph paljastaa ominaisuuden nimeltä AudioGraphSettings::QuantumSizeSelectionMode, jonka avulla voit määrittää, haluatko järjestelmän oletuspuskurikoon, pienimmän mahdollisen latenssin vai tietyn arvon lähellä haluttua arvoa.
Se voidaan määrittää käyttämään oletuspuskurikokoa (noin 10 ms), jolloin se valitsee ääniohjaimen tukema vähimmäistaso, tai yrittääkseen päästä lähemmäksi sovelluksen haluamaa näytteiden määrää kussakin käsittelykvantissa.
Viralliset esimerkit osoittavat, kuinka muutamalla rivillä voidaan luoda äänigraafi. minimaaliseen latenssiin valitsemalla yksinkertaisesti LowestLatency-tilanTämä asetus tarkistaa sisäisesti, mitä kokoja laite tukee, ja valitsee aggressiivisimman mahdollisen ylittämättä sallittuja rajoja.
AudioGraph käsittelee myös hallita ääniketjuja sisäisesti prioriteetin mukaisestiSiksi kehittäjän ei tarvitse erikseen valita MMCSS:ää tai työskennellä suoraan reaaliaikaisten jonojen kanssa hyötyäkseen järjestelmän matalan latenssin tilasta.
WASAPI ja IAudioClient3: jaksollisuuden hienosäätö
Jokaiselle, joka sitä tarvitsee enemmän matalan tason hallintaa, erityisiä toimintoja tai jopa pienempiä latensseja kuin AudioGraphilla saavutetaanMicrosoft laajensi WASAPIa uudella käyttöliittymällä: IAudioClient3, joka on johdettu jo tunnetusta IAudioClient2:sta.
Tämä rajapinta lisää metodeja Tarkista äänimoottorin nykyinen muoto ja taajuus jaetussa tilassa, hankkia tietylle muodolle sallitun jaksoalueen ja avata jaettuja virtoja tietyllä jaksotuksella oletusarvon hyväksymisen sijaan.
Käytännössä tämä antaa sovellukselle mahdollisuuden selvittää, mitkä puskurikoot ovat sallittuja (perusjakson kerrannaisia minimin ja maksimin välillä) ja Valitse tietty arvo, joka tasapainottaa vakauden ja viiveen tarpeidesi mukaan.
IAudioClient3:n avulla voit myös määrittää, että työnkulku käyttää sovelluksen määrittämässä muodossa ilman uudelleennäytteistystä moottorissaedellyttäen, että laite tukee juuri kyseistä muotoa. Näin vältetään välimuunnokset, jotka voivat lisätä monimutkaisuutta ja pieniä viiveitä.
Lisäksi Microsoft suosittelee, että matalaa viivettä vaativat WASAPI-sovellukset luovat käsittelytehtävänsä reaaliaikaisen työjonon (RT Work Queue) tai Media Foundation -jonojen kautta, merkitsemällä ne "Audio"- tai "ProAudio"-nimillä sen sijaan, että ne käynnistäisivät omat ketjunsa ilman koordinointia.
Tämä merkintä sallii Windowsin hallita keskitetysti näiden säikeiden prioriteetteja ja affiniteetteja sen erityisen äänitilan sisällä, mikä vähentää riskiä, että toinen alijärjestelmä keskeyttää ne kesken tiukan puskurin käsittelyn.
Parannuksia tarvitaan matalan latenssin ajureissa
Käyttäjäohjelmistokomponentti on vasta puolet tarinasta. Jotta järjestelmä todella toimisi muutaman millisekunnin puskurit olosuhteissaÄäniohjaimienkin on tehtävä oma osansa.
Windows 10:stä alkaen ajurit voivat tiettyjen ominaisuuksien avulla määrittää, mitä absoluuttinen vähimmäispuskurikoko, jota tuetaan kussakin käsittelytilassaNämä tiedot sisältävät yleisiä rajoituksia ja erityisrajoituksia oletustilalle, elokuvateatteritilalle jne.
Esimerkiksi ohjain voi määrittää absoluuttiseksi minimiksi 2 ms, mutta oletusarvoisessa prosessointitilassa efektiivinen koko on 128 näytettä 48 kHz:n taajuudella (noin 3 ms). Äänipino noudattaa näitä rajoituksia eikä koskaan yritä alittaa ilmoitettua vähimmäismäärää.
Puskurin koon lisäksi on olemassa DDI-indikaattoreita, jotka helpottavat ohjaimen tarkkaa raportointia. mikä osa puskurista on vapaa tai täynnä, anna tarkat aikaleimat suorituskykylaskurin perusteella ja joissakin tilanteissa ladata tietoja reaaliaikaista nopeammin, jos olet kerännyt tietoja sisäisesti.
Nämä ominaisuudet ovat erityisen hyödyllisiä malleissa, joissa on monimutkaisia DSP:itä tai muistin ja laitteiston välisiä ei-triviaaleja tiedonsiirtoja, joissa Virtausasento ja sisäinen latenssi riippuvat useista välilohkoistaAikaleiman laskennassa on otettava nämä kiinteät viiveet huomioon, jotta järjestelmä voi kohdistaa tiedot oikein.
Lopuksi, jotta Windows voi suojata äänialijärjestelmää riittävästi erittäin pienen viiveen tilanteissa, Kuljettajien on rekisteröitävä suoratoistoresurssinsa PortClsiinkeskeytykset ja niiden omat säikeet, joita käytetään tiedonkulun takaamiseen.
Tämä rekisteröinti voidaan tehdä ajurin latauksen aikana tai ajon aikana, ja on pakollista, että kaikki suoratoistoketjun ohjaimet osallistua tavalla tai toisella. Esimerkiksi HDAudio-väylää sisältävissä pinoissa osan tästä työstä tekee itse väyläohjain, kun taas miniportti rekisteröi omat säikeensä.
Työkaluja ja tekniikoita latenssin mittaamiseen Windowsissa
Jotta voidaan määrittää, tuottavatko WASAPI-säädöt ja ajurimuutokset todella tuloksia, on yleistä käytäntöä mitata Menopaluu-latenssi kaiuttimien kautta toistettavien ja mikrofonilla tallennettujen testipulssien avullaOhjelmisto laskee lähetyksen ja vastaanoton välisen viiveen, ja jos huomaat mikrokatkoksia, kannattaa tarkistaa, miten mittaa DPC-latenssia erityisesti.
Tämä menetelmä mahdollistaa eri puskurikokojen, toimintatilojen ja ajuriversioiden vertailun edellyttäen, että äänilaite hyväksy tarvittavat pienet puskurialueetMuussa tapauksessa järjestelmä palaa lopulta oletusarvoiseen 10 millisekuntiin; perusteellisempaa analyysia varten voit oppia, miten se tehdään. analysoi Windowsia perusteellisesti WPR/WPA-suojauksella.
Järjestelmissä, joissa on vakiomallinen HDAudio-laitteisto, Microsoftin yleinen HDAudio-aloituspakkauksen ohjain Sitä on päivitetty tukemaan näytekokoja 128 näytteen (noin 2,66 ms 48 kHz:n taajuudella) ja 480 näytteen (10 ms 48 kHz:n taajuudella) välillä. Joissakin tapauksissa tämän yleisen ajurin asentaminen voi olla hyödyllistä testausta varten.
Prosessiin kuuluu avaaminen Laitehallintapaikanna laite, joka edustaa sisäisiä kaiuttimia, ja pakota Microsoftin "High Definition Audio Device" -laitteen asennus. valmistajan koodekin sijaan. Uudelleenkäynnistyksen jälkeen järjestelmä käyttää kyseistä yleistä ohjainta kyseiselle päätepisteelle.
On suositeltavaa kirjata muistiin, mikä ajuri oli käytössä aiemmin, jotta voit tarvittaessa peruuttaa muutoksen. Vaikka Microsoftin ajuri on hyödyllinen pienten puskurikokojen kokeilemiseen, Valmistajan versio tarjoaa yleensä äänenlaadun tai erityisominaisuuksia, jotka on räätälöity paremmin laitteistolle..
WASAPI, AudioGraph ja käytännön latenssierot
Vaikka molemmat API:t käyttävät käytännössä samaa äänimoottoria AudioGraph ja WASAPI eivät aina toimi samalla tavalla latenssin suhteenjopa samoja pohjana olevia puskurikokoja käytettäessä.
AudioGraph lisää tarkoituksella latenssipuskuri tallennuspuolella toiston ja tallennuksen synkronoimiseksiTämä yksinkertaistaa sovelluskoodia huomattavasti, koska se varmistaa molempien reittien linjauksen, mutta lisää muutaman millisekunnin.
Toistopolulla, kun järjestelmä käyttää yli noin 6 ms:n puskurikokoja, AudioGraph voi ottaa käyttöön toisen turvapuskurin, jälleen ajatuksena tarjota malli ohjelmointi vakaa ja ennustettava pienen lisälatenssin hinnalla.
WASAPI puolestaan paljastaa reitin vähemmän abstraktilla tavalla. Tämä tarkoittaa, että enemmän manuaalista työtä kehittäjälleVastineeksi se kuitenkin mahdollistaa viiveen pienentämisen maksimoimisen tietyissä olosuhteissa, erityisesti matalataajuisessa jaetussa tilassa ja IAudioClient3:n kanssa.
Lisäksi, toisin kuin AudioGraph, WASAPI sallii Hallitse tarkemmin sieppauksen vaikutuksia, raakadatan käyttöä ja koordinointia muiden API-rajapintojen, kuten Media Foundationin, kanssa, mikä avaa oven erityisille optimoinneille ammattimaisissa projekteissa.
Kaikissa tapauksissa Microsoftin suositus on selvä: Älä käytä raakakäsittelytilaa kevyestiOEM-tehosteiden poistaminen käytöstä voi parantaa viivettä, mutta se voi myös johtaa vähemmän optimoituihin toistosignaaleihin tai tallennusmuotoihin, joita sovelluksen on vaikea käsitellä.
Jos kaikki nämä palaset yhdistetään, käy selväksi, että tie kesyttämiseen WASAPI-latenssiasetukset Se edellyttää Windows-käyttöjärjestelmän, laitteistosi toiminnan ja käytettävissä olevien API-rajapintojen perusteellista ymmärtämistä. Vasta sen jälkeen voit paikantaa alueet, joilla jokainen millisekunti todella voitetaan (tai menetetään), ja hienosäätää kokoonpanoa vastaamaan kunkin sovellustyypin tarpeita tinkimättä vakaudesta tai äänenlaadusta.
Intohimoinen kirjoittaja tavujen maailmasta ja tekniikasta yleensä. Rakastan jakaa tietämykseni kirjoittamalla, ja sen aion tehdä tässä blogissa, näyttää sinulle kaikki mielenkiintoisimmat asiat vempaimista, ohjelmistoista, laitteistoista, teknologisista trendeistä ja muusta. Tavoitteeni on auttaa sinua navigoimaan digitaalisessa maailmassa yksinkertaisella ja viihdyttävällä tavalla.