fonetika

#2
by rlsHUN - opened

Köszönöm a munkádat. Ha esetleg javasolhatok (én most fogok beletenni egy kis időt) egy fonetikai fordító promtot próbálok összerakni, hogy ezzel is javítsam az eredményt. (pl.:2="kettő", az ékezetes nagybetűket cserélje mindenki kicsire, stb="satöbbi"). Tudom, hogy valaki már tett ki sed-es történetet a szöveg javításához, de azt kevésnek érzem. Ha értékelhető eredményeim vannak, küldöm..

Owner

Szia. Valami ilyesmiben már régóta benne vagyok, illetve folyamatosan fejlesztem is.
https://github.com/sarpba/hun

Bár ez nem a jelenlegi legfrissebb. Összeszinkronizálom estefelé a jelenlegi változattal. Illetve ezt a normalizálót használja az AI_dubhing appom is illetve az F5-TTS_hun repo is, ebven az infer_gradioba építettem csak be a normalizálót. Szerintem az tők jól működik már, de természetesen iszonyat sokat lehetne/kellene még dolgozni rajta.

Hozzáteszem minden ötletet, hozzájárulást szívesen fogadok én is, illetve szerintem mindenki aki használja. Beszéljünk majd, ha gondolod. Mp3pintyo discordjan fönt vagyok Arpad néven.

No hazaértem, szóval a normalizáló amit készítettem a modellhez az alábbi javításokat végzi a szövegen:
tartozik a normalizálóhoz egy changes.csv és egy force_changes.csv aminek a tartalmát folyamatosan bővítem. Nevek, külföldi szavak, vagy csak fur kiejtés a force_changes % # és ilyesmi... a force changes bárhol megtalálja a keresett karaktert vagy kifejezést, akkor kicseréli

Alább egy kis fonetikai átírás teszt. Kifelyezetten az F5-TTS-hez készűlt, szóval helyenként leírva fura lehet a normalizált, de többnyire így ejti ki jól... @rlsHUN ilyesmire gondoltál?

python normalizer_test.py 
--- Teljes Normalizálási Teszt ---
Eredeti: Ez egy példa szöveg a NATO-tól. Római számok: IV., IX., XII. Force changes: ninjutsu, chips. Changes: AI, GPU, like. Alfanumerikus: v3, r1, A123B, K-9. Dátumok: 2025. június 1., 2025. 06. 01., 2025.06.01., 2025. jún. 1., 2025.jún.1., 2025. VI. 1., 2025.VI.1., 2025-06-01. Időpont: 7:30-kor, 14:05, 09:00. Sorszámok: 1., 23., 100. Ez a 42. pont. Számok: 1234, 567, 0. Fölösleges karakterek: * - " ' : ( ) / # @. Dupla  szóközök  itt  vannak. Vége.
Normalizált: ... ez egy példa szöveg a nátótól. római számok negyedik, kilencedik, tizenkettedik force changes nindzsucu, csipsz. changes éjáj, gépéú, lájk. alfanumerikus vé három, er egy, a százhuszonhárom bé, ká kilenc. dátumok kétezerhuszonöt június elseje, kétezerhuszonöt június elseje, kétezerhuszonöt június elseje, kétezerhuszonöt június elseje, kétezerhuszonöt június elseje, kétezerhuszonöt június elseje, kétezerhuszonöt június elseje, kétezerhuszonöt június elseje. időpont hét harminckor, tizennégy óra öt perc, kilenc óra. sorszámok első, huszonharmadik, századik ez a negyvenkettedik pont. számok ezerkétszázharmincnégy, ötszázhatvanhét, nulladik fölösleges karakterek . dupla szóközök itt vannak. vége.

--- Egyedi Tesztesetek ---
Teszt: Római számok
  Eredeti: A IV. és IX. fejezet fontos. MCMXCVI. év.
  Normalizált: ... a negyedik és kilencedik fejezet fontos. ezerkilencszázkilencvenhat. év.

Teszt: Force changes
  Eredeti: Ez ninjutsu és chips.
  Normalizált: ... ez nindzsucu és csipsz.

Teszt: Changes (különálló szavak)
  Eredeti: Az AI és a GPU fontos, like that.
  Normalizált: ... az éjáj és a gépéú fontos, lájk that.

