Set di dati di training e test

In un progetto di riconoscimento vocale personalizzato è possibile caricare set di dati per il training, l'ispezione qualitativa e la misurazione quantitativa. Questo articolo illustra i tipi di dati di training e test che è possibile usare per il Riconoscimento vocale personalizzato.

Il testo e l'audio usati per testare ed eseguire il training di un modello personalizzato devono includere campioni provenienti da un set diversificato di altoparlanti e scenari che si desidera che il modello riconosca. Quando si raccolgono dati per il test e il training di modelli personalizzati, tenere presente questi fattori:

  • Includere dati di testo e audio per coprire i tipi di istruzioni verbali che gli utenti effettuano quando interagiscono con il modello. Ad esempio, un modello che aumenta e riduce la temperatura richiede il training sulle dichiarazioni che gli utenti potrebbero fare per richiedere tali modifiche.
  • Includere tutte le varianze vocali che si desidera che il modello riconosca. Molti fattori possono variare il parlato, tra cui accenti, dialetti, mix linguistici, età, sesso, tono di voce, livello di stress e ora del giorno.
  • Includere campioni di ambienti diversi, ad esempio interni, esterni e rumori stradali, in cui viene usato il modello.
  • Registrare l'audio con dispositivi hardware che vengono usati dal sistema di produzione. Se il modello deve identificare la voce registrata nei dispositivi di qualità variabile, i dati audio forniti per eseguire il training del modello devono rappresentare anche questi diversi scenari.
  • Mantenere il set di dati diversificato e rappresentativo dei requisiti del progetto. È possibile aggiungere altri dati al modello in un secondo momento.
  • Includere solo i dati che il modello deve trascrivere. L'inclusione dei dati che non rientrano nei requisiti di riconoscimento del modello personalizzato può danneggiare la qualità complessiva del riconoscimento.

Tipo di dati

Nella tabella seguente sono elencati i tipi di dati accettati, quando è necessario usare ogni tipo di dati e la quantità consigliata. Non tutti i tipi di dati sono necessari per creare un modello. I requisiti dei dati variano a seconda che si stia creando un test o un training di un modello.

Tipo di dati Usato per i test Consigliato per i test Usato per il training Consigliato per il training
Solo audio Sì (ispezione visiva) 5+ file audio Sì (anteprima per en-US) 1-100 ore di audio
Audio + trascrizione con etichetta umana Sì (valutazione dell'accuratezza) 0,5-5 ore di audio 1-100 ore di audio
Testo normale No Non applicabile 1-200 MB di testo correlato
Testo strutturato No Non applicabile Fino a 10 classi con fino a 4.000 elementi e fino a 50.000 frasi di training
Pronuncia No Non applicabile Da 1 kB a 1 MB di testo di pronuncia
Formato di visualizzazione No Non applicabile Fino a 200 righe per ITN, 1.000 righe per la riscrittura, 1.000 righe per il filtro di contenuto volgare

Il training con testo normale o testo strutturato termina in genere entro pochi minuti.

Suggerimento

Iniziare con dati di testo normale o dati strutturati. Questi dati miglioreranno il riconoscimento di termini e frasi speciali. Il training con il testo è molto più veloce del training con l'audio (minuti contro giorni).

Iniziare con piccoli set di dati di esempio che corrispondono al linguaggio, all'acustica e all'hardware in cui verrà usato il modello. I set di dati rappresentativi di piccole dimensioni possono esporre dei problemi prima di investire nella raccolta di set di dati più grandi per il training. Per i dati di riconoscimento vocale personalizzati di esempio, vedere questo repository GitHub.

Se si esegue il training di un modello personalizzato con dati audio, scegliere un'area di risorse Voce con hardware dedicato per il training dei dati audio. Per altre informazioni, vedere note a piè di pagina nella tabella delle aree. Nelle aree con hardware dedicato per il training di riconoscimento vocale personalizzato, il servizio Voce usa fino a 100 ore di dati di training audio ed è in grado di elaborare circa 10 ore di dati al giorno. Dopo aver eseguito il training del modello, è possibile copiare il modello in un'altra area in base alle esigenze con l'API REST Models_CopyTo.

Prendere in considerazione i set di dati per scenario

Un modello sottoposto a training su un subset di scenari può essere eseguito correttamente solo in questi scenari. Scegliere con attenzione i dati che rappresentano l'ambito completo degli scenari necessari per riconoscere il modello personalizzato. La tabella seguente illustra i set di dati da considerare per alcuni scenari di riconoscimento vocale:

Scenario Dati di testo normale e dati di testo strutturati Audio + trascrizioni con etichetta umana Nuove parole con pronuncia
Call center Documenti di marketing, sito Web, recensioni dei prodotti correlate all'attività del call center Chiamate call center trascritte dagli esseri umani Termini con pronunce ambigue (vedi l'esempio xbox nella sezione precedente)
Assistente vocale Elenchi di frasi che usano varie combinazioni di comandi ed entità Comandi vocali registrati nel dispositivo, trascritti in testo Nomi (film, canzoni, prodotti) che hanno pronunce uniche
Dettatura Input scritto, ad esempio messaggi istantanei o messaggi di posta elettronica Analogamente agli esempi precedenti Analogamente agli esempi precedenti
Sottotitoli in video Programmi TV, film, contenuti di marketing, riepiloghi video Trascrizioni esatte dei video Analogamente agli esempi precedenti

