Condividi tramite


Come preparare la visualizzazione dei dati di training in formato testo per il riconoscimento vocale personalizzato

Il servizio Voce di Intelligenza artificiale di Azure può essere visualizzato come due componenti: il riconoscimento vocale e la formattazione del testo. Il riconoscimento vocale trascrive l'audio in testo lessicale e quindi il testo lessicale viene trasformato per visualizzare il testo.

Diagram of the flow of speech recognition to lexical to display text.

Queste sono le impostazioni locali che supportano la funzionalità formato testo di visualizzazione: da-DK, de-DE, en-AU, en-CA, en-GB, en-HK, en-IE, en-IN, en-NG, en-NZ, en-PH, en-SG, en-US, es-ES, es-MX, fi-FI, fr-CA, fr-FR, hi-IN, it-IT, ja-JP, ko-KR, nb-NO, nl-NL, pl-PL, pt-BR, pt-PT, sv-edizione Standard, tr-TR, zh-CN, zh-HK.

Formattazione predefinita del testo visualizzato

La pipeline di testo di visualizzazione è costituita da una sequenza di generatori di formati di visualizzazione. Ogni generatore corrisponde a un'attività di formato di visualizzazione, ad esempio ITN, capitalizzazione e filtro per contenuto volgare.

  • Normalizzazione del testo inversa (ITN) - Per convertire il testo dei numeri di modulo parlato in modo da visualizzare il modulo. Ad esempio: "I spend twenty dollars" -> "I spend $20"
  • Maiuscola: per i nomi di entità maiuscole, gli acronimi o la prima lettera di una frase. Ad esempio: "she is from microsoft" -> "She is from Microsoft"
  • Filtro volgare: mascheramento o rimozione di parole volgari da una frase. Ad esempio, supponendo che "abcd" sia una parola volgare, la parola viene mascherata dalla maschera volgarità: "I never say abcd" -> "I never say ****"

Microsoft gestisce i generatori di base della pipeline di testo di visualizzazione per le attività di elaborazione per utilizzo generico. I generatori di base vengono visualizzati per impostazione predefinita quando si usa il servizio Voce. Per altre informazioni sulla formattazione predefinita, vedere Visualizzare il formato del testo.

Formattazione del testo di visualizzazione personalizzata

Oltre ai generatori di base gestiti da Microsoft, è possibile definire regole di formattazione del testo di visualizzazione personalizzate per personalizzare la pipeline di formattazione del testo di visualizzazione per gli scenari specifici. Le regole di formattazione del testo di visualizzazione personalizzate sono definite in un file di formattazione del testo visualizzato personalizzato.

  • ITN personalizzato: estendere le funzionalità dell'ITN di base applicando un modello ITN personalizzato basato su regole dal cliente.
  • Riscrittura personalizzata: riscrivere una frase in un'altra in base a un modello basato su regole del cliente.
  • Filtro di contenuto volgare personalizzato: consente di gestire il contenuto volgare in base all'elenco di parole volgari del cliente.

L'ordine della pipeline di formattazione del testo visualizzato è illustrato in questo diagramma.

Diagram of the display format builders.

ITN personalizzato

La filosofia dell'ITN personalizzato basato su modelli è che è possibile specificare l'output finale che si vuole visualizzare. Il servizio Voce individua il modo in cui le parole possono essere pronunciate ed esegue il mapping delle espressioni vocali stimate al formato di output specificato.

Un modello ITN personalizzato viene creato da un set di regole ITN. Una regola ITN è un'espressione regolare come una stringa di criteri, che descrive:

  • Modello di corrispondenza della stringa di input
  • Formato desiderato della stringa di output

Le regole ITN predefinite fornite da Microsoft vengono applicate per prime. L'output del modello ITN predefinito viene usato come input del modello ITN personalizzato. L'algoritmo corrispondente all'interno del modello ITN personalizzato non fa distinzione tra maiuscole e minuscole.

Esistono quattro categorie di criteri di ricerca con regole ITN personalizzate.

Modelli con valori letterali

