KEN’S CAT LOG
▣

Dati di addestramento per sintesi vocale: confronto tra 10, 5 e 3 ore. Quasi nessuna differenza in un TTS trilingue

Segue dal modello di sintesi vocale in croato. Questa volta, ho fatto parlare a un unico piccolo modello tre lingue: croato, giapponese e inglese. Poi ho confrontato quanto cambiasse il risultato con 10, 5 o 3 ore di dati di addestramento per ciascuna lingua.

Prima, la conclusione.

  • Che ogni lingua avesse 10, 5 o 3 ore di dati, alla fine il risultato cambiava pochissimo. Il tasso di errore sui caratteri nel momento migliore era dello 0,7% per tutti e tre (28 frasi su 32 perfettamente identiche)
  • Anche l'andamento dell'addestramento era pressoché identico. In tutti i casi, giapponese e inglese leggevano quasi perfettamente il copione dopo 3.000–5.000 passaggi, e il croato dopo 10.000 passaggi
  • Solo la versione da 3 ore ha mantenuto per un po' la tendenza a leggere “Bok! (ciao)” come “Blok”. Ha richiesto un po' più tempo per stabilizzarsi nella condizione migliore
  • Non sono emerse differenze nemmeno con frasi piene di termini tecnici. Pensavo che la versione da 10 ore fosse più forte sul vocabolario, ma erano tutte e tre quasi uguali
  • Gli errori di lettura dei termini tecnici comparivano nello stesso modo sulle stesse parole in tutti e tre i modelli. In inglese, la causa non era il modello, ma la componente che converte le lettere in simboli fonetici (il dizionario)

Cosa ho fatto

Modelli: gli stessi della volta precedente, Matcha-TTS (circa 18,3 milioni di parametri) e Vocos (circa 13,5 milioni di parametri) per tornare alla forma d'onda. Il parlante è un solo uomo sui vent'anni.

Come ho gestito le 3 lingue: ho usato come input del modello simboli fonetici (IPA) comuni alle tre lingue. Suoni identici tra lingue, come “ʦ” e “ʨ”, condividono lo stesso simbolo. Per specificare quale lingua far parlare, uso come “numero della lingua” il numero che normalmente serve a cambiare parlante.

  • Croato: poiché è una lingua che si legge quasi esattamente come si scrive, basta sostituire le lettere con simboli fonetici in corrispondenza uno a uno
  • Giapponese: ho estratto lettura e accento con OpenJTalk, aggiungendo segni nei punti in cui l'altezza del suono sale e scende
  • Inglese: ho convertito in simboli fonetici con g2p_en (il dizionario di pronuncia CMU e un piccolo modello che stima la pronuncia delle parole assenti dal dizionario)

Dati di addestramento: audio dello stesso uomo che legge battute di conversazioni nelle tre lingue. Dopo aver confrontato i copioni con il riconoscimento vocale e rimosso gli errori di lettura, la quantità risultante era di 9,4 ore di croato, 9,7 ore di giapponese e 8,3 ore di inglese (circa 27 ore in totale). Questa è la “versione da 10 ore”.

Da qui, la “versione da 5 ore” è stata ottenuta estraendo casualmente esattamente 5 ore per lingua (15 ore in totale), mentre la “versione da 3 ore” contiene 3 ore per lingua (9 ore in totale, circa 5.800 file). Tutte le altre impostazioni (dimensione dei modelli, batch size e 60.000 passaggi) sono rimaste identiche. Poiché il numero di passaggi è lo stesso, meno dati significa vedere lo stesso audio molte più volte (la versione da 3 ore circa tre volte più della versione da 10 ore).

L'addestramento ha richiesto una RTX 4090 e 6–8 ore e mezza per ogni esecuzione.

Confronto delle voci durante l'addestramento

Ho sintetizzato con i modelli durante l'addestramento le seguenti frasi, che non erano incluse nei dati di addestramento.

  • Inglese: Tomorrow we're going to the seaside, and the day after we'll visit my grandma in Split.
  • Giapponese: Domani andremo al mare e dopodomani abbiamo in programma di andare a trovare mia nonna a casa sua.
  • Croato: Sutra idemo na more, a prekosutra ćemo posjetiti baku u Splitu.