Per determinare quale set di dati usare per risolvere i problemi, vedere la tabella seguente:

Caso d'uso Tipo di dati
Migliorare l'accuratezza del riconoscimento su vocabolario e grammatica specifici del settore, ad esempio terminologia medica o gergo IT. Testo normale o dati di testo strutturato
Definire la forma fonetica e visualizzata di una parola o di un termine con pronuncia non standard, ad esempio nomi di prodotto o acronimi. Dati della pronuncia o pronuncia fonetica nel testo strutturato
Migliorare l'accuratezza del riconoscimento sugli stili di pronuncia, sugli accenti o sui rumori di fondo specifici. Audio + trascrizioni con etichetta umana

Audio + dati di trascrizione con etichetta umana per il training o il test

È possibile usare dati di trascrizione audio + con etichetta umana per scopi di training e test. È necessario fornire trascrizioni con etichetta umana (parola per parola) per il confronto:

  • Per migliorare gli aspetti acustici come accenti leggeri, stili di pronuncia e rumori di fondo.
  • Per misurare l'accuratezza del riconoscimento vocale di Microsoft nell'accuratezza del testo, durante l'elaborazione dei file audio.

Per un elenco dei modelli di base che supportano il training con dati audio, vedere Supporto linguistico. Anche se un modello di base supporta il training con dati audio, il servizio potrebbe usare solo parte dell'audio. E usa ancora tutte le trascrizioni.

Importante

Se un modello di base non supporta la personalizzazione con dati audio, verrà usato solo il testo di trascrizione per il training. Se si passa a un modello di base che supporta la personalizzazione con dati audio, il tempo di training può aumentare da diverse ore a diversi giorni. Il cambiamento nel tempo di training sarebbe più evidente quando si passa a un modello di base in un'area senza hardware dedicato per il training. Se i dati audio non sono necessari, è necessario rimuoverli per ridurre il tempo di training.

L'audio con trascrizioni con etichetta umana offre miglioramenti più accurati se l'audio proviene dal caso d'uso di destinazione. Gli esempi devono coprire l'ambito completo del parlato. Ad esempio, un call center per un negozio di vendita al dettaglio riceverà il maggior numero di chiamate su costumi da bagno e occhiali da sole durante i mesi estivi. Assicurarsi che l'esempio includa l'ambito completo del riconoscimento vocale che si vuole rilevare.