Ad esempio, uno sviluppatore potrebbe avere un elemento (ad esempio un prodotto) denominato con il formato JO:500alfanumerico . Il servizio Voce individua che gli utenti possono pronunciare la parte della lettera come J O, o possono dire joe, e la parte numerica come five hundred o five zero zero o five oh oh , five double zeroe quindi creare un modello che esegue il mapping di tutte queste possibilità a JO:500 (incluso l'inserimento dei due punti).

I modelli possono essere applicati in parallelo specificando una regola per riga nel file di formattazione del testo visualizzato. Di seguito è riportato un esempio di file di formattazione del testo visualizzato che specifica due regole:

JO:500
MM:760

Modelli con caratteri jolly

È possibile fare riferimento a un'intera serie di elementi alfanumerici (ad esempio JO:500, JO:600, JO:700) senza dover definire tutte le possibilità in diversi modi.

Gli intervalli di caratteri possono essere specificati con la notazione [...], quindi JO:[5-7]00 equivale a scrivere tre modelli.

È disponibile anche un set di elementi jolly che possono essere usati. Uno di questi è \d, ovvero qualsiasi cifra. Quindi JO:\d00 copre JO:000, JO:100e altri fino a JO:900.

Analogamente a un'espressione regolare, esistono più classi di caratteri predefinite per una regola ITN:

  • \d - trovare una cifra da '0' a '9' e restituirla direttamente
  • \l - corrisponde a una lettera (senza distinzione tra maiuscole e minuscole) e la trasduce in lettere minuscole
  • \u - corrisponde a una lettera (senza distinzione tra maiuscole e minuscole) e la trasduce in maiuscolo
  • \a - trovare una corrispondenza con una lettera (senza distinzione tra maiuscole e minuscole) e restituirla direttamente

Esistono anche espressioni di escape per fare riferimento a caratteri che altrimenti hanno un significato sintattico speciale:

  • \\ - trovare una corrispondenza e restituire il carattere \
  • \( e \)
  • \{ e \}
  • \|
  • \+e e \?\*

Modelli con notazione in stile regex

Per migliorare la flessibilità della scrittura di modelli, sono supportate le costruzioni di espressioni regolari di frasi con alternative e la chiusura di Kleene.

  • Una frase è indicata tra parentesi, ad esempio (...) : le parentesi non vengono conteggiate letteralmente come caratteri da associare.
  • È possibile indicare alternative all'interno di una frase con il | carattere , (AB|CDE)ad esempio .
  • È possibile suffisso una frase con ? per indicare che è facoltativa, + per indicare che può essere ripetuta o * per indicare entrambi. È possibile solo suffisso frasi con questi caratteri e non singoli caratteri (che è più restrittivo rispetto alla maggior parte delle implementazioni di espressioni regolari).

Un modello, (AB|CD)-(\d)+ ad esempio, rappresenta costrutti come "AB-9" o "CD-22" e viene espanso in parole pronunciate come A B nine e C D twenty two (o C D two two).

Modelli con sostituzione esplicita

La filosofia generale è "ci mostra come dovrebbe apparire l'output e il servizio Voce indica come le persone lo dicono". Ma questo non funziona sempre perché alcuni scenari potrebbero avere modi imprevedibili di dire cose o le regole in background del servizio Voce potrebbero avere lacune. Ad esempio, possono essere presenti pronunce colloquiali per le iniziali e gli acronimi, ZPI che possono essere pronunciate come zippy. In questo caso, un modello come ZPI-\d\d è improbabile che funzioni se un utente dice zippy twenty two. Per questo tipo di situazione, è presente una notazione {spoken>written}di formato testo visualizzato. Questo caso specifico può essere scritto .{zippy>ZPI}-\d\d

Ciò può essere utile per la gestione delle regole di mapping del riconoscimento vocale, ma non ancora supportate. Ad esempio, è possibile scrivere un modello \d0-\d0 che prevede che il sistema comprenda che "-" può significare un intervallo e deve essere pronunciato to, come in twenty to thirty. Ma forse non lo fa. È quindi possibile scrivere un modello più esplicito come \d0{to>-}\d0 e indicare come si prevede che il trattino venga letto.

È anche possibile evitare il > formato scritto e seguente per indicare le parole che devono essere riconosciute ma ignorate. Quindi, un modello come {write} (\u.)+ riconosce e restituisce write A B C l'output A.B.C, eliminando la write parte.

Esempi ITN personalizzati

Cifre di gruppo

Per raggruppare 6 cifre in due gruppi e aggiungere un carattere '-' tra di essi:

Regola ITN: Esempio: \d\d\d-\d\d\d"cadence one oh five one fifteen" -> "cadence 105-115"

Formattare un nome film

Space: 1999 è un famoso film, per sostenerlo:

Regola ITN: Esempio: Space: 1999"watching space nineteen ninety nine" -> "watching Space: 1999"

Modello con sostituzione

Regola ITN: Esempio: \d[05]{ to >-}\d[05]fifteen to twenty -> 15-20

Riscrittura personalizzata

In generale, per una stringa di input, il modello di riscrittura tenta di sostituire original phrase nella stringa di input con il corrispondente new phrase per ogni regola di riscrittura. Un modello di riscrittura è una raccolta di regole di riscrittura.

  • Una regola di riscrittura è una coppia di due frasi: la frase originale e una nuova frase.
  • Le due frasi sono separate da un carattere TAB. Ad esempio, original phrase{TAB}new phrase.
  • La frase originale viene confrontata (senza distinzione tra maiuscole e minuscole) e sostituita con la nuova frase (con distinzione tra maiuscole e minuscole). I caratteri di punteggiatura grammaticale nella frase originale vengono ignorati durante la corrispondenza.
  • Se le regole di riscrittura sono in conflitto, quella con quella più lunga original phrase viene usata come corrispondenza.

Il modello di riscrittura supporta la maiuscola grammaticale per impostazione predefinita, che maiuscola la prima lettera di una frase per en-US impostazioni locali come le impostazioni locali. È disattivato se la funzionalità di formattazione del testo visualizzato è disattivata in una richiesta di riconoscimento vocale.

Punteggiatura grammaticale

I caratteri di punteggiatura grammaticale vengono usati per separare una frase o una frase e chiarire come deve essere letta una frase o una frase.

. , ? 、 ! : ; ? 。 , ¿ ¡ । ؟ ،

Ecco le regole di punteggiatura grammaticale:

  • I caratteri di punteggiatura supportati sono per la punteggiatura grammaticale se sono seguiti da spazio o all'inizio o alla fine di una frase o di una frase. Ad esempio, in .x. y (con uno spazio tra . e y) è una punteggiatura grammaticale.
  • I caratteri di punteggiatura che si trovano al centro di una parola (ad eccezione zh-cn di e ja-jp) non sono segni di punteggiatura grammaticale. In questo caso, sono caratteri ordinari. Ad esempio, in .x.y non è una punteggiatura grammaticale.
  • Per zh-cn e ja-jp (impostazioni locali senza spaziatura), i caratteri di punteggiatura vengono sempre usati come punteggiatura grammaticale anche se si trovano tra caratteri. Ad esempio, in .中.文 è una punteggiatura grammaticale.

Esempi di riscrittura personalizzati

Correzione dell'ortografia

Il nome COVID-19 potrebbe essere riconosciuto come covered 19. Per assicurarsi che COVID-19 is a virus venga visualizzato invece di covered 19 is a virus, usare la regola di riscrittura seguente:

#rewrite
covered 19{TAB}COVID-19

Maiuscole/minuscole dei nomi

Gottfried Wilhelm Leibniz era un matematico tedesco. Per assicurarsi che Gottfried Wilhelm Leibniz sia in maiuscolo, usare la regola di riscrittura seguente:

#rewrite
gottfried leibniz{TAB}Gottfried Leibniz

Volgarità personalizzata

Un modello di volgarità personalizzato funziona come il modello di contenuto volgare di base, ad eccezione del fatto che usa un elenco di frasi volgari personalizzato. Inoltre, il modello di contenuto volgare personalizzato tenta di corrispondere (senza distinzione tra maiuscole e minuscole) a tutte le frasi volgari definite nel file di formattazione del testo visualizzato.

  • Le frasi volgari corrispondono (senza distinzione tra maiuscole e minuscole).
  • Se le regole delle frasi volgari sono in conflitto, la frase più lunga viene usata come corrispondenza.
  • Questi caratteri di punteggiatura non sono supportati in una frase volgare: . , ? 、 ! : ; ? 。 , ¿ ¡ । ؟ ، .
  • Per zh-CN le impostazioni locali e ja-JP , le frasi volgari in inglese non sono supportate. Sono supportate parole volgari in inglese. Sono supportate frasi volgari per zh-CN le impostazioni locali e ja-JP .

Il contenuto volgare viene rimosso o mascherato a seconda delle impostazioni della richiesta di riconoscimento vocale.

Dopo aver aggiunto contenuto volgare nel file della regola di formato testo visualizzato e il modello personalizzato viene sottoposto a training, viene usato per l'output predefinito in sintesi vocale in batch e la sintesi vocale in tempo reale al testo.

Esempi di volgarità personalizzati

Ecco alcuni esempi di come mascherare parole volgari e frasi nel file di formattazione del testo visualizzato.

Esempio di parola maschera singola volgarità

Si supponga xyz che sia una parola volgare. Per aggiungerlo:

#profanity
xyz

Ecco un esempio di test: Turned on profanity masking to mask xyz -> Turned on profanity masking to mask ***

Mascherare la frase volgare

Si supponga abc lmn che sia una frase volgare. Per aggiungerlo:

#profanity
abc lmn

Ecco un esempio di test: Turned on profanity masking to mask abc lmn -> Turned on profanity masking to mask *** ***

Passaggi successivi