Teszt: Mozaikszavak
  Eredeti: A NATO és az ENSZ ülésezik. Az EU is. USA.
  Normalizált: ... a nátó és az e en ess zé ülésezik. az eu is. júeszéj.

Teszt: Alfanumerikus szavak
  Eredeti: Ez egy B2 vitamin és C3PO robot. Az X-Wing és a T-1000 is itt van. K9-es egység.
  Normalizált: ... ez egy bé kettő vitamin és cé három pé ó robot. az xwing és a té ezer is itt van. ká kilenc es egység.

Teszt: Dátumok
  Eredeti: Találkozó 2025. június 1. napján. Másik dátum: 2025. 07. 15. és 2024.12.24. Továbbiak: 2023. márc. 8., 2022.okt.10., 1999. XII. 31. és 2000.I.1. Végül: 2021-05-20.
  Normalizált: ... találkozó kétezerhuszonöt június elseje napján. másik dátum kétezerhuszonöt július tizenötödike és kétezerhuszonnégy december huszonnegyedike továbbiak kétezerhuszonhárom március nyolcadika, kétezerhuszonkettő október tizedike, ezerkilencszázkilencvenkilenc december harmincegyedike és kétezer január elseje végül kétezerhuszonegy május huszadika.

Teszt: Időpontok
  Eredeti: Reggel 7:30-kor kelek, de 08:00-kor indulok. Délután 14:05 van, este 22:15:30-kor fekszem.
  Normalizált: ... reggel hét óra harminc perckor kelek, de nyolc órakor indulok. délután tizennégy öt van, este huszonkettő óra tizenöt perc harminc másodperckor fekszem.

Teszt: Római számok pont nélkül
  Eredeti: Ez egy IV. fejezet, de XIV Lajos nem pont nélkül.
  Normalizált: ... ez egy negyedik fejezet, de xiv lajos nem pont nélkül.

Teszt: Force changes szó közepén
  Eredeti: Ez egy ninjutsu technika és chips-ek.
  Normalizált: ... ez egy nindzsucu technika és csipszek.

Teszt: Sorszámok
  Eredeti: Az 1. helyezett, a 23. versenyző és a 100. évforduló.
  Normalizált: ... az első hejezett, a huszonharmadik versenyző és a századik évforduló.

Teszt: Számok (kardinális)
  Eredeti: Vettem 1234 almát és 567 körtét. Van 0 darab.
  Normalizált: ... vettem ezerkétszázharmincnégy almát és ötszázhatvanhét körtét. van nulla darab.

Teszt: Fölösleges karakterek
  Eredeti: Ez *egy* "szöveg" (sok) fölösleges: karakterrel/. #@jel
  Normalizált: ... ez egy szöveg sok fölösleges karakterrel . jel

Teszt: Dupla szóközök
  Eredeti: Itt   van  néhány  extra   szóköz.
  Normalizált: ... itt van néhány extra szóköz.

Teszt: Összetett mondat
  Eredeti: A KFT. 2024. aug. 10-én 10:30-kor tartja a X. közgyűlését a B42-es teremben, ahol az R2D2 projekt eredményeit ismertetik.
  Normalizált: ... a ká ef té. kétezerhuszonnégy augusztus tizedikeén tíz harminckor tartja a tizedik közgyűlését a bé negyvenkettő es teremben, ahol az er kettő dé kettő projekt eredményeit ismertetik.

Teszt: Mondatvégi pont sorszámnál
  Eredeti: Ez a 12. oldal. A következő a 13. oldal.
  Normalizált: ... ez a tizenkettedik oldal. a következő a tizenharmadik oldal.

Teszt: Szöveg eleje
  Eredeti:    Ez egy szöveg szóközökkel az elején.
  Normalizált: ... ez egy szöveg szóközökkel az elején.

Teszt: Római számok önmagukban (nem alakulnak át)
  Eredeti: XIV Lajos, IV Béla.
  Normalizált: ... xiv lajos, iv béla.

Teszt: Alfanumerikus kötőjellel
  Eredeti: Ez egy teszt A-1, B2-C, D-3E.
  Normalizált: ... ez egy teszt a egy, bé kettő cé, dé három e.