Considerare questi dettagli:

  • L'allenamento con l'audio porta i maggiori vantaggi se l'audio è anche difficile da comprendere per gli esseri umani. Nella maggior parte dei casi, è consigliabile iniziare il training usando solo il testo correlato.
  • Se si usa una delle lingue più usate, ad esempio l'inglese degli Stati Uniti, è improbabile che sia necessario eseguire il training con dati audio. Per tali lingue, i modelli di base offrono già risultati di riconoscimento validi nella maggior parte degli scenari, quindi è probabilmente sufficiente eseguire il training con il testo correlato.
  • Riconoscimento vocale personalizzato può acquisire il contesto delle parole solo per ridurre gli errori di sostituzione, non gli errori di inserimento o eliminazione.
  • Evitare esempi che includono errori di trascrizione, ma includono una diversità di qualità audio.
  • Evitare frasi non correlate al dominio del problema. Le frasi non correlate possono danneggiare il modello.
  • Quando la qualità della trascrizione varia, è possibile duplicare frasi eccezionali, ad esempio trascrizioni eccellenti che includono frasi chiave, per aumentare il loro peso.
  • Il servizio Voce usa automaticamente le trascrizioni per migliorare il riconoscimento di parole e frasi specifiche del dominio, come se fossero state aggiunte come testo correlato.
  • Il completamento di un'operazione di training può richiedere diversi giorni. Per migliorare la velocità di training, assicurarsi di creare la sottoscrizione del servizio Voce in un'area con hardware dedicato per il training.

Per migliorare il riconoscimento, è necessario un set di dati di training di grandi dimensioni. In genere, è consigliabile fornire trascrizioni parola per parola per 1-100 ore di audio (fino a 20 ore per i modelli meno recenti per i quali non è previsto alcun addebito per il training). Tuttavia, anche solo 30 minuti possono contribuire a migliorare i risultati del riconoscimento. Anche se la creazione della trascrizione con etichetta umana può richiedere tempo, i miglioramenti nel riconoscimento sono validi solo per i dati forniti. È consigliabile caricare solo trascrizioni di alta qualità.

I file audio possono avere silenzio all'inizio e alla fine della registrazione. Se possibile, includere almeno un mezzo secondo di silenzio prima e dopo il discorso in ogni file di esempio. Anche se l'audio con volume di registrazione basso o disturbo di fondo non è utile, non dovrebbe limitare o ridurre il modello personalizzato. Prendere sempre in considerazione l'aggiornamento dei microfoni e dell'hardware di elaborazione dei segnali prima di raccogliere campioni audio.

Importante

Per altre informazioni sulle procedure consigliate per la preparazione di trascrizioni con etichetta umana, vedere Trascrizioni con etichetta umana con audio.

I progetti di Riconoscimento vocale personalizzato richiedono file audio con queste proprietà:

Importante

Questi sono i requisiti per il training e il test delle trascrizioni con etichetta umana e audio. Differiscono da quelli per audio solo training e test. Se vuoi usare solo training e test audio, vedi questa sezione.

Proprietà valore
File format RIFF (WAV)
Frequenza di campionamento 8.000 Hz o 16.000 Hz
Canali 1 (mono)
Lunghezza massima per audio Due ore (test) / 40 s (training)

Il training con audio ha una lunghezza massima dell’audio di 40 secondi per ogni file (fino a 30 secondi per la personalizzazione di Whisper). Per i file audio più lunghi di 40 secondi, viene usato per il training solo il testo corrispondente dei file di trascrizione. Se tutti i file audio sono più lunghi di 40 secondi, il training ha esito negativo.
Formato del campione PCM, 16 bit
Formato di archiviazione .zip
Dimensioni massime dello zip 2 GB o 10.000 file

Dati di testo normale per il training

È possibile aggiungere frasi di testo semplice di testo correlato per migliorare il riconoscimento di parole e frasi specifiche del dominio. Le frasi di testo correlate possono ridurre gli errori di sostituzione correlati al mancato riconoscimento di parole comuni e parole specifiche del dominio visualizzandoli nel contesto. Le parole specifiche del dominio possono essere parole non comuni o composte, ma la loro pronuncia deve essere semplice da riconoscere.

Specificare frasi correlate al dominio in un singolo file di testo. Usare i dati di testo vicini alle espressioni pronunciate previste. Le espressioni non devono essere complete o grammaticalmente corrette, ma devono riflettere con precisione l'input parlato previsto dal modello. Quando possibile, cercare di fare in modo che una frase o una parola chiave vengano controllati su una riga separata. Per aumentare il peso di un termine, ad esempio i nomi dei prodotti, aggiungere diverse frasi che includono il termine. Tuttavia, un numero di copie elevato potrebbe influire sulla frequenza complessiva del riconoscimento.

