Interazioni vocali

Integrare il riconoscimento vocale e la sintesi vocale (nota anche come TTS o sintesi vocale) direttamente nell'esperienza utente dell'app.

Il riconoscimento vocale converte le parole pronunciate dall'utente in testo per l'input del modulo, 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 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, non adorabile o un linguaggio di markup di sintesi vocale più complesso (SSML). SSML offre un modo standard per controllare le caratteristiche dell'output vocale, ad esempio pronuncia, volume, passo, velocità o 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 prende 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). Vedere le linee guida del comando vocale di Cortana (VCD) se si espone la funzionalità dell'app nell'interfaccia utente di Cortana.

Progettazione dell'interazione vocale

Progettato e implementato in modo ponderato, il riconoscimento vocale può essere un modo affidabile e piacevole per consentire alle persone di interagire con la tua app, integrare o persino sostituire, 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 stai valutando il supporto delle interazioni vocali nella tua app:

  • Quali azioni possono essere eseguite tramite il parlato? Un utente può spostarsi tra pagine, richiamare comandi o immettere dati come campi di testo, brevi note o messaggi lunghi?
  • L'input vocale è un'opzione valida per completare un'attività?
  • In che modo un utente sa 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 conferma, 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 connettività di rete è necessaria?

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 del modulo lungo può richiedere fino a due minuti. L'input di modulo lungo può essere riavviato senza l'intervento dell'utente per dare l'impressione di dettatura continua.

È necessario fornire un segnale visivo per indicare che il riconoscimento vocale è supportato e disponibile per l'utente e 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 ambiguità, 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 modulo.

Specificare l'intervallo di tempo per il quale nessun input vocale indica che il riconoscimento è finito. 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 è consentito, è 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 ed elimina anche confusione per l'utente.

Provare a incorniciare le domande in modo che slicino la risposta più specifica possibile. Ad esempio, "Cosa si vuole fare oggi?" è molto aperto e richiederebbe una definizione grammaticale molto grande a causa della variazione delle risposte. In alternativa, "Vuoi giocare o ascoltare musica?" vincola la risposta a una delle due risposte valide con una definizione grammaticale corrispondentemente piccola. Una piccola grammatica è molto più facile da creare e comporta risultati di riconoscimento molto più accurati.

Richiedere 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 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 fuori visualizzazione, valutare la possibilità di visualizzare 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 la coerenza. L'esperienza predefinita include schermate personalizzabili con prompt, esempi, ambiguità, conferme ed errori.

Le schermate variano a seconda dei vincoli specificati:

  • Grammatica predefinita (dettatura o ricerca Web)

    • Schermata Di ascolto .
    • Schermata Pensiero .
    • Schermata Uditi o schermata di errore.
  • Elenco di parole o frasi o file di grammatica SRGS

    • Schermata Di ascolto .
    • Schermata Hai detto , se ciò che l'utente ha detto potrebbe essere interpretato come più di un risultato potenziale.
    • Schermata Uditi o schermata di errore.

Nella schermata 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 Uditi .
  • Leggere di nuovo la stringa riconosciuta all'utente nella schermata Heard che si dice .

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.

initial recognition screen for a constraint based on a sgrs grammar file

intermediate recognition screen for a constraint based on a sgrs grammar file

final recognition screen for a constraint based on a sgrs grammar file

Ascolto sempre

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 dice 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 il ripristino.

L'app dovrebbe informare l'utente che 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 riconoscimento vocale. È possibile usare le informazioni fornite dal riconoscimento vocale per informare l'utente del problema e consentire loro 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 attivare 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 senza testo è utile quando non si desidera limitare i tipi di elementi che un utente può dire. Gli usi tipici includono la creazione di note o la deviazione del contenuto per un messaggio.
  • La grammatica di ricerca Web, ad esempio una grammatica di dettatura, contiene un numero elevato di parole e frasi che un utente potrebbe pronunciare. Tuttavia, è ottimizzato per riconoscere i termini che le persone usano in genere durante la ricerca nel Web.

Nota

Poiché le grammatiche di dettatura e ricerca Web predefinite possono essere di grandi dimensioni e poiché sono online (non nel dispositivo), le prestazioni potrebbero non essere veloci quanto con una grammatica personalizzata installata nel dispositivo.

Queste grammatiche predefinite possono essere usate per riconoscere fino a 10 secondi di input vocale e non richiedono alcun lavoro 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 tramite un vincolo personalizzato viene eseguito nel dispositivo.

  • I vincoli elenco a livello di codice offrono un approccio leggero 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 solo il riconoscimento vocale 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 elenco programmatico, usa il formato XML definito dalla versione 1.0 di SRGS. 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 piccola. Le grammatiche che contengono meno frasi tendono a fornire un riconoscimento più accurato rispetto alle grammatiche più grandi che contengono molte frasi. È preferibile avere diverse grammatiche più piccole per scenari specifici rispetto a una singola grammatica per l'intera app.
    • Informare gli utenti di 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 parlare 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", "and", "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 frasi nella grammatica 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 vuole creare. Qualsiasi potrebbe essere la scelta migliore per un'attività di riconoscimento specifica e potresti trovare usi per tutti i tipi di vincoli nella tua app.

Pronunce personalizzate

Se la tua app contiene un vocabolario specializzato con parole insolite o fittizie o parole con pronunce non comuni, potresti essere in grado di migliorare le prestazioni di riconoscimento per tali parole 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 altre informazioni, vedi 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 altre informazioni, vedi Informazioni sui lessico e alfabeti Telefono tici.

Test in corso

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.

Cercate di progettare prompt che sono educati e incoraggianti.

Valutare se è necessario leggere stringhe lunghe di testo. È una cosa ascoltare un sms, ma piuttosto un altro per ascoltare un lungo elenco di risultati della ricerca difficili da ricordare.

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

È consigliabile ascoltare tutte le stringhe TTS per assicurarsi che siano comprensibili e suoni naturali.

  • L'inserimento di stringhe insieme a una sequenza insolita di parole o numeri di parte pronuncia o punteggiatura può causare la mancata intelligabile di una frase.
  • Il parlato può sembrare innaturale quando la prosodia o la cadenza è diversa da come un parlante nativo direbbe una frase.

Entrambi i problemi possono essere risolti usando SSML anziché testo normale come input per il sintetizzatore vocale. Per altre informazioni su SSML, vedi Usare SSML per controllare le informazioni di riferimento sul linguaggio di markup sintesi vocale e sintesi vocale.

Argomento Descrizione
Riconoscimento vocale Usare il riconoscimento vocale per fornire input, specificare un'azione o un comando ed eseguire attività.
Specificare la lingua del 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 Informazioni su 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