Adattamento vocale

Quando esegui una richiesta di rilevamento dell'intent, puoi facoltativamente fornire un contesto vocale per fornire suggerimenti al riconoscimento vocale. Questi suggerimenti possono aiutare con il riconoscimento in uno stato di conversazione specifico.

Adattamento vocale automatico

La funzionalità di adattamento automatico del parlato migliora l'accuratezza del riconoscimento vocale del tuo agente utilizzando automaticamente lo stato della conversazione per passare 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.

Attiva o disattiva l'adattamento automatico del parlato

Per attivare o disattivare l'adattamento automatico del parlato:

  1. Vai alla console di Dialogflow ES
  2. Seleziona l'agente nella parte superiore del menu della barra laterale sinistra.
  3. Fai clic sul pulsante delle impostazioni accanto al nome dell'agente.
  4. Seleziona la scheda Voce.
  5. Scorri fino alla sezione Migliora la qualità del riconoscimento vocale.
  6. Attiva o disattiva l'opzione Abilita l'adattamento automatico del parlato.

Progettazione dell'agente per migliorare il riconoscimento vocale

Con l'adattamento automatico del parlato attivato, puoi creare l'agente in modo da sfruttarlo. Le sezioni seguenti spiegano come migliorare il riconoscimento vocale 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 con un suono simile viene riconosciuta in modo affidabile come "naso chiuso" e non "caso chiuso".
  • Quando una sessione ha contesti attivi, l'adattamento automatico del parlato darà la priorità alle 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 i seguenti intent influenzeranno l'adattamento automatico del parlato: 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 automatico del parlato si orienterà maggiormente verso le frasi di addestramento degli intent senza contesti di input.

  • Quando hai un parametro obbligatorio che forza Dialogflow nei prompt di compilazione degli slot, l'adattamento automatico del parlato sarà fortemente orientato verso l'entità da compilare.

In tutti i casi, l'adattamento automatico del parlato influisce solo sul riconoscimento vocale, non lo limita. Ad esempio, anche se Dialogflow richiede a un utente un parametro obbligatorio, gli utenti potranno comunque attivare altri intent, come 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 "Ne voglio due", potrebbe essere riconosciuta come "to", "too", "2" o "two".

Con l'adattamento automatico del parlato 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 "Adoro Dialogflow", in cui "Dialogflow" è annotato come entità @product, indicherà all'adattamento automatico del parlato di dare priorità a "Adoro Dialogflow", "Adoro Cloud Speech" e a tutte le altre voci nell'entità @product.

  • È particolarmente importante definire sinonimi di entità chiari quando utilizzi Dialogflow per rilevare il parlato. Immagina 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" copre già questo aspetto.

  • Gli enunciati degli utenti con entità numeriche consecutive ma distinte possono essere ambigui. Ad esempio, "Voglio due confezioni da sedici" potrebbe significare 2 quantità di 16 confezioni o 216 quantità di confezioni. L'adattamento del parlato può aiutare a risolvere l'ambiguità di questi casi se configuri le entità con valori scritti per esteso:
    • Definisci un'entità quantity con le voci:
      zero
      one
      ...
      twenty
    • Definisci un'entità product o size con le voci:
      sixteen pack
      two ounce
      ...
      five liter
    • Solo i sinonimi delle entità vengono utilizzati nell'adattamento vocale, quindi puoi definire un'entità con valore di riferimento 1 e sinonimo singolo one per semplificare la logica di fulfillment.

Entità Regexp

Le entità Regexp possono attivare l'adattamento automatico del parlato per sequenze alfanumeriche e numeriche come "ABC123" o "12345" se configurate e testate correttamente.

Per riconoscere queste sequenze tramite comandi vocali, implementa tutti e quattro i requisiti riportati di seguito:

1. Requisito di immissione dell'espressione regolare

Sebbene sia possibile utilizzare qualsiasi espressione regolare per estrarre entità dagli input di testo, solo alcune espressioni indicheranno all'adattamento automatico del parlato di dare priorità alle sequenze alfanumeriche o di cifre scritte per esteso durante il riconoscimento vocale.