--- Alfanumerikus Speciális Teszt ---
  Eredeti: A1, B2B, C3C3, D4D4D, E5-F6, G7H8I9, J10K
  Normalizált (teljes): ... a egy, bítúbí, cé három cé három, dé négy dé négy dé, e öt ef hat, gé hét há nyolc í kilenc, jé tíz ká
--- Szöveg elejének ellenőrzése ---
  Eredeti:    Ez egy szöveg szóközökkel.
  Normalizált: ... ez egy szöveg szóközökkel.
--- Dátum Speciális Teszt ---
  Eredeti: 2024. jan. 1. és 2024. január 1. valamint 2024. I. 1.
  Normalizált (teljes): ... kétezerhuszonnégy január elseje és kétezerhuszonnégy január elseje valamint kétezerhuszonnégy január elseje
--- Nem átalakuló Római Számok Teszt ---
  Eredeti: XIV Lajos és IV Béla uralkodott. A film címe Mission Impossible III volt.
  Normalizált (teljes): ... xiv lajos és iv béla uralkodott. a film címe mission impossible iii volt.
--- Időpont Speciális Teszt ---
  Eredeti: Találkozó 10:00-kor. Indulás 9:15. Érkezés 11:45:30.
  Normalizált (teljes): ... találkozó tíz órakor. indulás kilenc óra tizenöt perc. érkezés tizenegy óra negyvenöt perc harminc másodperc.
--- Sorszámok és Számok Teszt ---
  Eredeti: A 3. fejezet 12 oldalas. 100 emberből a 10. nyert.
  Normalizált (teljes): ... a harmadik fejezet tizenkettő oldalas. száz emberből a tizedik nyert.
--- Force Changes (szó közben) Teszt ---
  Eredeti: Ez egy tw%eet, showly.
  Normalizált (teljes): ... ez egy tv százalék eet, shovj.```
Owner

Egy fura hibát észrevettem a dátumok azonosításánál .

Pl, "Hagyjál már." -> "...hagyjál március." lesz :D.

Tyű! Én abba az irányba indultam, hogy rávettem a Chatgpt-t kb ugyanerre. Abból indultam ki, hogy az idegen nevek és kifejezések kiejtése nagyobb mintát igényelne és ez biztosabb megoldás. A hangsúlyozás még problémát okoz, de igyekszem erre is valamilyen promt alapú megoldást találni. Sok esetben az írásjelek túl nagy dinamikai ugrást idéznek elő (random seed) és ez több generálást indokol, amíg egy elfogadható verzió megszületik. A végleges felhasználási környezetem tervezetten egy automata frissítésű TTS, ahol egy szoftver audio guide részét generálja javítások/fejlesztések esetén a rendszer. Hajrá "donkihóte és trámp"! :) meg a "satöbbi"

Owner

Én azt vettem észre, hogy a ChatGPT és társai azaz a kereskedelmi LLM-ek nem alkalmasak igazán erre a célra. Sokszor nagy csacskaságokat adnak vissza, ha arra kérem, hogy pédlául egy angol szót magyarul fonetikusan írjon le. Hozzáteszem nem egyszerű feladatról van szó őszintén szólva én azon csodálkozom hogy azért 80-85%-ban jó fonetikus leírást adnak. Emiatt döntöttem amellett, hogy egy kötötteb rendszert találok ki, ami az átírások javát egzakt megismételhető módon adja vissza (nem mellesleg ingyen, extra API költség nélkül, vagy létezik olyan lokálisan futtatható modell ami alkalmas erre a célra?). Az én sriptemben "csak" a szókészletet kell bővíteni, ha van egy konkrét feladat. Könyveknél pl annyit én is szoktam kérni az LLM-ektől, hogy próbálja kigyüjteni a neveket, és az egyéb nem magyar szavakat, és azokat beillesztem a changes.csv-be a megfelelő átirattal. Persze egy dinamikusan változó tartalom generálásánál ez nehezen megoldható, automatizálható a fentebb említett átírási hibák miatt.

Ami a kérdő és felkiáltó mondatok eltúlzását illeti, azt az alapoknál kellene megoldanom, de egyelőre kicsit beszűkültem idővel. A tréning adatbázist kellene valahogy jobban leszűrnöm és a szélsőségeket kiejtenem belőle. Aztán újra tréningezni. Vélhetően ez javítana a dolgon.

This comment has been hidden (marked as Off-Topic)
sarpba changed discussion status to closed

Sign up or log in to comment