Adattamento vocale

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

Adattamento vocale automatico

La funzionalità di adattamento automatico del parlato migliora la precisione del riconoscimento vocale del tuo agente utilizzando automaticamente lo stato della conversazione per trasmettere entità pertinenti e frasi di addestramento come suggerimenti per il contesto vocale per tutte le richieste di rilevamento dell'intenzione. Questa funzionalità è attivata per impostazione predefinita.

Attiva o disattiva l'adattamento automatico del parlato

Per attivare o disattivare l'adattamento vocale automatico:

  1. Vai alla console di Dialogflow ES
  2. Seleziona il tuo 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 Speech (Voce).
  5. Scorri fino alla sezione Migliorare la qualità del riconoscimento vocale.
  6. Attiva o disattiva l'opzione Attiva adattamento automatico del parlato.

Progettazione di agenti per i miglioramenti del riconoscimento vocale

Con l'adattamento automatico della voce abilitato, puoi creare il tuo agente in modo da sfruttarlo al meglio. 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 e contesti di addestramento

  • Se definisci frasi di addestramento con una frase come "naso chiuso", un'espressione dell'utente finale simile viene riconosciuta in modo affidabile come "naso chiuso" e non come "cose che sa".
  • Quando una sessione ha contesti attivi, l'adattamento automatico del parlato sarà maggiormente orientato alle frasi di addestramento degli intenti in cui sono attivi tutti i contesti di input. Ad esempio, con due contesti attivi "pagamento-bolletta" e "conferma", tutti gli intenti seguenti influenzeranno l'adattamento automatico del parlato: intenti con un singolo contesto di input "pagamento-bolletta", intenti con un singolo contesto di input "conferma" e intenti con due contesti di input "pagamento-bolletta" e "conferma".

  • Quando una sessione non ha contesti attivi, l'adattamento automatico del parlato sarà maggiormente orientato verso le frasi di addestramento degli intent senza contesti di input.

  • Quando hai un parametro obbligatorio che forza Dialogflow a inserire prompt per il preenchimento degli slot, l'adattamento automatico del parlato tende fortemente 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 chiede 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 "Voglio due", la frase potrebbe essere riconosciuta come "a", "anche", "2" o "due".

Con l'adattamento automatico del parlato abilitato, Dialogflow utilizza l'entità @sys.number come indicazione durante il riconoscimento vocale e il parametro ha maggiori probabilità di essere estratto come "2".

Entità personalizzate

  • Se definisci una 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, indica all'adattamento automatico del parlato di avere un bias per "Adoro Dialogflow", "Adoro Cloud Speech" e tutte le altre voci nell'entità @product.

  • È particolarmente importante definire sinonimi di entità puliti 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". 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 frasi dell'utente 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 confezioni. L'adattamento del parlato può aiutarti a distinguere questi casi se configuri entità con valori scritti per esteso:
    • Definisci un'entità quantity con voci:
      zero
      one
      ...
      twenty
    • Definisci un'entità product o size con le voci:
      sixteen pack
      two ounce
      ...
      five liter
    • Nell'adattamento del parlato vengono utilizzati solo i sinonimi delle entità, quindi puoi definire un'entità con valore di riferimento 1 e un singolo sinonimo one per semplificare la logica di adempimento.

Entità Regexp

Le entità regexp possono attivare l'adattamento automatico della sintesi vocale per sequenze alfanumeriche e di cifre 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 di Regexp

Sebbene qualsiasi espressione regolare possa essere utilizzata per estrarre entità dagli input di testo, solo determinate espressioni indicano all'adattamento automatico della voce di dare la priorità alle 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 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 per caratteri speciali o di punteggiatura come: ` ~ ! @ # $ % ^ & * ( ) - _ = + , . < > / ? ; ' : " [ ] { } \ |

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

Consulta la sezione Esempi.

2. Requisito di definizione del parametro

Contrassegna l'entità regexp come obbligatoria parametro di intent, in modo che possa essere raccolta durante il riempimento degli slot. In questo modo, l'adattamento automatico del parlato è fortemente orientato al riconoscimento della sequenza anziché cercare di riconoscere contemporaneamente un'intenzione e una sequenza. In caso contrario, la frase "Dov'è il mio pacco per ABC123" potrebbe essere riconosciuta 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'intenzione. In questo modo, il parametro viene risolto nell'ambito del completamento degli slot.

4. Requisito di test

Consulta Eseguire test di 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 di cattura. Per risolvere il problema, aggiungi un'altra voce per [a-zA-Z0-9]{5,9}. Ora potrai beneficiare del riconoscitore di sequenze per l'associazione di "ABC123", ma la NLU continuerà ad associare 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 le espressioni regolari

Il supporto integrato dell'adattamento vocale automatico per le entità regexp varia in base alla lingua. Controlla i token di classe di Speech 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 costituito da tre lettere seguito da tre cifre venga riconosciuto con precisione, puoi creare il tuo agente con le seguenti entità e i seguenti parametri:

  • 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.

Testare l'adattamento vocale

Quando testi le funzionalità di adattamento vocale dell'agente per una determinata frase di addestramento o corrispondenza di entità, non dovresti passare direttamente al test della corrispondenza con la prima frase vocale di una conversazione. Devi utilizzare solo input vocali o di evento per l'intera conversazione precedente alla corrispondenza che vuoi testare. Il comportamento dell'agente quando testato in questo modo sarà simile a quello nelle 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 di supporto delle lingue di Cloud Speech per verificare se l'opzione "adattamento del modello" è disponibile per la combinazione di modello vocale e lingua.
  • L'adattamento automatico del parlato 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.
  • 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 l'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à a acquisire l'intera sequenza in un unico turno, puoi prendere in considerazione alcune alternative più colloquiali:
    • Quando convalidi la sequenza rispetto a un database, valuta la possibilità di eseguire un controllo incrociato con altri parametri raccolti, come date, nomi o numeri di telefono, per consentire corrispondenze incomplete. Ad esempio, anziché chiedere solo all'utente il numero dell'ordine, chiedigli anche il numero di telefono. Ora, quando l'webhook esegue query sul database per lo stato dell'ordine, può fare affidamento innanzitutto sul numero di telefono, quindi restituire l'ordine corrispondente più simile per quell'account. In questo modo, Dialogflow potrebbe sentire erroneamente "ABC" come "AVC", ma comunque restituire lo stato dell'ordine corretto per l'utente.
    • Per sequenze molto lunghe, ti consigliamo di progettare un flusso che incoraggi gli utenti finali a mettere in pausa il bot durante l'interazione in modo che possa confermare man mano che procedi. Leggi questo tutorial per maggiori dettagli.