Nell'entità regexp, almeno una voce deve seguire tutte queste regole:

  • Deve corrispondere ad alcuni caratteri alfanumerici, ad esempio: \d, \w, [a-zA-Z0-9]
  • Non deve contenere spazi vuoti   o \s, anche se \s* e \s? sono consentiti
  • Non deve contenere gruppi Capture o non Capture ()
  • Non deve cercare di trovare corrispondenze con caratteri speciali o segni di punteggiatura come: ` ~ ! @ # $ % ^ & * ( ) - _ = + , . < > / ? ; ' : " [ ] { } \ |

Questa voce può avere set di caratteri [] e quantificatori di ripetizione come *, ?, +, {3,5}.

Guarda gli esempi.

2. Requisito di definizione dei parametri

Contrassegna l'entità regexp come parametro di intent obbligatorio, in modo che possa essere raccolta durante il riempimento degli slot. In questo modo, l'adattamento automatico del parlato può dare una forte priorità al riconoscimento della sequenza, anziché tentare di riconoscere un intent e una sequenza contemporaneamente. In caso contrario, "Dov'è il mio pacco per ABC123" potrebbe essere riconosciuto erroneamente come "Dov'è il mio pacco 4ABC123".

3. Requisito di annotazione delle frasi di addestramento

Non utilizzare l'entità regexp per un'annotazione della frase di addestramento dell'intent. In questo modo, il parametro viene risolto nell'ambito del riempimento degli slot.

4. Requisito per i test

Consulta la sezione Test dell'adattamento vocale.

Esempi

Ad esempio, un'entità regexp con una singola voce ([a-zA-Z0-9]\s?){5,9} non attiverà il riconoscimento della sequenza vocale perché contiene un gruppo Capture. Per risolvere il problema, aggiungi un'altra voce per [a-zA-Z0-9]{5,9}. Ora potrai usufruire del riconoscimento delle sequenze quando viene trovata una corrispondenza con "ABC123", ma la 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 con espressione regolare

Il supporto integrato dell'adattamento automatico del parlato per le entità regexp varia in base alla lingua. Controlla i token di classe vocale per le lingue supportate da $OOV_CLASS_ALPHANUMERIC_SEQUENCE e $OOV_CLASS_DIGIT_SEQUENCE.

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à digit che contiene 10 voci di entità (con sinonimi):
    0, 0
    1, 1
    ...
    9, 9
  • Definisci un'entità letter che contiene 26 voci di entità (con sinonimi):
    A, A
    B, B
    ...
    Z, Z
  • Definisci un'entità employee-id che contiene una singola voce di entità (senza sinonimi):
    @letter @letter @letter @digit @digit @digit
  • Utilizza @employee-id come parametro in una frase di addestramento.

Test dell'adattamento vocale

Quando testi le funzionalità di adattamento vocale dell'agente per una determinata frase di addestramento o 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 del parlato non è disponibile per tutti i modelli vocali e le combinazioni di lingue. Consulta la pagina delle lingue supportate da Cloud Speech per verificare se l'adattamento del modello è disponibile per la combinazione di modello vocale e lingua.
  • L'adattamento automatico del parlato non funziona per Actions on Google (l'Assistente Google), perché il riconoscimento vocale viene eseguito da Actions on Google prima di inviare i dati a Dialogflow.
  • Riconoscere 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 la tua integrazione opera sull'audio delle chiamate, 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 unico turno, puoi prendere in considerazione alcune alternative più conversazionali:
    • Quando convalidi la sequenza rispetto a un database, valuta la possibilità di fare un controllo incrociato con altri parametri raccolti, come date, nomi o numeri di telefono, per consentire corrispondenze incomplete. Ad esempio, oltre a chiedere a un utente 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 interpretare 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 fare una pausa nel mezzo, in modo che il bot possa confermare man mano che procedi. Leggi questo tutorial per maggiori dettagli.