Da sinistra: versione da 10 ore, da 5 ore e da 3 ore.

Passo Versione da 10 ore Versione da 5 ore Versione da 3 ore
1.000 Inglese Giapponese Croato Inglese Giapponese Croato Inglese Giapponese Croato
2.000 Inglese Giapponese Croato Inglese Giapponese Croato Inglese Giapponese Croato
3.000 Inglese Giapponese Croato Inglese Giapponese Croato Inglese Giapponese Croato
4.000 Inglese Giapponese Croato Inglese Giapponese Croato Inglese Giapponese Croato
5.000 Inglese Giapponese Croato Inglese Giapponese Croato Inglese Giapponese Croato
10.000 Inglese Giapponese Croato Inglese Giapponese Croato Inglese Giapponese Croato
20.000 Inglese Giapponese Croato Inglese Giapponese Croato Inglese Giapponese Croato
30.000 Inglese Giapponese Croato Inglese Giapponese Croato Inglese Giapponese Croato
40.000 Inglese Giapponese Croato Inglese Giapponese Croato Inglese Giapponese Croato
50.000 Inglese Giapponese Croato Inglese Giapponese Croato Inglese Giapponese Croato

A orecchio, a 1.000 step tutti i modelli erano ancora poco chiari. In inglese, però, si capiva già più o meno cosa veniva detto. In giapponese c'erano differenze tra le versioni: già a 1.000 step, la versione da 5 ore ha trascritto questa frase correttamente parola per parola. La versione da 10 ore, invece, ha prodotto «お世話になってみてください», e quella da 3 ore «明日までのメディックで…»: frasi completamente diverse.

Tra 3.000 e 5.000 step, tutti i modelli leggevano giapponese e inglese come da copione. Il croato arrivava un po' più tardi: la prima parola, «Sutra» («domani»), continuava a essere riconosciuta come «Sve», «Straj», «Satra» e simili fino a circa 5.000–10.000 step. Dopo i 20.000 step, a orecchio era quasi impossibile distinguere i tre modelli.

Uno sguardo ai numeri

Ho trascritto con Whisper large-v3 le frasi di valutazione (14 in croato, 9 in giapponese e 9 in inglese, tutte esterne ai dati di addestramento) e ho misurato il tasso di errore dei caratteri (CER) rispetto al copione. Per il giapponese, per evitare che varianti ortografiche dei kanji (come «あさって» e «明後日») fossero considerate errori, ho prima convertito tutto in letture katakana e poi confrontato i testi.

Per prima cosa, la media delle 32 frasi nelle tre lingue. Tra parentesi, il numero di corrispondenze esatte.

Step Versione 10 ore Versione 5 ore Versione 3 ore
1.000 43,8%(2) 41,9%(2) 43,8%(1)
2.000 16,6%(7) 17,7%(12) 17,6%(9)
3.000 7,7%(16) 6,2%(16) 9,9%(14)
4.000 5,9%(21) 3,7%(19) 2,7%(25)
5.000 2,1%(23) 3,3%(20) 4,5%(23)
10.000 1,4%(24) 1,1%(23) 1,7%(24)
15.000 0,8%(26) 0,7%(26) 2,0%(24)
20.000 0,7%(27) 0,8%(26) 0,9%(25)
30.000 0,7%(28) 0,8%(26) 1,7%(26)
40.000 1,2%(25) 1,7%(26) 0,7%(26)
45.000 3,9%(25) 0,7%(28) 0,7%(27)
50.000 0,7%(28) 0,7%(26) 0,7%(28)
60.000 1,8%(26) 0,8%(27) 1,9%(25)

Suddiviso per lingua, il risultato è questo (croato / giapponese / inglese).

