Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poznámka:
Toto téma se týká především našich uživatelských prostředí, která jsou aktuálně dodávána ve Windows 10 (verze 1909 a starší) Další informace najdete v tématu Ukončení podpory Cortany ve Windows a Teams.
Cortana, technologie osobního asistenta byla poprvé ukázaná na konferenci Microsoft BUILD Developer Conference v roce 2013. Platforma pro řeč ve Windows slouží k výkonu všech hlasových prostředí ve Windows 10, jako je Cortana a Diktování. Aktivace hlasem je funkce, která uživatelům umožňuje vyvolat modul pro rozpoznávání řeči z různých stavů napájení zařízení tím, že řekne konkrétní frázi " Hey Cortana". Pokud chcete vytvořit hardware, který podporuje technologii hlasové aktivace, projděte si informace v tomto tématu.
Poznámka:
Implementace hlasové aktivace je významným projektem a jde o úkol, který dokončují dodavatelé SoC. OEM mohou kontaktovat dodavatele SoC s žádostí o informace o implementaci hlasové aktivace SoC.
Prostředí koncového uživatele Cortany
Pokud chcete porozumět prostředí hlasové interakce dostupné ve Windows, projděte si tato témata.
Téma | Popis |
---|---|
Co je Cortana? | Poskytuje a přehled a směr použití Cortany |
Úvod k hlasové aktivaci „Hey Cortana“ a „Nauč se můj hlas“
Aktivace hlasem "Hey Cortana"
Funkce "Hey Cortana" Voice Activation (VA) umožňuje uživatelům rychle zapojit prostředí Cortany mimo svůj aktivní kontext (tj. to, co je aktuálně na obrazovce) pomocí hlasu. Uživatelé často chtějí mít okamžitý přístup k prostředí, aniž by museli fyzicky komunikovat se zařízením. Pro uživatele telefonu to může být způsobeno jízdou v autě a jejich pozorností a rukama zapojené do provozu vozidla. Pro uživatele Xboxu to může být způsobeno tím, že nechcete najít a připojit ovladač. Pro uživatele počítačů to může být způsobeno rychlým přístupem k prostředí, aniž by bylo nutné provádět více akcí myši, dotykového ovládání nebo klávesnice, například počítače v kuchyni.
Hlasová aktivace poskytuje vždy poslech hlasového vstupu prostřednictvím předdefinovaných klíčových frází nebo "aktivačních frází". Klíčové fráze mohou být samostatné výroky ("Hey Cortana") jako článkovaný příkaz nebo následované nějakou řečovou akcí, například "Hej Cortano, kde je moje příští schůzka?", zřetězený příkaz.
Pojem Detekce klíčových slov popisuje detekci klíčového slova hardwarem nebo softwarem.
Aktivace klíčového slova proběhne pouze, když je řečeno jenom klíčové slovo Cortana. Cortana se spustí a přehraje zvuk EarCon, který označuje, že vstoupila do režimu naslouchání.
Zřetězený příkaz popisuje schopnost vydat příkaz přímo za klíčovým slovem (například "Ahoj Cortano, zavolej Johnovi"), spustit Cortanu (pokud již není spuštěna) a vyřídit příkaz (zahájit telefonní hovor s Johnem).
Tento diagram znázorňuje zřetězenou a pouze klíčovou aktivaci.
Microsoft poskytuje výchozí detektor klíčových slov pro operační systém (softwarový detektor klíčových slov), který se používá k zajištění kvality detekce klíčových slov u hardwaru a k poskytování funkce Hey Cortana v případech, kdy hardwarová detekce klíčových slov chybí nebo není k dispozici.
Funkce "Learn my voice" (Naučit se můj hlas)
Funkce "Learn my voice" umožňuje uživateli trénovat Cortanu, aby rozpoznal svůj jedinečný hlas. Toho je dosaženo, když uživatel na obrazovce nastavení Cortany vybere možnost "Naučte se, jak říkám 'Hey Cortana'". Uživatel pak opakuje šest pečlivě zvolených frází, které poskytují dostatek fonetických vzorů k identifikaci jedinečných atributů hlasu uživatelů.
Když je aktivace hlasem spárovaná s "Learn my voice" (Naučit se můj hlas), budou dva algoritmy spolupracovat, aby se snížila počet falešných aktivací. To je zvláště cenné pro scénář zasedací místnosti, kde jedna osoba říká "Hey Cortana" v místnosti plné zařízení. Tato funkce je dostupná jenom pro Windows 10 verze 1903 a starší.
Aktivace hlasem využívá spotter klíčového slova (KWS), který reaguje, pokud se zjistí klíčová fráze. Pokud má KWS probudit zařízení z úsporného režimu, řeší se to pomocí funkce Wake on Voice (WoV). Další informace naleznete v tématu Wake on Voice.
Glosář termínů
Tento glosář shrnuje termíny související s aktivací hlasu.
termín | Příklad/definice |
---|---|
Fázovaný příkaz | Příklad: Hej Cortano <pauza, počkej na zvukový signál> Jaké je počasí? Tento příkaz se někdy označuje jako "Dvojitý příkaz" nebo "Pouze klíčové slovo". |
Zřetězený příkaz | Příklad: Hey Cortana, jaké je počasí? Tento příkaz se někdy označuje jako "one-shot command" (jednorázový příkaz). |
Hlasová aktivace | Scénář detekce klíčových slov předdefinované aktivační fráze Například "Hey Cortana" je scénář aktivace hlasem Microsoftu. |
WoV | Wake-on-Voice – technologie, která umožňuje aktivaci hlasu z vypnuté obrazovky, nižšího stavu napájení až po obrazovku v režimu plného napájení. |
WoV z moderního pohotovostního režimu | Probuzení hlasem ze stavu moderního pohotovostního režimu (S0ix) vypnuté obrazovky do stavu plného výkonu se zapnutou obrazovkou (S0). |
Moderní pohotovostní režim | Infrastruktura Windows Low Power Idle – následník systému Connected Standby (CS) ve Windows 10. První stav moderního pohotovostního režimu je, když je obrazovka vypnutá. Nejsáhlejší stav spánku je v režimu DRIPS/Resiliency. Další informace naleznete v tématu Moderní pohotovostní režim |
KWS | Detektor klíčových slov – algoritmus, který zajišťuje detekci „Hey Cortana“ |
SW KWS | Softwarový vyhledávač klíčových slov – implementace KWS, který běží na hostiteli (CPU). V případě "Hey Cortana" je SW KWS součástí Windows. |
HW KWS | Spotter klíčových slov offloadovaný na hardware – implementace KWS, která běží na hardwaru. |
Nárazová vyrovnávací paměť | Kruhová vyrovnávací paměť použitá k ukládání dat PCM, která se můžou "rozrůst" v případě detekce KWS, aby se zahrnul veškerý zvuk, který aktivoval detekci KWS. |
Adaptér OEM detektoru klíčových slov | Překrytí na úrovni ovladače, které umožňuje hardwaru s podporou WoV komunikovat s Windows a stackem Cortany. |
Vzor | Datový soubor akustického modelu používaný algoritmem KWS. Datový soubor je statický. Modely jsou lokalizovány, jeden pro každou lokalitu. |
Integrace hardwarového spotteru klíčových slov
K implementaci hardwarového spotteru klíčových slov (HW KWS) musí dodavatelé SoC provést následující úlohy.
- Vytvořte vlastní detektor klíčových slov založený na ukázce SYSVAD popsané dále v tomto tématu. Tyto metody implementujete v COM DLL popsané v rozhraní adaptéru OEM Detektoru klíčových slov.
- Implementujte vylepšení WAVE RT popsaná v vylepšeních WAVERT.
- Zadejte položky souboru INF, které popisují všechny vlastní apOs používané k detekci klíčových slov.
- PKEY_FX_KeywordDetector_StreamEffectClsid
- PKEY_FX_KeywordDetector_ModeEffectClsid
- PKEY_FX_KeywordDetector_EndpointEffectClsid
- PKEY_SFX_KeywordDetector_ProcessingModes_Supported_For_Streaming
- PKEY_MFX_KeywordDetector_ProcessingModes_Supported_For_Streaming
- DetektorKlíčovýchSlov_PodporovanéZpůsobyZpracování_ProStreamování
- Projděte si doporučení k hardwaru a pokyny k testování v doporučení zvukového zařízení. Toto téma obsahuje pokyny a doporučení pro návrh a vývoj zvukových vstupních zařízení určených pro použití s platformou Speech Platform microsoftu.
- Podpora fázovaných i zřetězených příkazů
- Podporu pro "Hey Cortana" pro každé z podporovaných jazykových nastavení Cortany.
- Objekty APO (Objekty pro zpracování zvuku) musí obsahovat následující efekty:
- AEC
- AGC
- NS
- Efekty pro režim zpracování řeči musí ohlásit MFX APO.
- APO může provádět převod formátu ve formátu MFX.
- APO musí vypisovat následující formát:
- 16 kHz, mono, FLOAT.
- Volitelně můžete navrhnout jakékoli vlastní APOs pro vylepšení procesu záznamu zvuku. Další informace naleznete v tématu Objekty pro zpracování zvuku systému Windows.
Požadavky na rozpoznávání klíčových slov se zatížením přeneseným na hardware (HW KWS) Požadavky na WoV
- HW KWS WoV je podporován během pracovního stavu S0 a stavu spánku S0, také známého jako moderní pohotovostní režim.
- HW KWS WoV není podporován z S3.
Požadavky AEC pro HW KWS
Pro Windows verze 1709
- K podpoře HW KWS WoV ve stavu spánku S0 (moderní pohotovostní režim) není AEC vyžadován.
- HW KWS WoV pro pracovní stav S0 není podporován ve Windows verze 1709.
Pro Windows verze 1803
- Podporuje se HW KWS WoV pro pracovní stav S0.
- Aby bylo možné povolit HW KWS WoV pro pracovní stav S0, musí APO podporovat AEC.
Přehled ukázkového kódu
Existuje vzorový kód pro ovladač zvuku, který implementuje aktivaci hlasu na GitHubu jako součást ukázky virtuálního zvukového adaptéru SYSVAD. Tento kód doporučujeme použít jako výchozí bod. Kód je k dispozici na této adrese.
https://github.com/Microsoft/Windows-driver-samples/tree/main/audio/sysvad/
Další informace o ukázkovém zvukovém ovladači SYSVAD naleznete v tématu Ukázkové zvukové ovladače.
Informace o systému rozpoznávání klíčových slov
Podpora zvukové vrstvy pro hlasové spouštění
Vnější rozhraní audio stacku pro povolení hlasové aktivace slouží jako komunikační kanál pro platformu řeči a zvukové ovladače. Externí rozhraní jsou rozdělena do tří částí.
- Detektor klíčových slov Device Driver Interface (DDI). Rozhraní ovladače zařízení detektoru klíčových slov je zodpovědné za konfiguraci a aktivaci HW detektoru klíčových slov (KWS). Ovladač ho také používá k oznamování systému událostí detekce.
- OEM adaptér detektoru klíčových slov DLL. Tato knihovna DLL implementuje rozhraní COM pro přizpůsobení neprůhledných dat specifických pro ovladač pro použití operačním systémem, aby usnadnila detekci klíčových slov.
- Vylepšení streamování WaveRT Tato vylepšení umožňují ovladači zvuku streamovat zvuková data uložená ve vyrovnávací paměti z detekce klíčových slov.
Vlastnosti zvukového koncového bodu
Vytváření grafů zvukového koncového bodu probíhá normálně. Graf je připravený k rychlejšímu zpracování než zachycení v reálném čase. Časová razítka u zachycených bufferů zůstávají přesná. Konkrétně časová razítka správně zobrazují data zachycená v minulosti a uložená ve vyrovnávací paměti, která se nyní uvolňují ve formě výbuchu.
Teorie obejití streamování zvuku přes Bluetooth
Ovladač jako obvykle zveřejňuje filtr KS pro své zařízení pro zachytávání. Tento filtr podporuje několik vlastností KS a jednu událost KS pro konfiguraci, povolení a signalizaci události detekce. Filtr také zahrnuje dodatečnou továrnu na piny, identifikovanou jako detektor klíčových slov (KWS). Tento pin se používá ke streamování zvuku z detektoru klíčových slov.
Vlastnosti zahrnují:
- Podporované typy klíčových slov – KSPROPERTY_SOUNDDETECTOR_PATTERNS. Tato vlastnost je nastavena operačním systémem pro konfiguraci klíčových slov, která mají být zjištěna.
- Seznam vzorů identifikátorů klíčových slov GUID – KSPROPERTY_SOUNDDETECTOR_SUPPORTEDPATTERNS Tato vlastnost slouží k získání seznamu identifikátorů GUID, které identifikují typy podporovaných vzorů.
- Ozbrojený - KSPROPERTY_SOUNDDETECTOR_ARMED. Tato vlastnost pro čtení a zápis je jednoduše logický stav označující, jestli je detektor ozbrojený. Operační systém to nastaví tak, aby zapojuje detektor klíčových slov. Operační systém toto může vymazat, aby došlo k odpojení. Ovladač to automaticky vymaže, když jsou nastaveny vzorce klíčových slov a také po zjištění klíčového slova. (Operační systém se musí znovu nastavit.)
- Výsledek shody – KSPROPERTY_SOUNDDETECTOR_MATCHRESULT Tato vlastnost čtení obsahuje výsledná data po zjištění.
Událost, která se aktivuje při zjištění klíčového slova, je KSEVENT_SOUNDDETECTOR_MATCHDETECTED.
Posloupnost operací
Spuštění systému
- Operační systém přečte podporované typy klíčových slov a ověří, jestli má v daném formátu klíčová slova.
- Operační systém zaregistruje událost změny stavu detektoru.
- Operační systém nastaví vzory klíčových slov.
- OS aktivuje detektor.
Při přijetí události KS
- Řidič odzbroje detektor.
- Operační systém přečte stav detektoru klíčových slov, analyzuje vrácená data a určí, který vzor byl zjištěn.
- OS znovu aktivuje detektor.
Interní operace ovladače a hardwaru
Když je detektor aktivovaný, hardware může nepřetržitě zachytávat a ukládat zvuková data v malé vyrovnávací paměti FIFO. (Velikost této vyrovnávací paměti FIFO je určena požadavky mimo tento dokument, ale obvykle je v rozsahu od stovek milisekund do několika sekund.) Algoritmus detekce pracuje při streamování dat přes tuto vyrovnávací paměť. Návrh ovladače a hardwaru je takový, že při aktivaci nedochází k žádné interakci mezi ovladačem a hardwarem ani přerušení aplikačních procesorů, dokud není rozpoznáno klíčové slovo. To umožňuje systému dosáhnout nižšího stavu napájení, pokud neexistuje žádná jiná aktivita.
Když hardware zjistí klíčové slovo, vygeneruje přerušení. Během čekání, až ovladač obsluhuje přerušení, hardware nadále zachytává zvuk do vyrovnávací paměti, čímž se zajišťuje, že po klíčovém slovu nedojde ke ztrátě žádných dat, pokud to dovolí omezení vyrovnávací paměti.
Časové razítka klíčových slov
Po zjištění klíčového slova musí všechna řešení hlasové aktivace ukládat všechna mluvená klíčová slova do vyrovnávací paměti, včetně 250 ms před začátkem klíčového slova. Ovladač zvuku musí poskytovat časová razítka identifikující začátek a konec klíčové fráze ve streamu.
Aby bylo možné podporovat časová razítka začátku a konce klíčového slova, může software DSP potřebovat interně označovat události časovými razítky na základě DSP hodin. Jakmile se zjistí klíčové slovo, software DSP komunikuje s ovladačem a připraví událost KS. Ovladač a software DSP bude muset mapovat časová razítka DSP na hodnotu čítače výkonu Windows. Metoda tohoto postupu je specifická pro návrh hardwaru. Jedním z možných řešení je, že ovladač bude číst aktuální čítač výkonu, dotazovat se na aktuální časové razítko DSP, znovu číst aktuální čítač výkonu a pak odhadnout korelaci mezi čítačem výkonu a časem DSP. Poté může ovladač namapovat časová razítka klíčového slova DSP na časová razítka čítačů výkonu Windows.
OEM rozhraní adaptéru pro detektor klíčových slov
OEM poskytuje implementaci objektu MODELU COM, která funguje jako zprostředkovatel mezi operačním systémem a ovladačem, což pomáhá vypočítat nebo analyzovat neprůsedná data zapsaná a přečtená do zvukového ovladače prostřednictvím KSPROPERTY_SOUNDDETECTOR_PATTERNS a KSPROPERTY_SOUNDDETECTOR_MATCHRESULT.
CLSID objektu COM je identifikátor GUID typu detektoru vrácený KSPROPERTY_SOUNDDETECTOR_SUPPORTEDPATTERNS. OS volá CoCreateInstance, předává identifikátor GUID typu vzoru, aby vytvořil instanci odpovídajícího COM objektu, který je kompatibilní s typem vzoru klíčového slova, a volá metody v rozhraní IKeywordDetectorOemAdapter objektu.
Požadavky na COM vlákencový model
Implementace OEM může zvolit libovolný z modelů vláken COM.
IKeywordDetectorOemAdapter
Návrh rozhraní se pokusí zachovat bezstavovou implementaci objektu. Jinými slovy, implementace by neměla vyžadovat, aby mezi voláními metody nebyl uložen žádný stav. Ve skutečnosti interní třídy C++ pravděpodobně nepotřebují žádné členské proměnné nad rámec těch, které jsou nutné k implementaci objektu COM obecně.
Metody
Implementujte následující metody.
- IKeywordDetectorOemAdapter::BuildArmingPatternData
- IKeywordDetectorOemAdapter::ComputeAndAddUserModelData
- IKeywordDetectorOemAdapter::GetCapabilities
- IKeywordDetectorOemAdapter::ParseDetectionResultData
- IKeywordDetectorOemAdapter::VerifyUserKeyword
KEYWORDID
Výčet KEYWORDID identifikuje text fráze nebo funkci klíčového slova a používá se také v adaptérech služby Windows Biometric Service. Další informace naleznete v tématu Přehled biometrické architektury – Základní komponenty platformy
typedef enum {
KwInvalid = 0,
KwHeyCortana = 1,
KwSelect = 2
} KEYWORDID;
Výběr klíčového slova
Struktura KEYWORDSELECTOR je sada ID, které jedinečně vyberou konkrétní klíčové slovo a jazyk.
typedef struct
{
KEYWORDID KeywordId;
LANGID LangId;
} KEYWORDSELECTOR;
Zpracování dat modelu
Statický model nezávislý na uživatelích – Knihovna DLL OEM obvykle obsahuje nějaká statická data modelu nezávislá na uživatelích, která jsou součástí knihovny DLL, nebo do samostatného datového souboru, který je součástí knihovny DLL. Sada podporovaných ID klíčových slov vrácených rutinou GetCapabilities by závisela na těchto datech. Pokud například seznam podporovaných ID klíčových slov vrácených funkcí GetCapabilities zahrnuje KwHeyCortana, data statického modelu nezávislého na uživatelích by obsahovala data pro Hey Cortana (nebo jeho překlad) pro všechny podporované jazyky.
Dynamický model závislý na uživatelích – IStream poskytuje model úložiště s náhodným přístupem. OS předává ukazatel na rozhraní IStream mnoha metodám na rozhraní IKeywordDetectorOemAdapter. Operační systém zálohuje implementaci IStream s odpovídajícím úložištěm pro až 1 MB dat.
Obsah a struktura dat v tomto úložišti je definována výrobcem OEM. Zamýšleným účelem je trvalé úložiště dat modelu závislých na uživateli vypočítaných nebo načtených knihovnou DLL OEM.
Operační systém může volat metody rozhraní s prázdným IStreamem, zejména pokud uživatel nikdy nenatrénoval klíčové slovo. Operační systém vytvoří samostatné úložiště IStream pro každého uživatele. Jinými slovy, daná IStream ukládá data modelu pro jednoho a pouze jednoho uživatele.
Vývojář knihovny DLL OEM rozhoduje, jak spravovat nezávislá uživatelská data a data závislá na uživatelích. Nikdy však neukládá uživatelská data kdekoli mimo IStream. Jeden možný návrh knihovny DLL OEM by interně přepínala mezi přístupem k IStream a statickými uživatelsky nezávislými daty v závislosti na parametrech aktuální metody. Alternativní návrh by mohl zkontrolovat IStream na začátku každého volání metody a přidat statická data nezávislá na uživateli do IStreamu, pokud tam ještě nejsou, což umožňuje zbytku metody přístup pouze k IStreamu pro všechna data modelu.
Školení a provoz zpracování zvuku
Jak jsme popsali dříve, tok trénovacího uživatelského rozhraní má za následek, že jsou ve zvukovém streamu k dispozici celé fonesticky bohaté věty. Každá věta je jednotlivě předána IKeywordDetectorOemAdapter::VerifyUserKeyword k ověření, že obsahuje očekávané klíčové slovo a má přijatelnou kvalitu. Po shromáždění a ověření všech vět v uživatelském rozhraní jsou všechny předány v jednom volání IKeywordDetectorOemAdapter::ComputeAndAddUserModelData.
Zvuk se zpracovává jedinečným způsobem pro trénování hlasové aktivace. Následující tabulka shrnuje rozdíly mezi trénováním hlasové aktivace a běžným využitím rozpoznávání hlasu.
|
Hlasové trénování | Rozpoznávání hlasu | |
Režim | Syrový | Nezpracovaná data nebo mluvený projev |
Připnout | Normální | KWS |
Formát zvuku | 32bitový float (typ = audio, podtyp = IEEE_FLOAT, vzorkovací frekvence = 16 kHz, bity = 32) | Spravuje se pomocí zvukové vrstvy operačního systému. |
Mic | Mikrofon 0 | Všechny mikrofony v poli nebo mono |
Přehled systému rozpoznávání klíčových slov
Tento diagram poskytuje přehled systému rozpoznávání klíčových slov.
Diagramy sekvence rozpoznávání klíčových slov
V těchto diagramech je modul běhového prostředí řeči zobrazen jako „platforma pro řeč“. Jak už jsme zmínili dříve, řečová platforma Pro Windows slouží k výkonu všech hlasových prostředí ve Windows 10, jako je Cortana a diktování.
Během spouštění se shromáždí schopnosti pomocí IKeywordDetectorOemAdapter::GetCapabilities.
Později, když uživatel vybere možnost Učit se můj hlas, bude vyvolán tréninkový proces.
Tento diagram popisuje proces přípravy k detekci klíčových slov.
Vylepšení WAVERT
Rozhraní miniportu jsou definována tak, aby byla implementována ovladači miniportu WaveRT. Tato rozhraní poskytují metody pro zjednodušení ovladače zvuku, zlepšení výkonu a spolehlivosti zvukového kanálu operačního systému nebo podporu nových scénářů. Je definována nová vlastnost rozhraní zařízení PnP, která ovladači umožňuje poskytovat statické výrazy omezení velikosti vyrovnávací paměti operačnímu systému.
Velikosti vyrovnávací paměti
Ovladač pracuje s různými omezeními při přesouvání zvukových dat mezi operačním systémem, ovladačem a hardwarem. Tato omezení mohou být způsobená fyzickým hardwarovým přenosem, který přesouvá data mezi pamětí a hardwarem, nebo kvůli modulům zpracování signálu v rámci hardwaru nebo přidruženého DSP.
HW-KWS řešení musí podporovat velikosti zvukového zachytávání nejméně 100 ms a až 200 ms.
Ovladač vyjadřuje omezení velikosti vyrovnávací paměti nastavením vlastnosti zařízení DEVPKEY_KsAudio_PacketSize_Constraints na rozhraní zařízení KSCATEGORY_AUDIO PnP filtrovacího prvku KS, který má KS streamovací piny. Tato vlastnost by měla zůstat platná a stabilní, pokud je povolené rozhraní filtru KS. Operační systém může tuto hodnotu kdykoli přečíst, aniž by musel otevřít popisovač ovladače a zavolat ovladač.
DEVPKEY_KsAudio_PacketSize_Constraints
Hodnota vlastnosti DEVPKEY_KsAudio_PacketSize_Constraints obsahuje strukturu KSAUDIO_PACKETSIZE_CONSTRAINTS popisující omezení fyzického hardwaru (tj. z důvodu mechaniky přenosu dat z vyrovnávací paměti WaveRT do zvukového hardwaru). Struktura obsahuje pole 0 nebo více KSAUDIO_PACKETSIZE_PROCESSINGMODE_CONSTRAINT struktur popisujících omezení specifická pro všechny režimy zpracování signálu. Ovladač nastaví tuto vlastnost před voláním PcRegisterSubdevice nebo jiným povolením rozhraní filtru KS pro piny streamování.
IMiniportWaveRTInputStream
Ovladač implementuje toto rozhraní pro lepší koordinaci toku zvukových dat z ovladače do operačního systému. Pokud je toto rozhraní k dispozici v datovém proudu zachycení, operační systém používá metody tohoto rozhraní pro přístup k datům ve vyrovnávací paměti WaveRT. Další informace naleznete v tématu IMiniportWaveRTInputStream::GetReadPacket
IMiniportWaveRTOutputStream
Miniport WaveRT volitelně implementuje toto rozhraní, aby bylo informováno o průběhu zápisu z operačního systému a aby mohlo vrátit přesnou pozici proudu. Další informace najdete v IMiniportWaveRTOutputStream::SetWritePacket, IMiniportWaveRTOutputStream::GetOutputStreamPresentationPosition a IMiniportWaveRTOutputStream::GetPacketCount.
Časové razítka čítačů výkonu
Několik rutin ovladačů vrací časové razítko čítače výkonu Windows, které odráží čas, kdy jsou vzorky zachyceny nebo prezentovány zařízením.
V zařízeních, která mají komplexní kanály DSP a zpracování signálu, může být výpočet přesného časového razítka náročný a měl by být proveden promyšleně. Časová razítka by neměla jednoduše odrážet čas, kdy byly vzorky přeneseny do operačního systému nebo z operačního systému do DSP.
- V rámci DSP sledujte vzorková časová razítka pomocí interních DSP hodin.
- Mezi ovladačem a DSP vypočítejte korelaci mezi čítačem výkonu Windows a hodinou DSP. Postupy mohou být od velmi jednoduchých (ale méně přesných) po poměrně složité nebo nové (ale přesnější).
- Vezměte v úvahu jakákoli konstantní zpoždění způsobená algoritmy zpracování signálu nebo přenosovými kanály či hardwarem, pokud tato zpoždění nejsou jinak zohledněna.
Operace čtení v burst módu
Tato část popisuje interakci operačního systému a ovladače pro shlukové čtení. Nárazové čtení může probíhat mimo scénář hlasové aktivace, pokud ovladač podporuje model WaveRT založený na paketech, včetně funkce IMiniportWaveRTInputStream::GetReadPacket .
Probereme dva ukázkové scénáře čtení s výpadkem. Pokud miniport podporuje pin kategorie KSNODETYPE_AUDIO_KEYWORDDETECTOR, ovladač začne při zjištění klíčového slova zachytávat a interně ukládat data do vyrovnávací paměti. V jiném scénáři může ovladač volitelně interně ukládat data mimo vyrovnávací paměť WaveRT, pokud operační systém nečte data dostatečně rychle voláním IMiniportWaveRTInputStream::GetReadPacket.
Aby ovladač uvolnil data zachycená před přechodem na KSSTATE_RUN, musí uchovat přesné informace o časové známce vzorku spolu s daty uloženými ve vyrovnávací paměti. Časové razítka identifikují instanci vzorkování zachycených vzorků.
Po přechodu datového proudu na KSSTATE_RUN ovladač ihned nastaví událost upozornění o vyrovnávací paměti, protože už má k dispozici data.
V této události operační systém volá GetReadPacket() k získání informací o dostupných datech.
a. Ovladač vrátí počet paketů platných zachycených dat (0 pro první paket po přechodu z KSSTATE_STOP na KSSTATE_RUN), ze kterých může operační systém odvodit pozici paketu ve vyrovnávací paměti WaveRT a také pozici paketu vzhledem ke spuštění datového proudu.
b) Ovladač také vrátí hodnotu čítače výkonu, která odpovídá instanci vzorkování prvního vzorku v paketu. Všimněte si, že tato hodnota čítače výkonu může být relativně stará v závislosti na tom, kolik dat zachycení bylo uloženo do vyrovnávací paměti hardwaru nebo ovladače (mimo vyrovnávací paměť WaveRT).
c. Pokud je k dispozici více nepřečtených dat uložených ve vyrovnávací paměti, může ovladač: i. Okamžitě přenese tato data do dostupného prostoru vyrovnávací paměti WaveRT (tj. mezeru, kterou paket vrácený z GetReadPacketu nepoužívá), vrátí hodnotu true pro MoreData a nastaví událost oznámení vyrovnávací paměti před návratem z této rutiny. Nebo ii) Programuje hardware pro rozšíření dalšího paketu do dostupného prostoru vyrovnávací paměti WaveRT, vrátí hodnotu false pro MoreData a později nastaví událost vyrovnávací paměti po dokončení přenosu.
Operační systém čte data z vyrovnávací paměti WaveRT pomocí informací vrácených metodou GetReadPacket().
Operační systém čeká na oznámení o události vyrovnávací paměti. Čekání se může ukončit okamžitě, pokud ovladač nastaví oznámení vyrovnávací paměti ve kroku (2c).
Pokud ovladač okamžitě nenastavil událost v kroku (2c), ovladač nastaví událost po přenosu zachycených dat do vyrovnávací paměti WaveRT a zpřístupní ji operačnímu systému ke čtení.
Přejděte na (2). Pro KSNODETYPE_AUDIO_KEYWORDDETECTOR piny detektoru klíčových slov by ovladače měly přidělit dostatek interní vyrovnávací paměti pro nejméně 5000 ms zvukových dat. Pokud se operačnímu systému nepodaří vytvořit stream na pinu před přetečením vyrovnávací paměti, může ovladač ukončit interní aktivitu ukládání do vyrovnávací paměti a uvolnit přidružené prostředky.
Probuzení hlasem
Funkce Wake On Voice (WoV) umožňuje uživateli aktivovat a dotazovat engine pro rozpoznávání řeči ze stavu vypnuté obrazovky s nízkou spotřebou energie do stavu zapnuté obrazovky s plnou spotřebou energie při vyslovení určitého klíčového slova, například "Hey Cortana".
Tato funkce umožňuje, aby zařízení vždy naslouchá hlasu uživatele, když je zařízení v nízkém stavu napájení, včetně toho, kdy je obrazovka vypnutá a zařízení je nečinné. Dělá to pomocí režimu poslechu, což je nižší výkon v porovnání s mnohem vyšším využitím energie při normálním nahrávání mikrofonu. Rozpoznávání řeči s nízkou spotřebou energie umožňuje uživateli jednoduše říct předem definovanou klíčovou frázi, jako je "Hey Cortana", následovanou další hlasovou frází, jako je "kdy mám další schůzku", a tím zahájit rozpoznávání řeči hands-free způsobem. To bude fungovat bez ohledu na to, jestli je zařízení používáno nebo nečinné s vypnutou obrazovkou.
Zvukový systém zodpovídá za komunikaci dat probuzení (ID mluvčího, aktivace klíčového slova, úroveň spolehlivosti) a také za upozorňování příslušných klientů na zjištění klíčového slova.
Ověřování v moderních pohotovostních systémech
WoV ze stavu nečinnosti systému lze ověřit na systémech Modern Standby pomocí testů Modern Standby Wake on Voice Basic Test na AC-napájení a Modern Standby Wake on Voice Basic Test na DC-napájení v HLK. Tyto testy kontrolují, že systém má hardwarový detektor klíčového slova (HW-KWS), dokáže vstoupit do nejhlubšího stavu nečinnosti platformy runtime (DRIPS) a může se probudit z režimu Modern Standby na hlasový příkaz s latencí obnovení systému menší nebo rovnou jedné sekundě.