Adattamento vocale

Quando esegui una richiesta di rilevamento dell'intento, se vuoi puoi fornire il contesto vocale per fornire suggerimenti al riconoscimento vocale. Questi suggerimenti possono essere utili per il riconoscimento in uno stato specifico della conversazione.

Adattamento vocale automatico

La funzionalità di adattamento vocale automatico migliora l'accuratezza del riconoscimento vocale dell'agente utilizzando automaticamente lo stato della conversazione per trasmettere entità pertinenti e frasi di addestramento come suggerimenti di contesto vocali per tutte le richieste di rilevamento di intento. Questa funzionalità è abilitata per impostazione predefinita.

Attiva o disattiva l'adattamento vocale automatico

Per attivare o disattivare l'adattamento vocale automatico:

  1. Vai alla console 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 Abilita adattamento vocale automatico

Progettazione di agenti per i miglioramenti del riconoscimento vocale

Con l'adattamento automatico della voce abilitata, puoi creare il tuo agente in modo da sfruttarlo. Le seguenti sezioni spiegano come il riconoscimento vocale può essere migliorato con alcune modifiche alle frasi di addestramento, ai contesti e alle entità dell'agente.

Frasi e contesti di addestramento

  • Se definisci frasi di addestramento con una frase come "naso chiuso", un'espressione simile dell'utente finale viene riconosciuta in modo affidabile come "naso chiuso" e non "contenuti che sa".
  • Quando una sessione ha contesti attivi, l'adattamento vocale automatico fa la differenza rispetto alle frasi di addestramento degli intent in cui tutti i contesti di input sono attivi. Ad esempio, con due contesti attivi, "fatturazione" e "conferma", tutti i seguenti intent influiranno sull'adattamento vocale automatico: intent con un singolo contesto di input "pagamento fattura", intent con un singolo contesto di input "conferma" e intent con due contesti di input "fatturazione" e "conferma".

  • Quando una sessione non ha contesti attivi, l'adattamento vocale automatico fa la differenza verso le frasi di addestramento degli intent senza contesti di input.

  • Se hai un parametro obbligatorio che forza Dialogflow a inviare messaggi di riempimento degli slot, l'adattamento vocale automatico sarà fortemente interessato all'entità che viene compilata.

In tutti i casi, l'adattamento vocale automatico influenza solo il riconoscimento vocale, non lo limita. Ad esempio, anche se Dialogflow richiede a un utente un parametro richiesto, 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'entità di sistema @sys.number e l'utente finale dice "Voglio due", potrebbe essere riconosciuta come "a", "troppo", "2" o "due".

Se l'adattamento vocale automatico è attivato, Dialogflow utilizza l'entità @sys.number come suggerimento durante il riconoscimento vocale ed è più probabile che il parametro venga 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" è annotata come entità @product, indicherà l'adattamento vocale automatico al bias per "I love Dialogflow", "I love Cloud Speech" e tutte le altre voci nell'entità @product.

  • È particolarmente importante definire sinonimi di entità chiare quando si utilizza Dialogflow per rilevare la voce. Immagina di avere due voci di entità @product, "Dialogflow" e "Dataflow". I tuoi sinonimi di "Dialogflow" potrebbero essere "Dialogflow", "dialogue flow", "dialogue builder", "Speaktoit", "speak to it", "API.ai", "API dot AI". Si tratta di buoni sinonimi perché coprono le varianti più comuni. Non è necessario aggiungere "lo strumento per la creazione di flussi di dialogo" perché "flusso di dialogo" lo copre già.

  • Le espressioni degli utenti con entità numeriche consecutive ma distinte possono essere ambigue. Ad esempio, "Voglio due confezioni da 16" potrebbe significare 2 quantità di 16 confezioni o 216 quantità di pacchetti. L'adattamento vocale può aiutare a distinguere questi casi se configuri entità con valori digitati:
    • 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
    • Nell'adattamento vocale vengono utilizzati solo i sinonimi di entità, quindi puoi definire un'entità con valore di riferimento 1 e un singolo sinonimo one per semplificare la logica di fulfillment.

Entità Regexp

Le entità Regexp possono attivare l'adattamento vocale automatico per sequenze di caratteri alfanumerici e numeri 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 per l'inserimento dell'espressione regolare

