Cortana è l'assistente personale creato da Microsoft che ritroviamo nei nostri Windows Phone, così come da Windows 10 ritroveremo nei nostri PC e tablet. Cortana è guidata sia da comandi scritti che da comandi dettati vocalmente e possiamo anche fare in modo di insegnare a Cortana dei comandi specifici per interagire con la nostra applicazione.
Ci basterà infatti creare un file XML con la lista dei comandi ed aggiungerlo alla nostra applicazione:
<?xml version="1.0" encoding="utf-8"?> <VoiceCommands xmlns="http://schemas.microsoft.com/voicecommands/1.1"> <CommandSet xml:lang="it-it"> <CommandPrefix> Mia app, </CommandPrefix> <Example> mostrami viaggi per? </Example> <Command Name="showTripToDestination"> <Example> mostra viaggi per Londra </Example> <ListenFor> mostra viaggi per {destination} </ListenFor> <Feedback> caricando i viaggi per {destination} </Feedback> <Navigate/> </Command> <PhraseList Label="destination"> <Item> Londra </Item> <Item> Milano </Item> <Item> New York </Item> </PhraseList> </CommandSet> </VoiceCommands>
In seguito quello che dobbiamo fare è registrare questo file XML all'avvio della nostra applicazione così da istruire Cortana che sarà in grado di interagire con la nostra app:
var storageFile = await StorageFile.GetFileFromApplicationUriAsync( new Uri("ms-appx:///myVCD.xml")); await VoiceCommands.VoiceCommandDefinitionManager. InstallCommandDefinitionFromStorageFileAsync(storageFile);
Chiaramente potremo poi interagire nuovamente intercettando la richiesta dell'utente e il comando dato a Cortana attraverso gli argomenti di tipo ActivationKind.VoiceCommand che vengono passati direttamente nel metodo OnActivated della classe App:
var commandArgs = e as Activation.VoiceCommandActivatedEventArgs; SpeechRecognitionResult speechRecognitionResult = commandArgs.Result; // comando: es. showTripToDestination string voiceCommandName = speechRecognitionResult.RulePath[0]; // testo: es. Mostra viaggi per Londra string textSpoken = speechRecognitionResult.Text;
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Gestire tipi complessi in query string grazie a IParsable in ASP.NET Core 7.0
Utilizzare l'attributo autofill del CSS
Usare Refit e Polly in Blazor per creare client affidabili e fortemente tipizzati
Definire le impostazioni di cache a livello di controller in ASP.NET Core 7
Trasformare qualsiasi backend in un servizio GraphQL con Azure API Management
Monitorare i server on-premises con Azure Arc
Sfruttare l'output cache di ASP.NET Core 7 con i controller
Elencare le container images installate in un cluster di Kubernetes
Centrare elementi in HTML tramite CSS
Organizzare il codice JavaScript utilizzando i moduli
Recuperare un elemento inserito nella cache del browser tramite API JavaScript
Sottoscrizione agli eventi sul contenitore in JavaScript