Step Versione 10 ore Versione 5 ore Versione 3 ore
5.000 2,8 / 1,2 / 1,8% 6,5 / 1,2 / 0,3% 2,0 / 1,8 / 11,1%
10.000 2,2 / 1,2 / 0,3% 1,7 / 1,2 / 0,3% 2,9 / 1,2 / 0,3%
20.000 0,8 / 1,2 / 0,0% 0,9 / 1,2 / 0,0% 0,8 / 1,8 / 0,3%
30.000 0,7 / 1,2 / 0,0% 1,1 / 1,2 / 0,0% 3,2 / 1,2 / 0,0%
50.000 0,7 / 1,2 / 0,0% 0,9 / 1,2 / 0,0% 0,7 / 1,2 / 0,0%
  • I risultati migliori sono stati ottenuti dalla versione da 10 ore a 30.000 e 50.000 step, da quella da 5 ore a 45.000 step e da quella da 3 ore a 50.000 step. Tutte hanno raggiunto lo 0,7% complessivo, con 28 frasi su 32 corrispondenti perfettamente: tutte e tre sono arrivate allo stesso punto
  • I punti in cui i valori schizzano verso l'alto dipendono quasi sempre dalla differenza di una sola parola. Per esempio, «Bok!» («ciao») è stato riconosciuto come «Bog» e «Hi!» come «Bye.»; in frasi brevi di una o due parole, basta una differenza di un carattere perché il tasso di errore aumenti molto
  • Nella versione da 3 ore, il croato è salito sopra il 3% tra 15.000 e 35.000 step. Guardando nel dettaglio, quasi tutto dipendeva da una sola frase in cui «Bok!» veniva letto come «Blok». A 50.000 step era stato corretto. Con meno dati, sembra servire più tempo prima che spariscano le particolarità delle frasi brevi
  • L'1,2% del giapponese dipende ogni volta da una sola frase: «しーっ、静かに。», in cui «しーっ» viene trascritto come «し». È una questione di quanto estendere la vocale lunga nella scrittura; ascoltando, dice correttamente «しーっ»
  • Il resto degli errori in croato riguarda quasi tutto abitudini del sistema di trascrizione, come «prekosutra» («dopodomani») scritto in due parole, «preko sutra»

La differenza tra 10, 5 e 3 ore rientrava nel margine d'errore. Almeno per quanto riguarda «riesce a leggere come da copione», erano sufficienti 3 ore per ciascuna lingua. Tuttavia, la versione da 3 ore ha impiegato più tempo a stabilizzarsi, quindi è consigliabile eseguire oltre 40.000 step.

Confronto con frasi piene di termini tecnici

Anche se pochi dati possono bastare per le conversazioni quotidiane, forse più dati danno un vantaggio con parole difficili che quasi non compaiono nei dati di addestramento. Con questa idea, ho creato dieci frasi dense di termini specialistici di medicina, informatica, diritto, chimica, finanza e altri ambiti, facendole leggere nelle tre lingue. Per tutti i modelli ho usato la versione a 50.000 step.

  1. Poiché si sospetta un infarto miocardico, preparate con urgenza l'angiografia coronarica e la terapia trombolitica.
    • We suspect a myocardial infarction, so please prepare coronary angiography and thrombolytic therapy immediately.
    • Sumnjamo na infarkt miokarda, zato odmah pripremite koronarnu angiografiju i trombolitičku terapiju.
  2. Questo algoritmo combina una rete neurale convoluzionale con un'architettura ricorrente.
    • This algorithm combines a convolutional neural network with a recurrent architecture.
    • Ovaj algoritam kombinira konvolucijsku neuronsku mrežu s rekurentnom arhitekturom.
  3. L'avvocato dell'imputato ha chiesto l'assoluzione in appello, citando l'acquisizione illegale delle prove.
    • The defendant's attorney argued for acquittal on appeal, citing the unlawful acquisition of evidence.
    • Branitelj optuženika zatražio je oslobađajuću presudu u žalbenom postupku zbog nezakonito pribavljenih dokaza.
  4. Nella fotosintesi, la catena di trasporto degli elettroni opera nella membrana tilacoidale del cloroplasto, sintetizzando adenosina trifosfato.
    • In photosynthesis, the electron transport chain in the thylakoid membrane of the chloroplast produces adenosine triphosphate.
    • U fotosintezi lanac prijenosa elektrona u tilakoidnoj membrani kloroplasta proizvodi adenozin-trifosfat.
  5. La distribuzione di chiavi crittografiche basata sull'entanglement quantistico può rilevare in linea di principio qualsiasi intercettazione.
    • Quantum key distribution based on entanglement can, in principle, detect any eavesdropping.
    • Kvantna distribucija ključeva temeljena na spregnutosti u načelu može otkriti svako prisluškivanje.
  6. In risposta all'aumento dell'inflazione, la banca centrale ha deciso di alzare i tassi d'interesse e avviare una stretta quantitativa.
    • Responding to rising inflation, the central bank decided to raise interest rates and begin quantitative tightening.
    • Zbog rasta inflacije središnja banka odlučila je povisiti kamatne stope i započeti kvantitativno pooštravanje.
  7. Ai pazienti con osteoartrosi del ginocchio vengono somministrate iniezioni intra-articolari di acido ialuronico associate alla fisioterapia.
    • Patients with knee osteoarthritis receive intra-articular hyaluronic acid injections combined with physiotherapy.
    • Pacijenti s osteoartritisom koljena dobivaju intraartikularne injekcije hijaluronske kiseline uz fizioterapiju.
  8. Questo ponte sostiene una soletta in cemento armato su travi in calcestruzzo precompresso.
    • This bridge supports a reinforced concrete deck on prestressed concrete girders.
    • Ovaj most nosi armiranobetonsku ploču na prednapregnutim betonskim nosačima.
  9. L'exchange di criptovalute verifica l'integrità del proprio registro distribuito tramite un algoritmo di consenso.
    • The cryptocurrency exchange verifies the integrity of its distributed ledger with a consensus algorithm.
    • Mjenjačnica kriptovaluta provjerava cjelovitost distribuirane glavne knjige algoritmom konsenzusa.
  10. L'uso eccessivo di antibiotici favorisce la comparsa di batteri multiresistenti e aumenta il rischio di infezioni nosocomiali.
  • Excessive use of antibiotics leads to multidrug-resistant bacteria and increases the risk of nosocomial infections.
  • Prekomjerna uporaba antibiotika dovodi do multirezistentnih bakterija i povećava rizik od bolničkih infekcija.
