Interazioni Voce

Integrare il riconoscimento vocale e la sintesi vocale direttamente nell'esperienza utente della tua app.

Il riconoscimento vocale converte le parole pronunciate dall'utente in testo per l'input di una maschera, per la dettatura del testo, per specificare un'azione o un comando e per eseguire attività. Sono supportate sia grammatiche predefinite per la dettatura di testo libero che per la ricerca web che e grammatiche personalizzate create con Speech Recognition Grammar Specification (SRGS) versione 1.0.

TTS TTS usa un motore di sintesi vocale (voce) per convertire una stringa di testo in parole pronunciate. La stringa di input può essere un testo semplice, un testo non formattato o un linguaggio di markup di sintesi vocale più complesso (Speech Synthesis Markup Language, SSML). SSML offre una modalità standard per controllare le caratteristiche dell'output vocale, ad esempio pronuncia, volume, tono, velocità ed enfasi.

Altri componenti correlati al riconoscimento vocale:Cortana nelle applicazioni Windows usa comandi vocali personalizzati (pronunciati o digitati) per avviare l'app in primo piano (l'app assume lo stato attivo, proprio come se fosse stata avviata dal menu Start) o attiva come servizio in background (Cortana mantiene lo stato attivo ma fornisce risultati dall'app). Vedi Interazioni di Cortana nelle app di Windows.

Progettazione dell'interazione vocale

Progettate e implementate in modo accurato, le funzionalità vocali possono consentire agli utenti di interagire con l'app in modo piacevole, integrando o persino sostituendo tastiera, mouse, tocco e movimenti.

Queste linee guida e consigli descrivono come integrare al meglio sia il riconoscimento vocale che il TTS nell'esperienza di interazione dell'app.

Se si sta valutando il supporto delle interazioni vocali nella propria app:

  • Quali azioni possono essere eseguite tramite comandi vocali? Un utente può spostarsi tra pagine, richiamare comandi o immettere dati sotto forma di campi di testo, brevi note o messaggi lunghi?
  • L'input vocale è un'opzione valida per completare un'attività?
  • In che modo un utente capisce quando è disponibile l'input vocale?
  • L'app è sempre in ascolto o l'utente deve eseguire un'azione affinché l'app entri in modalità di ascolto?
  • Quali frasi avviano un'azione o un comportamento? Le frasi e le azioni devono essere enumerate sullo schermo?
  • Sono necessarie schermate di richiesta, conferma e disambiguazione o TTS?
  • Qual è la finestra di dialogo di interazione tra app e utente?
  • È necessario un vocabolario personalizzato o vincolato (ad esempio medicina, scienza o impostazioni locali) per il contesto dell'app?
  • La connessione di rete è un requisito?

Input di testo

La voce per l'input di testo può variare dalla forma breve (singola parola o frase) alla forma lunga (dettatura continua). L'input in formato breve deve essere inferiore a 10 secondi, mentre la durata della sessione di input in forma lunga può richiedere fino a due minuti. (l'input nella forma lunga può essere riavviato senza l'intervento dell'utente per dare l'impressione di una dettatura continua).

È necessario fornire un segnale visivo per indicare che il riconoscimento vocale è supportato e disponibile per l'utente e per indicare se l'utente deve attivarlo. Ad esempio, un pulsante della barra dei comandi con un glifo del microfono (vedere Barre dei comandi) può essere usato per visualizzare sia la disponibilità che lo stato.

Fornire feedback di riconoscimento continuo per ridurre al minimo qualsiasi apparente mancanza di risposta durante l'esecuzione del riconoscimento.

Consentire agli utenti di rivedere il testo di riconoscimento usando input da tastiera, richieste di disambiguazione, suggerimenti o riconoscimento vocale aggiuntivo.

Arrestare il riconoscimento se l'input viene rilevato da un dispositivo diverso dal riconoscimento vocale, ad esempio tocco o tastiera. Questo probabilmente indica che l'utente è passato a un'altra attività, ad esempio correggendo il testo di riconoscimento o interagendo con altri campi della maschera.

Specificare l'intervallo di tempo per il quale l'assenza di input vocale indica che il riconoscimento è concluso. Non riavviare automaticamente il riconoscimento dopo questo periodo di tempo, perché in genere indica che l'utente ha smesso di interagire con l'app.

Disabilitare tutta l'interfaccia utente di riconoscimento continuo e terminare la sessione di riconoscimento se non è disponibile una connessione di rete. Il riconoscimento continuo richiede una connessione di rete.

Esecuzione di comandi

L'input vocale può avviare azioni, richiamare i comandi ed eseguire attività.

Se lo spazio lo consente, è consigliabile visualizzare le risposte supportate per il contesto dell'app corrente, con esempi di input valido. In questo modo si riducono le potenziali risposte che l'app deve elaborare e si eliminano fonti di confusione per l'utente.

Provare a contestualizzare le domande in modo che sollecitino la risposta più specifica possibile. Ad esempio, "Cosa desideri fare oggi?" è una richiesta molto aperta e richiederebbe una definizione grammaticale molto ampia a causa della variabilità delle possibili risposte. In alternativa, "Vuoi giocare o ascoltare musica?" vincola la risposta a una delle due opzioni valide con una definizione grammaticale corrispondentemente ridotta. Una piccola grammatica è molto più facile da creare e comporta risultati di riconoscimento molto più accurati.

Richiesta di conferma all'utente quando l'attendibilità del riconoscimento vocale è bassa. Se la finalità dell'utente non è chiara, è preferibile ottenere chiarimenti rispetto all'avvio di un'azione imprevista.

È necessario fornire un segnale visivo per indicare che il riconoscimento vocale è supportato e disponibile per l'utente e per indicare se l'utente deve attivarlo. Ad esempio, un pulsante della barra dei comandi con un glifo del microfono (vedere Linee guida per le barre dei comandi) può essere usato per visualizzare sia la disponibilità che lo stato.

Se l'opzione di riconoscimento vocale è in genere esclusa dalla visualizzazione, valutare la possibilità di mostrare un indicatore di stato nell'area del contenuto dell'app.

Se il riconoscimento viene avviato dall'utente, è consigliabile usare l'esperienza di riconoscimento predefinita per coerenza. L'esperienza predefinita include schermate personalizzabili con prompt, esempi, disambiguazioni, conferme ed errori.

Le schermate variano a seconda dei vincoli specificati:

  • Grammatica predefinita (dettatura o ricerca web)

    • La schermata di Ascolto.
    • La schermata di Elaborazione.
    • La schermata Ti ho sentito dire o la schermata di errore.
  • Elenco di parole o frasi o file di grammatica SRGS

    • La schermata di Ascolto.
    • La schermata Hai detto, se ciò che l'utente ha detto potrebbe essere interpretato come più di un risultato potenziale.
    • La schermata Ti ho sentito dire o la schermata di errore.

Nella schermata di Ascolto è possibile:

  • Personalizzare il testo dell'intestazione.
  • Specificare un testo di esempio di ciò che l'utente può pronunciare.
  • Specificare se viene visualizzata la schermata Ti ho sentito dire.
  • Leggere di nuovo la stringa riconosciuta all'utente nella schermata Ti ho sentito dire.

Di seguito è riportato un esempio del flusso di riconoscimento predefinito per un riconoscimento vocale che usa un vincolo definito da SRGS. In questo esempio il riconoscimento vocale ha esito positivo.

schermata di riconoscimento iniziale per un vincolo basato su un file di grammatica sgrs

schermata di riconoscimento intermedio per un vincolo basato su un file di grammatica sgrs

schermata di riconoscimento finale per un vincolo basato su un file di grammatica sgrs

Ascolto continuo

L'app può ascoltare e riconoscere l'input vocale non appena viene avviata l'app, senza l'intervento dell'utente.

È consigliabile personalizzare i vincoli grammaticali in base al contesto dell'app. In questo modo l'esperienza di riconoscimento vocale è molto mirata e rilevante per l'attività corrente e riduce al minimo gli errori.

"Cosa posso dire?"

Quando l'input vocale è abilitato, è importante aiutare gli utenti a individuare esattamente cosa può essere compreso e quali azioni possono essere eseguite.

Se il riconoscimento vocale è abilitato dall'utente, è consigliabile usare la barra dei comandi o un comando di menu per visualizzare tutte le parole e le frasi supportate nel contesto corrente.

Se il riconoscimento vocale è sempre attivo, è consigliabile aggiungere la frase "Cosa posso dire?" a ogni pagina. Quando l'utente pronuncia questa frase, visualizzare tutte le parole e le frasi supportate nel contesto corrente. L'uso di questa frase offre agli utenti un modo coerente per individuare le funzionalità vocali nel sistema.

Errori di riconoscimento

Il riconoscimento vocale avrà esito negativo. Gli errori si verificano quando la qualità audio è scarsa, quando viene riconosciuta solo una parte di una frase o quando non viene rilevato alcun input.

Gestire correttamente l'errore, aiutare un utente a capire perché il riconoscimento non è riuscito e ripristinare la situazione.

L'app dovrebbe informare l'utente che ciò che ha detto non è stato compreso e che è necessario riprovare.

Valutare la possibilità di fornire esempi di una o più frasi supportate. È probabile che l'utente ripeta una frase suggerita, che aumenta il successo del riconoscimento.

Dovrebbe essere visualizzato un elenco di potenziali corrispondenze tra cui selezionare un utente. Questo può essere molto più efficiente che passare di nuovo attraverso il processo di riconoscimento.

È consigliabile supportare sempre tipi di input alternativi, particolarmente utili per la gestione degli errori di riconoscimento ripetuti. Ad esempio, è possibile suggerire all'utente di provare a usare una tastiera o usare il tocco o un mouse per selezionare da un elenco di potenziali corrispondenze.

Usare l'esperienza di riconoscimento vocale predefinita perché include schermate che informano l'utente che il riconoscimento non è riuscito e consente all'utente di effettuare un altro tentativo di riconoscimento.

Ascoltare e provare a correggere i problemi nell'input audio. Il riconoscimento vocale può rilevare problemi con la qualità audio che potrebbero influire negativamente sull'accuratezza del suo funzionamento. È possibile usare le informazioni fornite dal riconoscimento vocale per informare l'utente del problema e permette di intraprendere azioni correttive, se possibile. Ad esempio, se l'impostazione del volume sul microfono è troppo bassa, è possibile chiedere all'utente di parlare più forte o alzare il volume.

Vincoli

I vincoli o le grammatiche definiscono le parole pronunciate e le frasi che possono essere abbinate dal riconoscimento vocale. È possibile specificare una delle grammatiche del servizio web predefinite oppure creare una grammatica personalizzata installata con l'app.

Grammatiche predefinite

Le grammatiche predefinite per la dettatura e la ricerca web forniscono il riconoscimento vocale per l'app senza che sia necessario creare una grammatica. Quando si usano queste grammatiche, il riconoscimento vocale viene eseguito da un servizio web remoto e i risultati vengono restituiti al dispositivo

  • La grammatica di dettatura a testo libero predefinita può riconoscere la maggior parte delle parole e frasi che un utente può pronunciare in una determinata lingua ed è ottimizzata per riconoscere frasi brevi. La dettatura a testo libero è utile quando non si desidera limitare i tipi di elementi che un utente può pronunciare. Gli usi tipici includono la creazione di note o la dettatura del contenuto di un messaggio.
  • La grammatica per la ricerca web, ad esempio una grammatica di dettatura, contiene un numero elevato di parole e frasi che un utente potrebbe pronunciare. Tuttavia, è ottimizzata per riconoscere i termini che le persone usano in genere durante la ricerca nel web.

Nota

Poiché le grammatiche di dettatura e per la ricerca web predefinite possono essere di grandi dimensioni e poiché sono online (non sul dispositivo), le prestazioni potrebbero non essere veloci quanto quelle che prevedono l'utilizzo di una grammatica personalizzata installata sul dispositivo.

Queste grammatiche predefinite possono essere usate per riconoscere fino a 10 secondi di input vocale e non richiedono alcuna attività di creazione da parte dell'utente. Tuttavia, richiedono la connessione a una rete.

Grammatiche personalizzate

Una grammatica personalizzata è progettata e creata dall'utente e viene installata con l'app. Il riconoscimento vocale soggetto a un vincolo personalizzato viene eseguito nel dispositivo.

  • I vincoli di elenco a livello di codice offrono un approccio facilitato alla creazione di grammatiche semplici usando un elenco di parole o frasi. Un vincolo di elenco funziona bene per il riconoscimento di frasi brevi e distinte. Specificare esplicitamente tutte le parole in una grammatica migliora anche l'accuratezza del riconoscimento, poiché il motore di riconoscimento vocale deve elaborare il riconoscimento vocale solo per confermare una corrispondenza. L'elenco può anche essere aggiornato a livello di codice.

  • Una grammatica SRGS è un documento statico che, a differenza di un vincolo di elenco programmatico, usa il formato XML definito da SRGS versione 1.0. Una grammatica SRGS offre il massimo controllo sull'esperienza di riconoscimento vocale consentendo di acquisire più significati semantici in un singolo riconoscimento.

    Ecco alcuni suggerimenti per la creazione di grammatiche SRGS:

    • Mantenere ogni grammatica di dimensioni ridotte. Le grammatiche che contengono meno frasi tendono a fornire un riconoscimento più accurato rispetto alle grammatiche più grandi che contengono molte frasi. È preferibile disporre di diverse grammatiche più piccole per scenari specifici rispetto a una singola grammatica per l'intera app.
    • Informare gli utenti su cosa dire per ogni contesto dell'app e abilitare e disabilitare le grammatiche in base alle esigenze.
    • Progettare ogni grammatica in modo che gli utenti possano esprimere un comando in diversi modi. Ad esempio, è possibile usare la regola GARBAGE per trovare le corrispondenze con l'input vocale che la grammatica non definisce. Ciò consente agli utenti di pronunciare parole aggiuntive che non hanno alcun significato per la tua app. Ad esempio, "dammi", "e", "uh", "forse" e così via.
    • Usare l'elemento sapi:subset per trovare una corrispondenza con l'input vocale. Si tratta di un'estensione Microsoft per la specifica SRGS che consente di trovare una corrispondenza con frasi parziali.
    • Provare a evitare di definire nella grammatica frasi che contengono solo una sillaba. Il riconoscimento tende ad essere più accurato per le frasi contenenti due o più sillabe.
    • Evitare di usare frasi simili. Ad esempio, frasi come "hello", "bellow" e "fellow" possono confondere il motore di riconoscimento e causare una scarsa accuratezza del riconoscimento.

Nota

Il tipo di vincolo usato dipende dalla complessità dell'esperienza di riconoscimento che si desidera creare. Ognuna di queste potrebbe essere la scelta migliore per un'attività di riconoscimento specifica ed è possibile trovare usi per tutti i tipi di vincoli nell'app.

Pronunce personalizzate

Se l'app contiene un vocabolario specializzato con parole insolite o fittizie o parole con pronunce non comuni, le prestazioni di riconoscimento per tali parole potrebbero migliorare definendo pronunce personalizzate.

Per un piccolo elenco di parole e frasi o un elenco di parole e frasi usate raramente, è possibile creare pronunce personalizzate in una grammatica SRGS. Per ulteriori informazioni, vedere Elemento token.

Per elenchi più grandi di parole e frasi o parole e frasi usate di frequente, è possibile creare documenti di lessico di pronuncia separati. Per ulteriori informazioni, vedere Informazioni sui lessici e sugli alfabeti fonetici.

Test

Testare l'accuratezza del riconoscimento vocale e qualsiasi interfaccia utente di supporto con il gruppo di destinatari dell'app. Questo è il modo migliore per determinare l'efficacia dell'esperienza di interazione vocale nell'app. Ad esempio, gli utenti ottengono risultati di riconoscimento scarsi perché l'app non è in ascolto di una frase comune?

Modificare la grammatica per supportare questa frase o fornire agli utenti un elenco di frasi supportate. Se si specifica già l'elenco delle frasi supportate, assicurarsi che sia facilmente individuabile.

Sintesi vocale (TTS)

TTS genera l'output vocale da testo normale o SSML.

Cercare di progettare prompt che siano educati e incoraggianti.

Valutare se è necessario leggere lunghe stringhe di testo. Una cosa è ascoltare un sms, un'altra è ascoltare un lungo elenco di risultati della ricerca difficili da ricordare.

È consigliabile fornire controlli multimediali per consentire agli utenti di sospendere o arrestare il sistema TTS.

È consigliabile ascoltare tutte le stringhe TTS per assicurarsi che siano comprensibili e abbiano un suono naturale.

  • La composizione di una sequenza insolita di parole, elementi del discorso o punteggiatura può causare la mancata intelligibilità di una frase.
  • La voce può sembrare innaturale quando la prosodia o la cadenza sono diverse da quelle che utilizzerebbe un parlante nativo per pronunciare una frase.

Entrambi i problemi possono essere risolti usando SSML anziché testo normale come input per il sintetizzatore vocale. Per ulteriori informazioni su SSML, vedere Usare SSML per controllare la voce sintetizzata e Guida di riferimento del Speech Synthesis Markup Language.

Argomento Descrizione
Riconoscimento vocale Usare il riconoscimento vocale per fornire input, specificare un'azione o un comando ed eseguire attività.
Specificare la lingua per il riconoscimento vocale Informazioni su come selezionare una lingua installata da usare per il riconoscimento vocale.
Definire vincoli di riconoscimento personalizzati Informazioni su come definire e usare vincoli personalizzati per il riconoscimento vocale.
Abilitare la dettatura continua Informazioni su come acquisire e riconoscere l'input vocale di dettatura continua in formato lungo.
Gestire i problemi relativi all'input audio Scopri come gestire i problemi relativi all'accuratezza del riconoscimento vocale causato dalla qualità dell'input audio.
Impostare i timeout di riconoscimento vocale Impostare per quanto tempo un riconoscimento vocale ignora il silenzio o i suoni non riconoscibili (babble) e continua l'ascolto dell'input vocale.

 Esempi