Nota

Evitare frasi di testo correlate che includono rumore, ad esempio caratteri o parole non riconoscibili.

Usare questa tabella per assicurarsi che il file del set di dati di testo normale sia formattato correttamente:

Proprietà Valore
Codifica testo UTF-8 BOM
Numero di espressioni per riga 1
Dimensione massima dei file 200 MB

È inoltre necessario rispettare le restrizioni seguenti:

  • Evitare di ripetere più di tre volte caratteri, parole o gruppi di parole. Ad esempio, non usare "aaaa", "sì sì sì sì", oppure "ecco qui ecco qui ecco qui ecco qui". Il servizio Voce potrebbe eliminare le righe con troppe ripetizioni.
  • Non usare caratteri speciali o caratteri UTF-8 oltre U+00A1.
  • Gli URI verranno rifiutati.
  • Per alcune lingue, ad esempio giapponese o coreano, l'importazione di grandi quantità di dati di testo può richiedere molto tempo o può verificarsi un timeout. È consigliabile dividere il set di dati in più file di testo con un massimo di 20.000 righe in ognuno.

Dati strutturati di testo per il training

Nota

I dati strutturati per il training sono disponibili in anteprima pubblica.

Usare dati di testo strutturati quando i dati seguono un modello specifico in determinate espressioni che differiscono solo per parole o frasi da un elenco. Per semplificare la creazione di dati di training e per migliorare la modellazione all'interno del modello linguistico personalizzato, è possibile usare un testo strutturato in formato Markdown per definire elenchi di elementi e pronuncia fonetica delle parole. È quindi possibile fare riferimento a questi elenchi all'interno delle espressioni di training.

Le espressioni previste spesso seguono un determinato modello. Un modello comune è che le espressioni differiscono solo per parole o frasi da un elenco. Alcuni esempi di questo modello possono essere:

  • "Ho una domanda su product“, dove product è un elenco di possibili prodotti.
  • "Rendi object color", dove object è un elenco di forme geometriche e color è un elenco di colori.

Per un elenco dei modelli di base e delle impostazioni locali supportati per il training con testo strutturato, vedere Supporto della lingua. È necessario usare il modello di base più recente per queste impostazioni locali. Per le impostazioni locali che non supportano il training con testo strutturato, il servizio eseguirà tutte le frasi di training che non fanno riferimento ad alcuna classe come parte del training con dati di testo normale.

Il file di testo strutturato deve avere un'estensione .md. La dimensione massima del file è 200 MB e la codifica del testo deve essere UTF-8 BOM. La sintassi di Markdown è identica a quella dei modelli di Language Understanding, in particolare le entità di elenco e le espressioni di esempio. Per altre informazioni sulla sintassi Markdown completa, vedere Language Understanding Markdown.

Ecco i dettagli principali sul formato Markdown supportato:

Proprietà Descrizione Limiti
@list Elenco di elementi a cui è possibile fare riferimento in una frase di esempio. Massimo 20 elenchi. Massimo 35.000 elementi per elenco.
speech:phoneticlexicon Elenco di pronunce fonetiche in base al set di telefoni universali. La pronuncia viene regolata per ogni istanza in cui la parola viene visualizzata in un elenco o in una frase di training. Ad esempio, se si ha una parola che suona come "gatto" e si vuole regolare la pronuncia su "k ae t", aggiungere - cat/k ae t all'elenco speech:phoneticlexicon. Massimo 15.000 voci. Massimo due pronunce per parola.
#ExampleSentences Un simbolo di cancelletto (#) delimita una sezione di frasi di esempio. L'intestazione di sezione può contenere solo lettere, cifre e caratteri di sottolineatura. Le frasi di esempio devono riflettere l'intervallo di parlato previsto dal modello. Una frase di training può fare riferimento agli elementi sotto un oggetto @list usando parentesi graffe intorno a sinistra e destra ({@list name}). È possibile fare riferimento a più elenchi nella stessa frase di training o a nessuno. Dimensioni massime del file di 200 MB.
// I commenti seguono una doppia barra (//). Non applicabile