Sebbene sia possibile utilizzare qualsiasi espressione regolare per estrarre entità dagli input di testo, solo alcune espressioni indicano all'adattamento vocale automatico di polarizzare le sequenze alfanumeriche o di cifre che vengono digitate 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 di acquisizione o non acquisizione ()
  • Non deve cercare di trovare corrispondenze con caratteri speciali o punteggiatura come: ` ~ ! @ # $ % ^ & * ( ) - _ = + , . < > / ? ; ' : " [ ] { } \ |

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

Consulta gli 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ò predisporre fortemente il riconoscimento della sequenza invece di provare a riconoscere un intent e una sequenza contemporaneamente. In caso contrario, "Dov'è il mio pacco per ABC123" potrebbe essere riconosciuto erroneamente come "Dov'è il mio pacchetto 4ABC123".

3. Requisito per l'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 durante il riempimento degli slot.

4. Requisiti per il test

Vedi 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 della sequenza quando crei corrispondenze con "ABC123", ma la NLU corrisponderà comunque a 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 con espressione regolare

Il supporto integrato dell'adattamento vocale automatico per le entità regexp varia a seconda della lingua. Controlla i token delle classi di voce per le lingue supportate da $OOV_CLASS_ALPHANUMERIC_SEQUENCE e $OOV_CLASS_DIGIT_SEQUENCE.

Se la tua lingua non è elencata, puoi aggirare questo limite. Ad esempio, se vuoi che un ID dipendente costituito da tre lettere seguite da tre cifre venga riconosciuto in modo preciso, puoi creare l'agente con le entità e i parametri seguenti:

  • Definisci un'entità digit contenente 10 voci di entità (con sinonimi):
    0, 0
    1, 1
    ...
    9, 9
  • Definisci un'entità letter contenente 26 voci di entità (con sinonimi):
    A, A
    B, B
    ...
    Z, Z
  • Definisci un'entità employee-id contenente 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 corrispondenza di entità o frase di addestramento, non devi passare direttamente al test della corrispondenza con la prima frase vocale di una conversazione. Devi utilizzare solo input vocali o eventi per l'intera conversazione prima della corrispondenza che vuoi testare. Il comportamento dell'agente, quando testato in questo modo, sarà simile a quello delle effettive conversazioni di produzione.

Limitazioni

Si applicano le seguenti limitazioni:

  • L'adattamento vocale non è disponibile per tutti i modelli vocali e le combinazioni di lingue. Consulta la pagina di supporto delle lingue di Cloud Speech per verificare se l'"adattamento del modello" è disponibile per la tua 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 dati a Dialogflow.
  • Riconoscere lunghe sequenze di caratteri è difficile. Il numero di caratteri acquisiti in una singola svolta è direttamente correlato alla qualità dell'audio di input. Ad esempio, se l'integrazione funziona sull'audio delle chiamate telefoniche, devi attivare i modelli vocali avanzati per riconoscere in modo affidabile sequenze di caratteri alfanumerici più lunghi di quattro o cinque caratteri o sequenze di cifre più lunghe di 10 caratteri. Se hai seguito tutte le linee guida relative alle entità regexp e stai ancora facendo fatica ad acquisire l'intera sequenza in un singolo turno, puoi prendere in considerazione alcune alternative più conversazionali:
    • Durante la convalida della sequenza rispetto a un database, valuta la possibilità di eseguire controlli incrociati altri parametri raccolti come date, nomi o numeri di telefono per consentire corrispondenze incomplete. Ad esempio, anziché chiedere semplicemente all'utente il numero d'ordine, chiedi anche il numero di telefono. Ora, quando il webhook esegue una query sul database per conoscere lo stato dell'ordine, può affidarsi prima al numero di telefono e poi restituire l'ordine più simile a quello dell'account. Ciò potrebbe consentire a Dialogflow di interpretare "ABC" come "AVC", ma di restituire comunque lo stato dell'ordine corretto per l'utente.
    • Per le sequenze più lunghe, valuta la possibilità di progettare un flusso che incoraggi gli utenti finali a fare una pausa durante la fase intermedia, in modo che il bot possa verificare man mano che procedi. Leggi questo tutorial per ulteriori dettagli.