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 gli accessi con Token su Azure Container Registry
Documentare i servizi REST con Swagger e OpenAPI con .NET 9
Utilizzare i variable font nel CSS
Montare Azure Blob Storage su Linux con BlobFuse2
Testare il failover sulle region in Azure Storage
Creare una libreria CSS universale: Cards
Utilizzare la funzione EF.Parameter per forzare la parametrizzazione di una costante con Entity Framework
Supportare la sessione affinity di Azure App Service con Application Gateway
Eseguire una ricerca avanzata per recuperare le issue di GitHub
Utilizzare Container Queries nominali
Utilizzare WhenEach per processare i risultati di una lista di task
Generare una User Delegation SAS in .NET per Azure Blob Storage
I più letti di oggi
- Utilizzare .NET Framework 4.5.1 nei cloud service di Windows Azure
- .NET Conference Italia 2019 Live - Milano
- .NET Conference Italia 2025 - Milano
- The Agentic Day - Milano
- Cloud e ASP.NET Developer Day - Milano
- .NET Conference Italia 2023 - Milano e Online
- Speciale ASP.NET security
- Windows 7 e Windows Server 2008 R2 RC al download libero
- Build 2013: segui con noi tutte le novità in diretta da San Francisco!


