1

Je travaille pour que Cortana interagisse avec un service d'application en arrière-plan. Cortana travaille avec un jeu de commandes vocales, mais lorsque j'essaie l'une des commandes vocales d'un jeu de commandes différent, il ouvre la recherche dans Bing.Cortana ne pas enregistrer la commande vocale de l'application

Des suggestions sur ce qui pourrait être à l'origine ou des modifications aux commandes pour le faire fonctionner mieux avec Cortana?

Le jeu de commandes qui ne fonctionne pas:

<Command Name="SetTemperatureDefault"> 
    <Example> change the temperature to 72 degrees </Example> 
    <ListenFor RequireAppName="BeforeOrAfterPhrase"> set [the] temperature to {Temperature} degrees </ListenFor> 
    <ListenFor RequireAppName="BeforeOrAfterPhrase"> change [the] temperature to {Temperature} degrees </ListenFor> 
    <ListenFor RequireAppName="BeforeOrAfterPhrase"> increase [the] temperature to {Temperature} </ListenFor> 
    <ListenFor RequireAppName="BeforeOrAfterPhrase"> decrease [the] temperature to {Temperature} </ListenFor> 
    <ListenFor RequireAppName="BeforeOrAfterPhrase"> set to {Temperature} degrees </ListenFor> 
    <ListenFor RequireAppName="BeforeOrAfterPhrase"> change to {Temperature} degrees </ListenFor> 
    <ListenFor RequireAppName="BeforeOrAfterPhrase"> increase to {Temperature} degrees </ListenFor> 
    <ListenFor RequireAppName="BeforeOrAfterPhrase"> decrease to {Temperature} degrees </ListenFor> 
    <ListenFor RequireAppName="BeforeOrAfterPhrase"> set temp to {Temperature} degrees </ListenFor> 
    <ListenFor RequireAppName="BeforeOrAfterPhrase"> change temp to {Temperature} degrees </ListenFor> 
    <Feedback> Changing temperature... </Feedback> 
    <VoiceCommandService Target="CozyVoiceCommandService" /> 
</Command> 

Répondre

1

Tout d'abord, la garantie que votre VCD a été installé correctement lors de l'initialisation de l'application. Assurez-vous qu'il ne donne aucune exception.

protected async override void OnLaunched(LaunchActivatedEventArgs e) 
{ 
    ... 
    // Install the VCD 
    try 
    { 
     StorageFile vcdStorageFile = await Package.Current.InstalledLocation.GetFileAsync(@"HomeControlCommands.xml"); 
     await VoiceCommandDefinitionManager.InstallCommandDefinitionsFromStorageFileAsync(vcdStorageFile); 
    } 
    catch (Exception ex) 
    { 
     System.Diagnostics.Debug.WriteLine("There was an error registering the Voice Command Definitions", ex); 
    } 
} 

Puis, comme vous utilisez {} température pour les commandes, vous devez utiliser un PhraseTopic après avoir la liste de tous les Commande.

... 
    <Command Name="SetTemperatureDefault"> 
     <Example> change the temperature to 72 degrees </Example> 
     <ListenFor RequireAppName="BeforeOrAfterPhrase"> set [the] temperature to {Temperature} degrees </ListenFor> 
     <ListenFor RequireAppName="BeforeOrAfterPhrase"> change [the] temperature to {Temperature} degrees </ListenFor> 
     <ListenFor RequireAppName="BeforeOrAfterPhrase"> increase [the] temperature to {Temperature} </ListenFor> 
     <ListenFor RequireAppName="BeforeOrAfterPhrase"> decrease [the] temperature to {Temperature} </ListenFor> 
     <ListenFor RequireAppName="BeforeOrAfterPhrase"> set to {Temperature} degrees </ListenFor> 
     <ListenFor RequireAppName="BeforeOrAfterPhrase"> change to {Temperature} degrees </ListenFor> 
     <ListenFor RequireAppName="BeforeOrAfterPhrase"> increase to {Temperature} degrees </ListenFor> 
     <ListenFor RequireAppName="BeforeOrAfterPhrase"> decrease to {Temperature} degrees </ListenFor> 
     <ListenFor RequireAppName="BeforeOrAfterPhrase"> set temp to {Temperature} degrees </ListenFor> 
     <ListenFor RequireAppName="BeforeOrAfterPhrase"> change temp to {Temperature} degrees </ListenFor> 
     <Feedback> Changing temperature... </Feedback> 
     <VoiceCommandService Target="CozyVoiceCommandService" /> 
    </Command> 

    <PhraseTopic Label="Temperature" /> 
    </CommandSet> 
</VoiceCommands> 

Je l'ai testé ici et ça fonctionne comme un charme.

Voici un tutorial complet pour Cortana à l'avant-plan qui peut être utile dans d'autres situations dont vous pourriez avoir besoin.

+0

Cela l'a corrigé! Je l'utilisais avec une PhraseList au lieu d'un PhraseTopic mais en le changeant en PhraseTopic comme vous l'aviez suggéré pour une raison quelconque –

+0

Great! A propos de la PhraseList, vous devez l'utiliser lorsque vous avez des valeurs prédéfinies comme: Las Vegas Dallas de New York talkitbr