Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
[Microsoft Agent är inaktuell från och med Windows 7 och kan vara otillgänglig i efterföljande versioner av Windows.]
HRESULT SetVoice(
BSTR bszVoice // voice text setting for Command
);
Anger egenskapen Voice för ett -kommando.
- Returnerar S_OK för att indikera att åtgärden lyckades.
Ett -kommando måste ha egenskapen Voice och egenskapen Aktiverad vara rösttillgänglig. Den måste också ha egenskapen VoiceCaption inställd på att visas i fönstret Röstkommandon. (Om det inte finns någon VoiceCaption-används inställningen Caption för bakåtkompatibilitet.)
Det BSTR-uttryck som du anger kan innehålla hakparentestecken ([ ]) för att ange valfria ord och lodräta stapeltecken (|) för att ange alternativa strängar. Alternativ måste omges av parenteser. Till exempel "(hello [there] | hi)" uppmanar talmotorn att acceptera "hello", "hello there" eller "hi" för kommandot. Kom ihåg att inkludera lämpliga blanksteg mellan texten inom hakparenteser eller parenteser och texten som inte är inom hakparenteser eller parenteser.
Du kan använda stjärnoperatorn (*) för att ange noll eller flera instanser av orden som ingår i gruppen eller plusoperatorn (+) för att ange en eller flera instanser. Följande resulterar till exempel i en grammatik som stöder "try this", "please try this" och "please try this", med obegränsade iterationer av "please":
"please* try this"
Följande grammatikformat exkluderar "prova det här" eftersom operatorn + definierar minst en instans av "please":
"please+ try this"
Upprepningsoperatorerna följer normala prioritetsregler och gäller för det omedelbart föregående textobjektet. Följande grammatik resulterar till exempel i "New York" och "New York York", men inte "New York New York":
"New York+"
Därför vill du vanligtvis använda dessa operatorer med grupperingstecken. Följande grammatik omfattar till exempel både "New York" och "New York New York":
"(New York)+"
Repetitionsoperatorer är användbara när du vill skapa en grammatik som innehåller en upprepad sekvens, till exempel ett telefonnummer eller en specifikation av en lista med objekt:
"call (one|two|three|four|five|six|seven|eight|nine|zero|oh)*"
"I'd like (cheese|pepperoni|pineapple|canadian bacon|mushrooms|and)+"
Även om operatorerna också kan användas med hakparenteser (ett valfritt grupperingstecken), kan detta minska effektiviteten i agentens bearbetning av grammatiken.
Du kan också använda en ellips (...) för att stödja ord spotting, det vill säga att tala taligenkänningsmotorn att ignorera ord som talas i den här positionen i frasen (kallas ibland skräp ord). Talmotorn känner därför bara igen specifika ord i strängen oavsett när den talas med intilliggande ord eller fraser. Om du till exempel anger den här egenskapen till "[...] check mail [...]" taligenkänningsmotorn matchar fraser som "kontrollera e-post" eller "check mail please" till det här kommandot. Ellipser kan användas var som helst i en sträng. Var dock försiktig med den här tekniken eftersom röstinställningar med ellipser kan öka risken för oönskade matchningar.
När du definierar ord och grammatik för kommandot ska du alltid se till att du inkluderar minst ett ord som krävs. det vill säga undvik att endast ange valfria ord. Se dessutom till att ordet endast innehåller ord och bokstäver som kan uttalas. För tal är det bättre att stava ordet i stället för att använda den numeriska representationen. Utelämna även eventuella skiljetecken eller symboler. I stället för "pizzan #1 $10!", använder du till exempel "10 dollar pizza". Om du inkluderar tecken eller symboler som inte kan uttalas för ett kommando kan det leda till att talmotorn inte kompilerar grammatiken för alla dina kommandon. Slutligen gör du röstparametern så distinkt som möjligt från andra röstkommandon som du definierar. Ju större likheten mellan röst grammatik för kommandon, desto mer sannolikt talmotorn kommer att göra ett igenkänningsfel. Du kan också använda konfidenspoängen för att bättre skilja mellan två kommandon som kan ha liknande eller liknande röst grammatik.
Om du ställer in egenskapen Voice för ett -kommando aktiveras automatiskt agentens taltjänster, vilket gör lyssningsnyckeln och lyssningstipset tillgängligt. Den läser dock inte in taligenkänningsmotorn.
Not
Vilka grammatikfunktioner som är tillgängliga kan bero på taligenkänningsmotorn. Du kanske vill kontrollera med motorns leverantör för att avgöra vilka grammatikalternativ som stöds. Använd IAgentCharacterEx::SRModeID för att ange en motor.
Se även
IAgentCommand::GetVoice, IAgentCommand::SetCaption, IAgentCommand::SetEnabled, IAgentCommands::Add, IAgentCommands::Insert