Frase Versione da 10 ore Versione da 5 ore Versione da 3 ore
1. Poiché si sospetta un infarto miocardico, preparate immediatamente la coronarografia e la terapia trombolitica. Inglese Giapponese Croato Inglese Giapponese Croato Inglese Giapponese Croato
2. Questo algoritmo combina una rete neurale convoluzionale con una rete ricorrente. Inglese Giapponese Croato Inglese Giapponese Croato Inglese Giapponese Croato
3. L'avvocato dell'imputato ha chiesto l'assoluzione in appello, sostenendo che le prove erano state raccolte illegalmente. Inglese Giapponese Croato Inglese Giapponese Croato Inglese Giapponese Croato
4. Nella fotosintesi, la catena di trasporto degli elettroni opera nella membrana tilacoide dei cloroplasti, dove viene sintetizzato l'adenosina trifosfato. Inglese Giapponese Croato Inglese Giapponese Croato Inglese Giapponese Croato
5. La distribuzione di chiavi crittografiche basata sull'entanglement quantistico consente di rilevare in linea di principio le intercettazioni. Inglese Giapponese Croato Inglese Giapponese Croato Inglese Giapponese Croato
6. In seguito all'aumento del tasso d'inflazione, la banca centrale ha deciso di alzare i tassi d'interesse e di attuare una stretta quantitativa. Inglese Giapponese Croato Inglese Giapponese Croato Inglese Giapponese Croato
7. Nei pazienti con osteoartrosi del ginocchio, associamo iniezioni intra-articolari di acido ialuronico alla fisioterapia. Inglese Giapponese Croato Inglese Giapponese Croato Inglese Giapponese Croato
8. Questo ponte sostiene una soletta in cemento armato mediante travi in calcestruzzo precompresso. Inglese Giapponese Croato Inglese Giapponese Croato Inglese Giapponese Croato
9. Le piattaforme di scambio di criptovalute verificano l'integrità dei registri distribuiti mediante algoritmi di consenso. Inglese Giapponese Croato Inglese Giapponese Croato Inglese Giapponese Croato
10. L'uso eccessivo di antibiotici favorisce la comparsa di batteri multiresistenti e aumenta il rischio di infezioni ospedaliere. Inglese Giapponese Croato Inglese Giapponese Croato Inglese Giapponese Croato

Risultati.

Croato Giapponese Inglese Corrispondenza esatta su 30 frasi
Versione da 10 ore 0,6% 1,5% 4,6% 17
Versione da 5 ore 0,3% 1,0% 3,9% 20
Versione da 3 ore 0,5% 1,0% 4,1% 18

