Pokročilé metody rozpoznávání řeči Přednáška 3 Fonetika a rozpoznávání řeči
Od rozpoznávání celých slov k rozpoznávání po nižších jednotkách Jednoduché metody rozpoznávání řeči pracují s reprezentacemi celých slov (reference u DTW, modely u HMM). •
To vyžaduje nahrání každé slovníkové položky a následné vytvoření reference nebo modelu.
•
Pro velké slovníky toto není ekonomické.
•
Neumožňuje to efektivně přidávat nová slova do slovníku (ani při přípravě nové aplikace, natož za běhu).
•
U celoslovních modelů má každý model své jedinečné parametry při rozpoznávání nelze zrychlit proces využitím podobnosti slov. (Např. celoslovní modely slov „Alexandr“ a „Alexandra“ se kompletně liší.)
Většina současných systémů rozpoznávání řeči používá HMM, které ovšem vycházejí z modelů jednotek menších než slova.
Jednotky vhodné pro rozpoznávání Požadavky na tyto jednotky a jejich vlastnosti: •
Jednotky jsou jazykově závislé
•
Musí zajistit kompletní pokrytí všech řečových zvuků v jazyce a možnost sestavit výslovnost libovolného slova
•
Musí existovat možnost (pokud možno automatizovatelného) převodu mezi textovou a výslovnostní podobou.
•
Jednotky by měly být (pokud možno) snadno identifikovatelné – jak lidským uchem, tak strojově.
•
Menší počet znamená snazší (robustnější) trénování, větší počet pak lepší reprezentovatelnost řečových zvuků
•
Definování jednotek značně komplikuje výslovnostní kontext (koartikulace, apod. – jevy, které se nevyskytují v textové podobě)
Jednotky používané při zpracování řeči Hláska (foném) – základní stavební jednotka řeči - výhody: malý počet, snadný převod z textu na výslovnost, - nevýhody: stejná hláska má velmi různou akustickou podobu podle kontextu (příklad „abrakadabra“ – 5 variant fonému „a“) Slabika – základní vyslovitelná jednotka řeči - výhody: slabiky již v sobě obsahují kontext (pro hlásky uvnitř) - nevýhody: velké množství slabik, automatická segmentace na slabiky není vždy jednoznačná („hrad-ní“, „hra-dní“), schází kontext mezi slabikami, není zahrnuta spodoba Difón – dvojice sousedních hlásek („ze středu do středu“) - výhody: zachován kontext, využívá se zejména při syntéze - nevýhody: poměrně velký počet jednotek (kvadrát počtu hlásek) Trifón – hláska v kontextu nalevo a napravo (si-a+h, a-h+o, h-o+j, ….) - výhody: oboustranný kontext, využití v syntéze i rozpoznávání, - nevýhody: extrémně velký počet jednotek (3.mocnina počtu hlásek)
Fonetika, fonologie, fonetická abeceda Fonetika – zabývá se zvukovou stránkou jazyka (jazyků), zkoumá jak se tvoří a správně vyslovují hlásky. Fonologie – zkoumá zvukovou stránku jazyka z hlediska dopadu na význam řeči, rozlišuje takové zvuky, které se podílejí na významu řeči např. v češtině rozlišujeme dva fonémy „a“ a „á“, protože tvoří významově různá slova slova („kat“ a „kát“) zatímco v řadě jazyků délka samohlásek nehraje roli Grafémy – stavební jednotky pro zápis textu Fonémy – stavební jednotky pro tvorbu řeči Fonetická abeceda – soubor znaků používaných pro fonémy při přepisu výslovnosti Proč při rozpoznávání řeči potřebujeme fonetickou abecedu ? 1. zadávání do slovníku („měl“ → „mňel“, „CD“→ „cédé“, „5“→ „pjet“) 2. fonetický přepis nahrávek pro trénování modelů fonémů
Fonémy v češtině – česká fonetická abeceda Nouza, J., Psutka, J., Uhlíř, J.: Phonetic Alphabet for Speech Recognition of Czech. In: Radio Engineering, vol. 6, no. 4, December 1997, pp. 16-20.
Pravidla fonetického přepisu (1) Slouží k vytvoření (standardního spisovného) fonetického přepisu slova nebo věty. Jsou využívána v programech označovaných jako G2P (grapheme-to-phoneme) Pravidla mají podobu A→B/C_D JESTLIŽE řetězci grafémů A bezprostředně předchází řetězec grafémů C a je bezprostředně následován řetězcem grafémů D PAK se A přepíše na řetězec fonémů B.
Pravidla fonetického přepisu (2) Základní pravidla: České ch (pozůstatek spřežkového pravopisu) přepisujeme jako [X] ch → X / _ České ů přepisujeme jako [ú] ů→ú/_ Písmeno w přepisujeme na [v] w→v/_ Písmeno q se přepisuje na [kv] q → kv /_ Samohlásky y/ý přepisujeme na [i/í] y→i/_ ý→í/_
Pravidla fonetického přepisu (3) Další pravidla: Následuje-li ě po b, p, f, v, přepisuje se na [je] ě → je / _ Spojení dě, tě, ně, mě přepisujeme na [ďe], [ťe], [ňe], [mňe] dě → ďe / _ tě → ťe / _ ně → ňe / _ ě → ňe / m_ Spojení di, ti, ni přepisujeme na [ďi], [ťi], [ňi] d → ď / _ t → ť / _ n → ň / _
Pravidla fonetického přepisu (4) Další pravidla: Jestliže x stojí před znělou souhláskou či samohláskou, přepisuje se na [gz], jestliže stojí před neznělou souhláskou či na konci slova, přepisuje se na [ks] x → gz / _
“egzdirektor”,
x → ks / _
“ekstratŘída”,
Písmeno x přepisujeme na [ks] na počátku slova před samohláskou a mezi samohláskami x → ks / - _ SA
“ksilofon”,
x → ks / SA1 _ SA2
“aleksej”,
Z uvedeného pravidla existuje výjimka. Jestliže na počátku slova je dvojice ex a následuje-li po ní samohláska, přepisuje se na [egz] ex → egz / - _ SA
“egzém”,
Pravidla fonetického přepisu (5) Pravidla spodoby znělosti Označíme ¬ ZPS jako neznělý protějšek ke znělé souhlásce ZPS, tj ¬ b = p, ¬ d = t, ¬ ď = ť, ¬ g = k, ¬ v = f, ¬ z = s, ¬ ž = š, ¬ h = ch, ¬ C = c, ¬ Č = č. podobně ¬ NPS je znělý protějšek k neznělé souhlásce NPS ZPS1 → ¬ ZPS1 / _ < - , NPS, ZPS2 - > „hrad“ → „hrat“, „vůz“ → „vús“, „Radka“ → „ratka“, „drozd“, → „drost“, NPS1 → ¬ NPS1 / _ ZPS
„kresba → „krezba“, „kdo“ → „gdo“,
Pravidla fonetického přepisu (6) Pravidla spodoby artikulační Jestliže souhláska n stojí před okluzívami k nebo g, spodobuje se v [N] n → N / _ < k, g > “baNka”, “goNg” Jestliže souhláska m stojí před f nebo v (retozubé hlásky), spodobuje se v [M] m → M / _ < f, v > “traMvaj”, “niMfa”, “trijuMf”, Jestliže souhlásky s, z stojí před t nebo d, mění se následovně ts → c / _
“pjecet”,
tš → č / _
“vječí”,
ds → c / _
„beskickí”,
dš → č / _
“mlačí”,
dz → C / _
“poCemí”, „leCgde“
dž → Č / _
“Čorč”, “loČije”,
Další pravidla v článku: Dana Nejedlová, Marek Volejník: Transkripce psaného českého textu do fonetické podoby
Příklady přepisu vět Spolek byl založen devatenáctého listopadu roku devatenácettřicetdva. spoleg_bil_založen_devatenáctého_listopadu_roku_devatenácetŘicedva Sejdeme se v naší restauraci ve čtvrt na sedm večer. sejdeme_se_v_naší_restauraci_ve_čtvrt_na_sedm_večer Kdy dnes odjíždí poslední vlak nebo autobus z Liberce do Pardubic. gdi_dnes_odjížďí_posleďňí_vlak_nebo_autobuz_z_liberce_do_pardubic Na konferenci senátor rovněž kritizoval současné právní prostředí. na_konferenci_senátor_rovňeš_kritizoval_současné_právňí_prostŘeďí Výkon brankáře znamenal pro hokejové družstvo dobré umístění v tabulce. víkon_braNkáře_znamenal_pro_hokejové_drušstvo_dobré_umísťeňí_f_tabulce Dnes bude oblačno až polojasno, místy možno očekávat přeháňky. dnez_bude_oblačno_aš_polojasno_místi_možno_očekávat_pŘeháňki
Přepis trénovacích dat (1) Nahrávky pro trénování modelů hlásek musí být foneticky anotovány, aby trén. program věděl, jaké hlásky a v jakém pořadí se v nahrávce nalézají. Postup: 1. Máme nahrávku v souboru *.wav a k ní textový přepis v souboru *.txt 2. Pomocí přepisovacích pravidel (nejlépe s využitím programu G2P) vytvoříme nový soubor *.phn obsahující fonetický přepis nahrávky (včetně případného ticha na začátku, konci, případně uprostřed). Společnost Diamo byla založena devatenáctého listopadu -společnost_ďiamo_bila_založena_devatenáctého_listopadu(symbol „_“ je použit pro usnadnění čtení)
3. Poslechem zkontrolujeme automaticky vytvořený přepis a opravíme případné chyby (u cizích slov, vliv spodoby na švu slov, apod.) či doplníme ticho a šumy -společnozd_dijamo_bila_založena_devatenáctého_listopadu-
Přepis trénovacích dat (2) 4. Ze souboru *.phn automaticky vytvoříme soubor *.lab (jedna hláska na jednom řádku) (trénovací program nedovoluje diakritiku, nutno použít angl. symboly – viz soubor alphabet48.abc)
0 0 si 00p 00o 00l 00e 0 0 ch 00n 00o 00z 00d
Převodní soubor alphabet48.abc Obsahuje celou fonetickou abecedu (48 symbolů fonémů, ticha a hluků) v různém kódování. Na každém řádku je: index hlásky, symbol v kódu Kam, symbol v kódu Win, anglický symbol 0aaa 1 á á aa 2bbb 3 c c ts 4 C C dz 5 č č ch 6 Č Č dg 7ddd 8 ď ď dj …. 40 - - si 41 @ E swa 42 1 1 n1 43 2 2 n2 44 3 3 n3 45 4 4 n4 46 5 5 n5 47 0 0 n0