
Usporedba 10, 5 i 3 sata podataka za sintezu govora: gotovo bez razlike u TTS-u koji govori tri jezika
Nastavak o modelu za sintezu hrvatskog govora. Ovaj put sam jedan mali model naučio govoriti tri jezika: hrvatski, japanski i engleski. Zatim sam usporedio koliko se razlikuju skupovi za učenje od 10, 5 i 3 sata za svaki jezik.
Najprije zaključak.
- Bilo da je svaki jezik imao 10, 5 ili 3 sata podataka, na kraju gotovo da nije bilo razlike. Stopa pogrešaka znakova u najboljem trenutku bila je 0,7 % za sva tri modela (28 od 32 rečenice potpuno se podudaralo)
- Napredak tijekom učenja također je bio gotovo isti. Japanski i engleski u sva su tri slučaja već nakon 3.000–5.000 koraka zvučali dobro, a hrvatski je nakon 10.000 koraka također gotovo čitao prema scenariju
- Samo je verzija s 3 sata neko vrijeme zadržala naviku da „Bok! (zdravo)” pogrešno pročita kao „Blok”. Trebalo joj je malo dulje da se ustali u najboljem stanju
- Nije bilo razlike ni u rečenicama punima stručnih izraza. Testirao sam misleći da će verzija s 10 sati bolje poznavati vokabular, ali sva tri modela bila su gotovo jednaka
- Pogreške u čitanju stručnih izraza pojavile su se kod istih riječi na isti način u sva tri modela. Kod engleskog uzrok nije bio model, nego dio koji pretvara slova u fonetske znakove (rječnik)
Što sam napravio
Modeli: isti kao prošli put: Matcha-TTS (oko 18,3 milijuna parametara) i Vocos (oko 13,5 milijuna parametara), koji vraća zvučni val. Govornik je jedan muškarac u dvadesetima.
Kako sam omogućio tri jezika: ulaz modela pretvorio sam u fonetske znakove (IPA) zajedničke za sva tri jezika. Glasovi koji su jednaki u različitim jezicima, poput „ʦ” i „ʨ”, dijele isti znak. Jezik koji model govori određuje se brojem koji se inače koristi za promjenu govornika, a ovdje služi kao „broj jezika”.
- Hrvatski: budući da se uglavnom čita onako kako je napisano, dovoljno je slova preslikati jedan-na-jedan u fonetske znakove
- Japanski: pomoću OpenJTalka izvučeni su izgovor i naglasak te su dodane oznake mjesta na kojima visina tona raste i pada
- Engleski: fonetski znakovi dobiveni su pomoću g2p_en (CMU izgovornog rječnika i malog modela koji procjenjuje izgovor riječi kojih nema u rječniku)
Podaci za učenje: snimke istog muškog glasa koji čita dijaloge na tri jezika. Nakon što su glasovnim prepoznavanjem uklonjena pogrešna čitanja usporedbom sa scenarijem, ostalo je 9,4 sata hrvatskog, 9,7 sati japanskog i 8,3 sata engleskog (ukupno oko 27 sati). To nazivam „verzijom od 10 sati”.
Iz toga je nasumično izdvojeno točno po 5 sati za svaki jezik (ukupno 15 sati) za „verziju od 5 sati”, odnosno po 3 sata (ukupno 9 sati, oko 5.800 snimki) za „verziju od 3 sata”. Sve ostale postavke (veličina modela, veličina batcha i 60.000 koraka) bile su iste. Budući da je broj koraka jednak, modeli s manje podataka isti zvuk vide više puta (verzija od 3 sata oko tri puta više nego verzija od 10 sati).
Učenje je na jednoj RTX 4090 trajalo 6 do 8 i pol sati po pokretanju.
Usporedba glasova tijekom učenja
Sljedeće rečenice, koje nisu bile u podacima za učenje, sintetizirane su modelima tijekom učenja.
- Engleski: Tomorrow we're going to the seaside, and the day after we'll visit my grandma in Split.
- Japanski: Sutra ćemo ići na more, a prekosutra planiram otići u posjet baki.
- Hrvatski: Sutra idemo na more, a prekosutra ćemo posjetiti baku u Splitu.
Slijeva nadesno: verzija od 10 sati, verzija od 5 sati i verzija od 3 sata.
| Korak | 10-satna verzija | 5-satna verzija | 3-satna verzija |
|---|---|---|---|
| 1.000 | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski |
| 2.000 | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski |
| 3.000 | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski |
| 4.000 | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski |
| 5.000 | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski |
| 10.000 | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski |
| 20.000 | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski |
| 30.000 | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski |
| 40.000 | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski |
| 50.000 | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski |
Po dojmu pri slušanju, 1.000 koraka još je kod svih verzija nejasno. No engleski se već uglavnom može razumjeti. Japanski se razlikovao ovisno o verziji: verzija s 5 sati već je nakon 1.000 koraka ovu rečenicu ispravno prepisala od riječi do riječi. Nasuprot tome, verzija s 10 sati izgovorila je „Pokušajte se pobrinuti za to”, a verzija s 3 sata „S liječnikom do sutra...”, dakle sasvim drugačije rečenice.
Nakon 3.000–5.000 koraka svi modeli počinju čitati japanski i engleski prema predlošku. Hrvatski malo kasni: početno „Sutra” i dalje se čuje kao „Sve”, „Straj”, „Satra” i slično sve do otprilike 5.000–10.000 koraka. Nakon 20.000 koraka pri slušanju se gotovo više nije mogla razaznati razlika između te tri verzije.
Pogled kroz brojke
Rečenice za evaluaciju (14 hrvatskih, 9 japanskih i 9 engleskih, sve izvan podataka za učenje) prepisane su pomoću Whispera large-v3, a zatim je izmjerena stopa pogrešaka znakova (CER) u odnosu na predložak. Japanski je prije usporedbe pretvoren u čitanje katakanom kako se varijacije u zapisu kanjijima (poput „asatte” i „preksutra”) ne bi računale kao pogreške.
Najprije prosjek za sve 32 rečenice na trima jezicima. Broj u zagradama označava broj potpunih podudarnosti.
| Koraci | Verzija s 10 sati | Verzija s 5 sati | Verzija s 3 sata |
|---|---|---|---|
| 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) |
Po jezicima to izgleda ovako (hrvatski / japanski / engleski).
| Koraci | Verzija s 10 sati | Verzija s 5 sati | Verzija s 3 sata |
|---|---|---|---|
| 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 % |
- Najbolji su bili verzija s 10 sati pri 30.000 i 50.000 koraka, verzija s 5 sati pri 45.000 koraka te verzija s 3 sata pri 50.000 koraka. Sve su imale ukupno 0,7 %, s 28 od 32 rečenice koje se potpuno podudaraju, odnosno sve tri dosegle su istu razinu
- Mjesta na kojima brojke uskaču gotovo se uvijek svode na razliku u jednoj riječi. Primjerice, „Bok!” se prepozna kao „Bog”, a „Hi!” kao „Bye.”; u kratkim rečenicama od jedne ili dvije riječi pogreška od samo jednog znaka znatno podiže stopu pogreške
- U verziji s 3 sata hrvatski je između 15.000 i 35.000 koraka na razini od 3 %. Kad se pogleda sadržaj, gotovo sve otpada na jednu rečenicu u kojoj se „Bok!” čita kao „Blok”. Pri 50.000 koraka to je ispravljeno. Čini se da s manje podataka treba više vremena da nestanu navike u kratkim rečenicama
- Japanskih 1,2 % svaki put dolazi samo od jedne rečenice: „ššš, tiho.”, u kojoj se „ššš” prepisuje kao „š”. To je pitanje koliko dugo se bilježi produženi glas; pri slušanju se jasno čuje „ššš”
- Preostale pogreške u hrvatskom uglavnom su navike alata za prepisivanje, primjerice „prekosutra” se zapisuje kao dvije riječi, „preko sutra”
Razlika između 10, 5 i 3 sata bila je unutar granice pogreške. Barem za pitanje „može li čitati prema predlošku”, tri sata po jeziku bila su dovoljna. Međutim, verziji s 3 sata trebalo je dulje da se ustali, pa je preporučljivo trenirati više od 40.000 koraka.
Usporedba na rečenicama prepunima stručnih izraza
Ako je za svakodnevni razgovor dovoljno i manje podataka, možda bi veća količina podataka bila bolja za teške riječi koje se gotovo ne pojavljuju u podacima za učenje. S tom mišlju sastavljeno je 10 rečenica prepunih stručnih izraza iz medicine, IT-a, prava, kemije i financija te su pročitane na trima jezicima. Za sve modele korištena je verzija s 50.000 koraka.
- Budući da sumnjamo na infarkt miokarda, hitno pripremite koronarnu angiografiju i trombolitičku terapiju.
- Sumnjamo na infarkt miokarda, zato odmah pripremite koronarnu angiografiju i trombolitičku terapiju.
- Sumnjamo na infarkt miokarda, zato odmah pripremite koronarnu angiografiju i trombolitičku terapiju.
- Ovaj algoritam kombinira konvolucijsku neuronsku mrežu s rekurentnom arhitekturom.
- Ovaj algoritam kombinira konvolucijsku neuronsku mrežu s rekurentnom arhitekturom.
- Ovaj algoritam kombinira konvolucijsku neuronsku mrežu s rekurentnom arhitekturom.
- Branitelj optuženika u žalbenom je postupku zatražio oslobađajuću presudu, pozivajući se na nezakonito pribavljene dokaze.
- Branitelj optuženika zatražio je oslobađajuću presudu u žalbenom postupku zbog nezakonito pribavljenih dokaza.
- Branitelj optuženika zatražio je oslobađajuću presudu u žalbenom postupku zbog nezakonito pribavljenih dokaza.
- U fotosintezi lanac prijenosa elektrona u tilakoidnoj membrani kloroplasta proizvodi adenozin-trifosfat.
- U fotosintezi lanac prijenosa elektrona u tilakoidnoj membrani kloroplasta proizvodi adenozin-trifosfat.
- U fotosintezi lanac prijenosa elektrona u tilakoidnoj membrani kloroplasta proizvodi adenozin-trifosfat.
- Kvantna distribucija ključeva temeljena na spregnutosti u načelu može otkriti svako prisluškivanje.
- Kvantna distribucija ključeva temeljena na spregnutosti u načelu može otkriti svako prisluškivanje.
- Kvantna distribucija ključeva temeljena na spregnutosti u načelu može otkriti svako prisluškivanje.
- Zbog rasta inflacije središnja banka odlučila je povisiti kamatne stope i započeti kvantitativno pooštravanje.
- Zbog rasta inflacije središnja banka odlučila je povisiti kamatne stope i započeti kvantitativno pooštravanje.
- Zbog rasta inflacije središnja banka odlučila je povisiti kamatne stope i započeti kvantitativno pooštravanje.
- Pacijenti s osteoartritisom koljena dobivaju intraartikularne injekcije hijaluronske kiseline uz fizioterapiju.
- Pacijenti s osteoartritisom koljena dobivaju intraartikularne injekcije hijaluronske kiseline uz fizioterapiju.
- Pacijenti s osteoartritisom koljena dobivaju intraartikularne injekcije hijaluronske kiseline uz fizioterapiju.
- Ovaj most nosi armiranobetonsku ploču na prednapregnutim betonskim nosačima.
- Ovaj most nosi armiranobetonsku ploču na prednapregnutim betonskim nosačima.
- Ovaj most nosi armiranobetonsku ploču na prednapregnutim betonskim nosačima.
- Mjenjačnica kriptovaluta provjerava cjelovitost distribuirane glavne knjige algoritmom konsenzusa.
- Mjenjačnica kriptovaluta provjerava cjelovitost distribuirane glavne knjige algoritmom konsenzusa.
- Mjenjačnica kriptovaluta provjerava cjelovitost distribuirane glavne knjige algoritmom konsenzusa.
- Prekomjerna uporaba antibiotika dovodi do multirezistentnih bakterija i povećava rizik od bolničkih infekcija.
- Prekomjerna uporaba antibiotika dovodi do multirezistentnih bakterija i povećava rizik od bolničkih infekcija.
- Prekomjerna uporaba antibiotika dovodi do multirezistentnih bakterija i povećava rizik od bolničkih infekcija.
| Rečenica | Verzija od 10 sati | Verzija od 5 sati | Verzija od 3 sata |
|---|---|---|---|
| 1. Postoji sumnja na infarkt miokarda, stoga hitno pripremite koronarnu angiografiju i trombolitičku terapiju. | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski |
| 2. Ovaj algoritam ima strukturu koja kombinira konvolucijsku neuronsku mrežu i rekurentnu mrežu. | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski |
| 3. Odvjetnik optuženika zatražio je oslobađajuću presudu u žalbenom postupku zbog nezakonito prikupljenih dokaza. | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski |
| 4. U fotosintezi elektronski transportni lanac djeluje u tilakoidnoj membrani kloroplasta, pri čemu se sintetizira adenozin trifosfat. | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski |
| 5. Distribucija kriptografskih ključeva koja koristi kvantnu spregnutost omogućuje načelno otkrivanje prisluškivanja. | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski |
| 6. Središnja banka odlučila je povećati ključnu kamatnu stopu i provesti kvantitativno stezanje zbog rasta stope inflacije. | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski |
| 7. Kod pacijenata s osteoartritisom koljena kombiniramo intraartikularne injekcije hijaluronske kiseline i fizioterapiju. | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski |
| 8. Ovaj most ima armiranobetonsku kolničku ploču koju podupiru nosači od prednapetog betona. | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski |
| 9. Burza kriptovaluta provjerava integritet decentralizirane knjige pomoću algoritma konsenzusa. | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski |
| 10. Prekomjerna primjena antibiotika dovodi do pojave bakterija otpornih na više lijekova i povećava rizik od bolničkih infekcija. | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski | Engleski Japanski Hrvatski |
Rezultati.
| Hrvatski | Japanski | Engleski | Potpuno podudaranje od 30 rečenica | |
|---|---|---|---|---|
| Verzija s 10 sati | 0,6% | 1,5% | 4,6% | 17 |
| Verzija s 5 sati | 0,3% | 1,0% | 3,9% | 20 |
| Verzija s 3 sata | 0,5% | 1,0% | 4,1% | 18 |
Rezultat nije pokazao da je verzija s 10 sati bolja. Sve su tri bile otprilike jednake, a verzija s 5 sati čak je bila mrvicu bolja. Za svaki slučaj izmjerio sam i modele s 60.000 koraka za verzije s 10 i 5 sati: verzija s 10 sati imala je 1,9%, a ona s 5 sati 2,0%, pa se poredak preokrenuo. Drugim riječima, ta je razlika samo slučajna varijacija i ne može se reći koja je bolja. Samo je verzija s 3 sata sintetizirana i prepisivana na CPU-u jer je GPU bio zauzet drugim poslom. Zbog toga su uvjeti bili neznatno drukčiji.
Zanimljiv je bio sadržaj pogrešaka.
- Englesku riječ „cryptocurrency” sva su tri modela prepoznala kao nešto što zvuči poput „Kripke-Kunershi”, „Kripke-Kinoshi” ili „Kripik-Innershi”
- „intra-articular”, „multidrug-resistant” i „angiography” također su se na sličan način pogrešno izgovorili u sva tri modela
- Japanski izraz „koronarna angiografija” sva su tri modela prepisala kao „~増え”, a „床版” sva tri kao „障板”
- Hrvatsku riječ „pooštravanje” svi su modeli prepoznali kao „poštravanje”
Modeli s različitom količinom podataka griješe na isti način, na istim riječima. Za engleski je uzrok bio jasan: nije bio u modelu, nego u dijelu koji pretvara slova u fonetske znakove.
Ovaj model ne čita slova izravno, nego čita fonetske znakove. Za engleski g2p_en nagađa izgovor riječi koje nisu u rječniku. Kada sam to provjerio, „cryptocurrency” je pretvoren u fonetske znakove bliske izgovoru „kuripakjunaši”, a „angiography” u fonetske znakove s umetnutim n u sredini. Model samo pretvara dobivene fonetske znakove u glas, pa griješi na istom mjestu bez obzira na to ima li podatke za 10 ili 3 sata učenja.
Japanski je malo drukčiji slučaj. Čitanja u OpenJTalku bila su ispravna: „床版(ショーバン)” i „冠動脈造影(カンドーミャクゾーエー)”. To što je „床版” postalo „障板” znači da je upotrijebljen drugi kanji s istim čitanjem, što je izgovorno ispravno. Zašto je „造影” postalo „増え” — je li Whisper rijetku riječ približio poznatijoj riječi ili je izgovor modela bio nedovoljno jasan — ovom metodom mjerenja nije moguće razlikovati. No i ovdje su sva tri modela griješila na sličan način.
Dakle, u ovom sustavu snaga engleskih stručnih termina, barem zasad, ne ovisi o količini podataka za učenje, nego o rječniku izgovora. Ako želite bolju podršku za stručne termine, brže je dodati riječi u rječnik nego povećavati količinu podataka.
Sažetak
- Mogao sam navesti mali model (ukupno oko 32 milijuna parametara) da govori tri jezika
- Podaci za učenje bili su gotovo jednako točni pri čitanju za 10, 5 ili 3 sata po jeziku. Verziji s 3 sata trebalo je malo dulje da se stabilizira
- Nije bilo razlike ni kod stručnih termina. Pogreške nastaju na strani rječnika izgovora i ne mogu se ispraviti količinom podataka
Izrada podataka oduzima i vrijeme i novac, pa se čini razumnim najprije izraditi po 3 sata za svaki jezik, a zatim dodati više ako to nije dovoljno. Sljedeće namjeravam, na temelju ovog rezultata, povećati broj jezika na deset. No ovdje je mjereno samo „što se izgovara”. U aspektima koji se ne mogu mjeriti stopom pogreške znakova, kao što su prirodnost glasa i raspon emocija, više podataka moglo bi biti prednost. To želim provjeriti slušanjem.