Non è emerso che la versione da 10 ore fosse superiore. Tutte e tre hanno dato risultati pressoché equivalenti; anzi, quella da 5 ore è stata leggermente migliore. Per sicurezza, misurando anche i modelli da 60.000 passi delle versioni da 10 e 5 ore, i risultati si sono invertiti: 1,9% per quella da 10 ore e 2,0% per quella da 5 ore. In altre parole, questa differenza è una semplice oscillazione casuale e non si può dire che una sia migliore delle altre. Solo per la versione da 3 ore, dato che la GPU era occupata da un altro lavoro, la sintesi e la trascrizione sono state eseguite sulla CPU. Le condizioni sono quindi state leggermente diverse.

Interessante è stato il contenuto degli errori.

  • Per l'inglese «cryptocurrency», tutti e tre i modelli hanno prodotto qualcosa che è stato riconosciuto come «Kripke-Kunershi», «Kripke-Kinoshi» o «Kripik-Innershi»
  • Anche «intra-articular», «multidrug-resistant» e «angiography» sono stati storpiati nello stesso modo da tutti e tre i modelli
  • Il giapponese «冠動脈造影» è stato trascritto da tutti e tre come «〜増え», mentre «床版» è diventato «障板» in tutti e tre i casi
  • Il croato «pooštravanje (inasprimento)» è stato riconosciuto da tutti i modelli come «poštravanje»

Modelli addestrati su quantità di dati diverse sbagliano allo stesso modo sulle stesse parole. Per l'inglese, la causa era chiara: non il modello, ma la componente che converte le lettere in simboli fonetici.

Il modello di questa prova non legge direttamente i caratteri, bensì i simboli fonetici. In inglese, g2p_en stima la pronuncia delle parole assenti dal dizionario. Verificando concretamente, «cryptocurrency» veniva convertito in simboli fonetici vicini a una pronuncia come «kuripakyunāshi», mentre «angiography» veniva convertito in simboli fonetici con una n inserita nel mezzo. Il modello si limita a trasformare in voce i simboli fonetici ricevuti, quindi sbaglia negli stessi punti sia con 10 ore sia con 3 ore di dati di addestramento.

Per il giapponese la situazione è leggermente diversa. Le letture di OpenJTalk erano corrette: «床版(ショーバン)» e «冠動脈造影(カンドーミャクゾーエー)». Che «床版» sia diventato «障板» dipende dall'uso di un kanji diverso con la stessa lettura: come pronuncia, è corretto. Non è possibile distinguere, con questo metodo di misurazione, se «造影» sia diventato «増え» perché Whisper ha ricondotto una parola rara a una più familiare o perché la pronuncia del modello non era abbastanza precisa. Anche qui, però, tutti e tre i modelli hanno sbagliato nello stesso modo.

Quindi, in questo sistema, almeno la capacità di gestire la terminologia specialistica inglese dipende non dalla quantità di dati di addestramento, ma dal dizionario di pronuncia. Se si vogliono gestire meglio i termini specialistici, è più rapido aggiungere le parole al dizionario che aumentare i dati.

Riepilogo

  • È stato possibile far parlare 3 lingue a un unico modello piccolo (circa 32 milioni di parametri in totale)
  • Per ogni lingua, la precisione di lettura è risultata alla fine pressoché identica con 10, 5 o 3 ore di dati di addestramento. La versione da 3 ore impiega un po' più tempo per stabilizzarsi
  • Non sono emerse differenze nemmeno con la terminologia specialistica. Gli errori avvengono sul lato del dizionario di pronuncia e non possono essere corretti aumentando la quantità di dati

Creare dati richiede tempo e denaro, quindi sembra ragionevole iniziare con 3 ore per lingua e aggiungerne altre solo se non bastano. Il prossimo passo sarà provare ad aumentare le lingue a 10 sulla base di questi risultati. Tuttavia, questa volta è stato misurato solo «che cosa viene detto». Per gli aspetti che non si possono misurare con il tasso di errore sui caratteri, come la naturalezza della voce e la gamma emotiva, più dati potrebbero essere vantaggiosi. Vorrei verificarlo ascoltando.