Quando esegui una richiesta di rilevamento dell'intent, puoi fornire facoltativamente un contesto vocale per fornire suggerimenti al riconoscitore vocale. Questi suggerimenti possono essere utili per il riconoscimento in uno stato di conversazione specifico.
Adattamento vocale automatico
La funzionalità di adattamento vocale automatico migliora la precisione del riconoscimento vocale dell'agente utilizzando automaticamente lo stato della conversazione per trasmettere entità e frasi di addestramento pertinenti come suggerimenti di contesto vocale per tutte le richieste di rilevamento dell'intent. Questa funzionalità è attivata per impostazione predefinita.
Attivare o disattivare l'adattamento vocale automatico
Per attivare o disattivare l'adattamento vocale automatico:
- Vai alla console di Dialogflow ES
- Seleziona l'agente nella parte superiore del menu della barra laterale sinistra
- Fai clic sul pulsante Impostazioni settings accanto al nome dell'agente
- Seleziona la scheda Voce
- Scorri fino alla sezione Migliora la qualità del riconoscimento vocale
- Attiva o disattiva l'opzione Attiva l'adattamento vocale automatico
Progettazione dell'agente per i miglioramenti del riconoscimento vocale
Con l'adattamento vocale automatico attivato, puoi creare l'agente in modo da sfruttarlo. Le sezioni seguenti spiegano come il riconoscimento vocale può essere migliorato con alcune modifiche alle frasi di addestramento, ai contesti e alle entità dell'agente.
Frasi di addestramento e contesti
- Se definisci frasi di addestramento con una frase come "naso chiuso", un'espressione dell'utente finale dal suono simile viene riconosciuta in modo affidabile come "naso chiuso" e non "naso chiuso".
Quando una sessione ha contesti attivi, l'adattamento vocale automatico favorirà maggiormente le frasi di addestramento degli intent in cui tutti i contesti di input sono attivi. Ad esempio, con due contesti attivi "pay-bill" e "confirmation", tutti gli intent seguenti influenzeranno l'adattamento vocale automatico: intent con un singolo contesto di input "pay-bill", intent con un singolo contesto di input "confirmation" e intent con due contesti di input "pay-bill" e "confirmation".
Quando una sessione non ha contesti attivi, l'adattamento vocale automatico favorirà maggiormente le frasi di addestramento degli intent senza contesti di input.
- Quando hai un parametro obbligatorio che forza Dialogflow a visualizzare i prompt di riempimento degli slot, l'adattamento vocale automatico favorirà fortemente l'entità da compilare.
In tutti i casi, l'adattamento vocale automatico favorisce solo il riconoscimento vocale, senza limitarlo. Ad esempio, anche se Dialogflow richiede all'utente un parametro obbligatorio, gli utenti potranno comunque attivare altri intent, ad esempio un intent di primo livello "parla con un agente".
Entità di sistema
Se definisci una frase di addestramento che utilizza l'@sys.number
entità di sistema
,
e l'utente finale dice "I want two",
potrebbe essere riconosciuta come "to", "too", "2", o "two".
Con l'adattamento vocale automatico attivato, Dialogflow utilizza l'entità @sys.number come suggerimento durante il riconoscimento vocale e il parametro ha maggiori probabilità di essere estratto come "2".
Entità personalizzate
Se definisci un' entità personalizzata per i nomi di prodotti o servizi offerti dalla tua azienda, e l'utente finale menziona questi termini in un'espressione, è più probabile che vengano riconosciuti. Una frase di addestramento "I love Dialogflow", in cui "Dialogflow" è annotata come entità @product, indicherà all'adattamento vocale automatico di favorire "I love Dialogflow", "I love Cloud Speech" e tutte le altre voci nell'entità @product.
È particolarmente importante definire sinonimi di entità puliti quando si utilizza Dialogflow per rilevare la voce. Supponiamo di avere due voci di entità @product, "Dialogflow" e "Dataflow". I sinonimi di "Dialogflow" potrebbero essere "Dialogflow", "dialogue flow", "dialogue builder", "Speaktoit", "speak to it", "API.ai", "API dot AI". Questi sono buoni sinonimi perché coprono le varianti più comuni. Non è necessario aggiungere "the dialogue flow builder" perché "dialogue flow" lo copre già.
- Le espressioni dell'utente con entità numeriche consecutive ma distinte possono essere ambigue.
Ad esempio, "I want two sixteen packs" potrebbe significare 2 quantità di 16 confezioni o 216 quantità di confezioni. L'adattamento vocale può aiutare a disambiguare questi casi se configuri le entità con valori scritti:
- Definisci un'entità
quantitycon le voci:zeroone...twenty - Definisci un'entità
productosizecon le voci:sixteen packtwo ounce...five liter - Nell'adattamento vocale vengono utilizzati solo i sinonimi delle entità, quindi puoi definire un'entità con il valore di riferimento
1e il singolo sinonimooneper semplificare la logica di fulfillment.
- Definisci un'entità
Entità Regexp
Le entità Regexp possono attivare l'adattamento vocale automatico per sequenze alfanumeriche e di cifre come "ABC123" o "12345" se configurate e testate correttamente.Per riconoscere queste sequenze tramite la voce, implementa tutti e quattro i requisiti riportati di seguito:
1. Requisito per la voce Regexp
Sebbene sia possibile utilizzare qualsiasi espressione regolare per estrarre le entità dagli input di testo, solo alcune espressioni indicheranno all'adattamento vocale automatico di favorire le sequenze alfanumeriche o di cifre scritte durante il riconoscimento vocale.
Nell'entità Regexp, almeno una voce deve rispettare tutte queste regole:
- Deve corrispondere ad alcuni caratteri alfanumerici, ad esempio:
\d,\w,[a-zA-Z0-9] - Non deve contenere spazi
o\s, anche se\s*e\s?sono consentiti - Non deve contenere gruppi di acquisizione o non acquisizione
() - Non deve tentare di trovare corrispondenze con caratteri speciali o punteggiatura come:
` ~ ! @ # $ % ^ & * ( ) - _ = + , . < > / ? ; ' : " [ ] { } \ |
Questa voce può avere set di caratteri [] e quantificatori di ripetizione come *, ?, +, {3,5}.
Vedi Esempi.
2. Requisito per la definizione dei parametri
Contrassegna l'entità Regexp come parametro intent obbligatorio, in modo che possa essere raccolta durante il riempimento degli slot. In questo modo, l'adattamento vocale automatico può favorire fortemente il riconoscimento della sequenza anziché tentare di riconoscere contemporaneamente un intent e una sequenza. In caso contrario, "Where is my package for ABC123" potrebbe essere riconosciuto erroneamente come "Where is my package 4ABC123".
3. Requisito per l'annotazione delle frasi di addestramento
Non utilizzare l'entità Regexp per un'annotazione di una frase di addestramento dell'intent. In questo modo, il parametro viene risolto nell'ambito del riempimento degli slot.
4. Requisito per i test
Vedi Testare l'adattamento vocale.
Esempi
Ad esempio, un'entità Regexp con una singola voce ([a-zA-Z0-9]\s?){5,9} non attiverà il riconoscitore di sequenze vocali perché contiene un gruppo Capture.
Per risolvere il problema, aggiungi un'altra voce per [a-zA-Z0-9]{5,9}. Ora potrai usufruire del riconoscitore di sequenze quando trovi una corrispondenza con "ABC123", ma l'NLU troverà comunque corrispondenze con input come "ABC 123" grazie alla regola originale che consente gli spazi.
I seguenti esempi di espressioni regolari si adattano alle sequenze alfanumeriche:
^[A-Za-z0-9]{1,10}$
WAC\d+
215[2-8]{3}[A-Z]+
[a-zA-Z]\s?[a-zA-Z]\s?[0-9]\s?[0-9]\s?[0-9]\s?[a-zA-Z]\s?[a-zA-Z]
I seguenti esempi di espressioni regolari si adattano alle sequenze di cifre:
\d{2,8}
^[0-9]+$
2[0-9]{7}
[2-9]\d{2}[0-8]{3}\d{4}
Soluzione alternativa per Regexp
Il supporto integrato dell'adattamento vocale automatico per le entità Regexp varia in base alla lingua.
Controlla i token della classe vocale
per $OOV_CLASS_ALPHANUMERIC_SEQUENCE e $OOV_CLASS_DIGIT_SEQUENCE
lingue supportate.
Se la tua lingua non è presente nell'elenco, puoi aggirare questa limitazione. Ad esempio, se vuoi che un ID dipendente composto da tre lettere seguite da tre cifre venga riconosciuto con precisione, puoi creare l'agente con le seguenti entità e parametri:
- Definisci un'entità
digitche contiene 10 voci di entità (con sinonimi):0, 01, 1...9, 9 - Definisci un'entità
letterche contiene 26 voci di entità (con sinonimi):A, AB, B...Z, Z - Definisci un'entità
employee-idche contiene una singola voce di entità (senza sinonimi):@letter @letter @letter @digit @digit @digit - Utilizza
@employee-idcome parametro in una frase di addestramento.
Testare l'adattamento vocale
Quando testi le funzionalità di adattamento vocale dell'agente per una determinata frase di addestramento o una corrispondenza di entità, non devi passare direttamente al test della corrispondenza con la prima espressione vocale di una conversazione. Devi utilizzare solo input vocali o di eventi per l'intera conversazione prima della corrispondenza che vuoi testare. Il comportamento dell'agente testato in questo modo sarà simile a quello delle conversazioni di produzione effettive.
Limitazioni
Si applicano le seguenti limitazioni:
- L'adattamento vocale non è disponibile per tutte le combinazioni di modelli vocali e lingue. Consulta la pagina del supporto linguistico di Cloud Speech per verificare se "model adaptation" è disponibile per la combinazione di modello vocale e lingua.
- L'adattamento vocale automatico non funziona per Actions on Google (Assistente Google), perché il riconoscimento vocale viene eseguito da Actions on Google prima di inviare i dati a Dialogflow.
- Il riconoscimento di sequenze di caratteri lunghe è difficile. Il numero di caratteri acquisiti in un singolo turno è direttamente correlato alla qualità dell'audio di input.
Ad esempio, se l'integrazione funziona con l'audio delle chiamate telefoniche, devi
attivare i modelli vocali avanzati per
riconoscere in modo affidabile sequenze alfanumeriche più lunghe di quattro o cinque
caratteri o sequenze di cifre più lunghe di 10 caratteri.
Se hai seguito tutte le linee guida per le entità Regexp
e hai ancora difficoltà ad acquisire l'intera sequenza in un singolo turno,
puoi prendere in considerazione alcune alternative più conversazionali:
- Quando convalidi la sequenza rispetto a un database, prendi in considerazione la possibilità di fare riferimento incrociato ad altri parametri raccolti, come date, nomi o numeri di telefono, per consentire corrispondenze incomplete. Ad esempio, anziché chiedere all'utente solo il numero dell'ordine, chiedi anche il suo numero di telefono. Ora, quando il webhook esegue una query sul database per lo stato dell'ordine, può fare affidamento prima sul numero di telefono e poi restituire l'ordine con la corrispondenza più vicina per quell'account. In questo modo, Dialogflow potrebbe sentire erroneamente "ABC" come "AVC", ma restituire comunque lo stato dell'ordine corretto per l'utente.
- Per sequenze molto lunghe, valuta la possibilità di progettare un flusso che incoraggi gli utenti finali a mettere in pausa a metà in modo che il bot possa confermare man mano. Per maggiori dettagli, consulta questo tutorial.