Ecco un esempio di file di testo strutturato:

// This is a comment because it follows a double slash (`//`).

// Here are three separate lists of items that can be referenced in an example sentence. You can have up to 10 of these.
@ list food =
- pizza
- burger
- ice cream
- soda

@ list pet =
- cat
- dog
- fish

@ list sports =
- soccer
- tennis
- cricket
- basketball
- baseball
- football

// List of phonetic pronunciations
@ speech:phoneticlexicon
- cat/k ae t
- fish/f ih sh

// Here are two sections of training sentences. 
#TrainingSentences_Section1
- you can include sentences without a class reference
- what {@pet} do you have
- I like eating {@food} and playing {@sports}
- my {@pet} likes {@food}

#TrainingSentences_Section2
- you can include more sentences without a class reference
- or more sentences that have a class reference like {@pet} 

Dati di pronuncia per il training

Le parole specializzate o composte potrebbero avere pronunce univoche. Queste parole possono essere riconosciute se possono essere suddivise in parole più piccole per pronunciarle. Ad esempio, per riconoscere "Xbox", pronunciarlo come "X box". Questo approccio non aumenterà l'accuratezza complessiva, ma può migliorare il riconoscimento di questa e altre parole chiave.

È possibile fornire un file di pronuncia personalizzato per migliorare il riconoscimento. Non usare file di pronuncia personalizzati per modificare la pronuncia delle parole comuni. Per un elenco delle lingue che supportano la pronuncia personalizzata, vedere Supporto linguistico.

Nota

È possibile usare un file di pronuncia insieme a qualsiasi altro set di dati di training, ad eccezione dei dati di training del testo strutturato. Per usare i dati della pronuncia con testo strutturato, è necessario che si tratti di un file di testo strutturato.

La forma parlata è la sequenza fonetica specificata. Può essere composto da lettere, parole, sillabe o una combinazione di tutti e tre. Questa tabella include alcuni esempi:

Modulo visualizzato riconosciuto Forma parlata
3CPO tre c p o
CNTK c n t k
IEEE i tripla e

Le pronunce vengono fornite in un singolo file di testo. Includere l'espressione parlata e una pronuncia personalizzata per ognuna. Ogni riga del file deve iniziare con il modulo riconosciuto, quindi un carattere di tabulazioni e quindi la sequenza fonetica delimitata da spazi.

3CPO    three c p o
CNTK    c n t k
IEEE    i triple e

Fare riferimento alla tabella seguente per assicurarsi che i file del set di dati di pronuncia siano validi e formattati correttamente.

Proprietà Valore
Codifica testo UTF-8 BOM (per l'inglese è supportato anche ANSI)
Numero di pronunce per riga 1
Dimensione massima dei file 1 MB (1 kB per il livello gratuito)

Dati audio per il training o il test

I dati audio sono ottimali per testare l'accuratezza della voce di base di Microsoft nel modello di testo o in un modello personalizzato. Tenere presente che i dati audio vengono usati per controllare l'accuratezza del parlato in relazione alle prestazioni di un modello specifico. Se si vuole quantificare l'accuratezza di un modello, usare trascrizioni audio e con etichetta umana.

Nota

Solo i dati audio per il training sono disponibili in anteprima per le impostazioni locali en-US. Per altre impostazioni locali, per eseguire il training con dati audio è necessario specificare anche le trascrizioni con etichetta umana.

I progetti di Riconoscimento vocale personalizzato richiedono file audio con queste proprietà:

Importante

Questi sono i requisiti per il training e il test solo audio. Si differenziano da quelli per audio e trascrizioni con etichetta umana e test. Per usare il training e il test delle trascrizioni con etichetta audio + umana, vedere questa sezione.

Proprietà valore
File format RIFF (WAV)
Frequenza di campionamento 8.000 Hz o 16.000 Hz
Canali 1 (mono)
Lunghezza massima per audio Due ore
Formato del campione PCM, 16 bit
Formato di archiviazione .zip
Dimensione massima dell'archivio 2 GB o 10.000 file

Nota

Quando si caricano dati di training e test, le dimensioni del file .zip non possono superare i 2 GB. Se sono necessari più dati per il training, dividerli in diversi file di .zip e caricarli separatamente. Successivamente, è possibile scegliere di eseguire il training da più set di dati. Tuttavia, è possibile eseguire il test solo da un singolo set di dati.

Usare SoX per verificare le proprietà audio o convertire l'audio esistente nei formati appropriati. Ecco alcuni comandi SoX di esempio:

Attività Comando SoX
Controllare il formato del file audio. sox --i <filename>
Convertire il file audio in un canale singolo, a 16 bit e a 16 KHz. sox <input> -b 16 -e signed-integer -c 1 -r 16k -t wav <output>.wav

Dati di formattazione del testo visualizzati personalizzati per il training

Altre informazioni sulla preparazione della visualizzazione dei dati di formattazione del testo e sulla visualizzazione della formattazione del testo con il riconoscimento vocale.

Il formato di visualizzazione dell'output di riconoscimento vocale automatico è fondamentale per le attività downstream e non è adatto a tutte le dimensioni. L'aggiunta di regole del formato di visualizzazione personalizzato consente agli utenti di definire le proprie regole di formato lessicale da visualizzare per migliorare la qualità del servizio di riconoscimento vocale oltre al servizio di riconoscimento vocale personalizzato di Microsoft Azure.

Consente di personalizzare completamente gli output di visualizzazione, ad esempio aggiungere regole di riscrittura per capitalizzare e riformulare determinate parole, aggiungere parole volgari e maschera dall'output, definire regole ITN avanzate per determinati modelli, ad esempio numeri, date, indirizzi di posta elettronica; o conservare alcune frasi e mantenerle da qualsiasi processo di visualizzazione.

Ad esempio:

Formattazione personalizzata Testo visualizzato
None Il numero finanziario di contoso è 8BEV3
Capitalizzare "Contoso" (tramite regola #rewrite)
Formattare il numero finanziario (tramite regola #itn)
Il numero finanziario di Contoso è 8B-EV-3

Per un elenco dei modelli di base e delle impostazioni locali supportati per il training con testo strutturato, vedere Supporto della lingua. Il file Formato di visualizzazione deve avere un'estensione md. La dimensione massima del file è 10 MB e la codifica del testo deve essere UTF-8 BOM. Per altre informazioni sulla personalizzazione delle regole di formato di visualizzazione, vedere Visualizzare le regole di formattazione consigliate.

Proprietà Descrizione Limiti
#NORMALIZZAZIONE DEL TESTO INVERSA Elenco di regole di normalizzazione inverti-testo per definire determinati modelli di visualizzazione, ad esempio numeri, indirizzi e date. Massimo 200 righe
#riscrivi Elenco di coppie di riscrittura per sostituire determinate parole per motivi quali la grafia maiuscola e la correzione ortografica. Massimo 1.000 righe
#contenuto volgare Elenco di parole indesiderate che verranno mascherate come ****** dall'output Display e Masked, oltre a elenchi di contenuto volgare incorporati di Microsoft. Massimo 1.000 righe
#test Elenco di unit test case per verificare se le regole di visualizzazione funzionano come previsto, inclusi l'input lessicale del formato e l'output del formato di visualizzazione previsto. Dimensioni massime del file di 10 MB

Ecco un esempio di file di formato di visualizzazione:

// this is a comment line
// each section must start with a '#' character
#itn
// list of ITN pattern rules, one rule for each line
\d-\d-\d
\d-\l-\l-\d
#rewrite
// list of rewrite rules, each rule has two phrases, separated by a tab character
old phrase	new phrase
# profanity
// list of profanity phrases to be tagged/removed/masked, one line one phrase
fakeprofanity
#test
// list of test cases, each test case has two sentences, input lexical and expected display output
// the two sentences are separated by a tab character
// the expected sentence is the display output of DPP+CDPP models
Mask the fakeprofanity word	Mask the ************* word

Passaggi successivi