ROZPOZNÁVÁNÍ DIKTOVANÉ ŘEČI PRO RADIOLOGICKÉ APLIKACE Speech Recognition System for Radiologic Application Kamil Chalupníček, Pavel Matějka
*
Abstrakt Příspěvek pojednává o návrhu koncepce rozpoznávače řeči založeného na skrytých Markovových modelech, určeného pro diktování radiologických zápisů. Hlavní část práce je zaměřena na strukturu rozpoznávače, předzpracování textu pro tvorbu jazykového modelu a nahrávání testovací databáze, na které byly provedeny testy se slovní chybou 35,6 %.
Abstract This work deal with building speech recognizer for radiodiagnostic applications. Main part is concern in structure of this recognizer, and preprocessing text diagnosis for building task specific language model. First test on real speech date were performed with word error rate 35,6 %.
Úvod Hlavní myšlenkou projektu je usnadnit lékařské obci zaznamenávání zjištěných diagnostických dat do elektronické podoby. Doslova to tedy znamená, místo ručního psaní textu na klávesnici „jen“ diktování diagnózy přes mikrofon připojený ke zvukové kartě počítače a následné softwarové vyhodnocení mluvené řeči s textovým výstupem na obrazovku či do souboru. Řešení vyžaduje reálné zápisy diagnóz, tak jak byly zaznamenány samotnými lékaři, vhodné nástroje pro rozpoznávání mluvené řeči, dostatek záznamů mluvené řeči pro natrénování akustických modelů, případně již natrénovaný akustický model. Jednotlivé zápisy diagnóz je potřeba upravit pro další zpracování. Následně z nich vytvořit jazykový model a_slovník všech v textu užitých slovních tvarů. Poté vytvořit rozpoznávač (založený na skrytých Markovových modelech), do kterého se implementuje jazykový model.
Parametrizace řečového signálu Při generování řeči člověkem je hlasové ústrojí během krátkého časového intervalu (řádu_desítek milisekund) v jednom z konečného počtu stavů artikulačního ústrojí. Často používaná hodnota tohoto intervalu je 20 ms. Následně se na každém vzorku provede standardní MFCC parametrizace, neboli jsou vytvořeny Mel-frekvenční kepstrální koeficienty. Tyto koeficienty jsou často doplňovány o aproximaci první a druhé derivace, takzvanými delta a akceleračními koeficienty. Tato parametrizace probíhá následujícím postupem: *
Kamil Chalupníček, Ústav radioelektroniky, FEKT VUT v Brně , Purkyňova 118, 612 00 Brno e-mail:
[email protected] Ing. Pavel Matějka, Ústav radioelektroniky, FEKT VUT v Brně , Purkyňova 118, 612 00 Brno tel.: +420 541 141 283, e-mail:
[email protected]
29
• • •
výpočet energií na výstupech jednotlivých filtrů, které jsou nelineárně rozloženy na frekvenční ose (viz obr. 1) (nelineárně proto, že lidské ucho má na nižších frekvencích vyšší rozlišovací schopnost než na frekvencích vysokých) provedeme diskrétní Fourierovu transformaci (DFT) z těchto energií, výsledek umocníme, vynásobíme trojúhelníkovým oknem a sečteme následnou diskrétní kosínovou transformací (DCT) již získáme požadované MFCC koeficienty
Obr. 1 Banka melovských trojúhelníkových filtrů
Skryté Markovovy modely (Hidden Markov Models) Algoritmy skrytých Markovových modelů (HMM) jsou založeny na statistice. HMMs vychází z představy procesu, který přechází mezi stavy a po každém přechodu vygeneruje vektor pozorování. Matematický model je popsán maticí přechodových pravděpodobností A, kde prvek aij udává pravděpodobnost přechodu ze stavu i do stavu j, a pravděpodobnostními rozloženími generování vektorů pozorování stavy bj(ot). Pro řeč jsou používány tzv. levopravé modely (obr. 2), kdy matice přechodových pravděpodobností umožňuje pouze přechody do vyšších stavů nebo setrvání ve stavu stávajícím.
Obr. 2 Levo-pravý skrytý Markovův model
30
Dekodér Spojením několika skrytých Markovových modelů vznikne v globálním pohledu mnoho možností jeho průchodu. Z cesty, pro kterou jsou zjištěny největší hodnoty podobností jednotlivých vygenerovaných vektorů pozorování s vektory navzorkovaného parametrizovaného řečového signálu, je určeno o jakou posloupnost „znaků“ se v promluvě jednalo. Algoritmus, který se často používá pro rozpoznávání plynulé řeči, se nazývá tokenpassing. Tento algoritmus používá k dekódování řeči tzv. žetonů. Žeton přechází od stavu ke stavu a cestou na sebe navazuje všechny pravděpodobnosti: pravděpodobnosti přechodů mezi stavy, pravděpodobnosti generování vektorů pozorovaní a pravděpodobnosti ze slovních sítí. V_uzlových bodech je žeton naklonován a poslán do všech dalších možných cest nebo jen do n_nejvhodnějších. Žeton, který dorazí do cílového uzlu a má největší pravděpodobnost, je vítěz a z cesty, kterou prošel, je zrekonstruována věta. Aby nedocházelo k přetížení počítače, či zaplnění paměti, bývají žetony v určitých časech oproti sobě porovnávány a žetony s malou pravděpodobností jsou rušeny. Výsledná přesnost je závislá na kvalitě vytvořeného jazykového a akustického modelu.
Tvorba akustického modelu (trénování skrytých Markovových modelů) Akustický model je sada natrénovaných HMM’s. Buďto se jedná o samotné fonémy nebo jejich kontextově závislé varianty, např. trifóny. Trénování HMM spočívá ve stanovení všech parametrů. V odhadu přechodové matice a pravděpodobnostních rozdělení, tedy vektorů středních hodnot a kovariačních matic. Toto trénování se provádí na velkém množství akustických (řečových) dat, doplněných o řečovou transkripci.
Jazykový model Jazykový model je v podstatě seznam kontextových závislostí. Znamená to, jaká slova a jak často se vedle sebe vyskytují. Modely mohou být obecně n-gramové, používají se však nejčastěji bigramové a trigramové. Bigramový model obsahuje pouze závislosti dvou sousedních slov. Pro přiblížení jeden příklad: Pro slovo „štítná“ existuje nejčastěji sousední slovo „žláza“, naopak je nepravděpodobné (a taky se to v textu nikdy nevyskytne), aby sousední slovo bylo „gáza“. Trigramový model obsahuje informace o možnostech slova před daným slovem a také o variantách slova za ním. Tím, že rozpoznávači pomocí jazykového modelu dáme informace o bigramech, či trigramech zvýšíme úspěšnost rozpoznání pro danou specifickou úlohu. Jazykový model se získá z vhodně předzpracovaného textu.
Koncepce rozpoznávače Rozpoznávač pro medicínské aplikace je složen z akustických modelů natrénovaných na dané řeči a speciálního jazykového modelu přizpůsobeného pro daný úkol.
Předzpracování textu pro jazykové modelování Zápisy diagnóz jsou z letmého pohledu jen text jako každý jiný. Nicméně obsahují pro nás důležité informace o užívaných slovních spojeních a použitých slovních tvarech v tomto
31
oboru. Aby bylo možné tyto informace z textu získat, musí se na něm provést předzpracování. Každý reálný text velkého objemu musí zákonitě obsahovat mnoho překlepů, chybně interpretovaných slov, zkratek, atd. S takto „poškozenými“ daty nelze přímo pracovat. Musí se odhalit překlepy, nahradit chybná slova správnými a rozepsat zkratky. Takto interpretované to zní jednoduše, nicméně celý postup je náročný. Pro konkrétní představu, vstupní text obsahuje cca 73000 různých slovních tvarů. Z toho je asi 35000 chybně interpretovaných a přibližně 1000 zkratek. Ruční oprava všeho je časově náročná a neakceptovatelná, automatická zase není v současné době tak dokonalá. Musí se zvolit vhodný kompromis mezi výtěžností použitelných dat z textu a pracností oprav. V praxi to znamená provést analýzu kolik zůstane dat vyhodí-li se méně často užívané slovní tvary se svým okolím, které po odstranění tohoto slova ztrácí pro další zpracování význam. Tímto krokem lze dojít na rozumný kompromis, z textu se vyhodí věty obsahující slova, která se v celém textu vyskytují méně než 20x a zbude 60 % textu obsahujícího 8403 slovních tvarů. Dalším krokem je použití českých pravidel pravopisu a lingvistiky [3]. Za pomoci lingvistiky se vyhodnotí, která slova jsou zaručeně správně a která nikoli. Dostáváme se na 6116 slov, která jsou zaručeně správně a 2287 nerozpoznaných slov. Z oněch 2287 slov je možno ještě odfiltrovat za využití pomocného medicínského slovníku [1] dalších přibližně 900 specializovaných tvarů slov. Po popsaných procedurách získáme „pouze“ 1400 slov a ty již je možno ručně projít a opravit. Další potřebnou věcí je rozpis zkratek použitých v textu do plného tvaru. Zde se naráží na problém kontextové závislosti. Zkratka má totiž v různých místech textu různou koncovku. Automatický rozpis do správných tvarů je bez prostředků lingvistické analýzy okolního textu nemožný. Za předpokladu, že existuje jeden nejčastější tvar rozpisu dané zkratky, lze provést v celém textu náhradu této zkratky tímto nejčastějším tvarem. Jednou z komplikací, která si vyžádá práci navíc, jsou rozpisy zkratek s větším množstvím nepříbuzných tvarů rozpisů. Jak již bylo zmíněno v úvodu, z tohoto „očištěného“ textu se vytvoří jazykový model.
Tvorba sady řečových nahrávek Pro otestování rozpoznávače byla vytvořena databáze nahrávek z náhodně vybraných diagnóz z medicínského textu. Šlo o 11 mluvčích (7 mužů a 4 ženy). Každý byl požádán, aby nahrál 100 vět. Většina mluvčích bohužel neměla dostatečné znalosti latiny, proto byla některá slova chybně interpretována. Díky přijetí pozvání na nahrávání od jednoho lékaře a dvou studentek medicíny byly věty obsahující chybná slova vyřazeny z dalšího zpracování. Nahrávání probíhalo na čtyřech mikrofonech. To proto, aby mohly být vzaty v úvahu různé způsoby finálního použití (diktafon, mikrofon na pracovním stole, atd.).
První výsledky rozpoznávání Test rozpoznávání námi nahraných diagnóz proběhl s těmito hodnotami úspěšností: Tab. 1 Úspěšnosti rozpoznání hlasových záznamů diagnóz mikrofon úspěšnost [%] náhlavní mikrofon 64,40 mikrofon z HF sady Nokia 43,10 mikrofon v rohu místnosti 4,40 mikrofon na stole 48,60
32
Tyto výsledky nejsou na první test rozpoznávání špatné. Co se dá zaručeně vytknout je výpočetní náročnost. Sada všech rozpoznávaných nahrávek má přibližně 1,5 hodiny a čas, který byl potřebný na proces rozpoznávání byl 7 hodin, což je přibližně 4,5 násobek reálného času (na počítači s 2,2 MHz procesorem). Pro tuto aplikaci by bylo výhodou mít on-line zpracování, proto se rychlostí budeme nadále zabývat. V současné chvíli je nejlepší výsledek (co se týče poměru čas / úspěšnost) rozpoznání celé sady nahrávek za 4 hodiny (přibližně 2,6x_real time) s úspěšností cca 60 %.
Zvyšování úspěšnosti rozpoznávání První metodou zvýšení úspěšnosti je adaptování akustického modelu na jednoho lékaře nebo skupinu lékařů. Druhým způsobem je „fáze samoučení“. Jde o to, že by lékaři určitou dobu využívali verzi rozpoznávače, který si sám po korekci textu lékařem tento „očištěný“ text přidá do jazykového modelu a případně si rozšíří i slovník. Tímto způsobem si lékaři mohou systém přizpůsobit obrazu svému. Je tu ovšem riziko vnesení chyb špatnou korekcí a s tím je třeba počítat a upozornit na to lékaře. Postupem výše uvedeným by mělo dojít ke snížení chybovosti rozpoznávání.
Závěr Byla navržena koncepce a provedeny testy hlasového rozpoznávače pro medicínské účely. Jeho praktické využití je reálné, jelikož v dnešní době je pro real-time rozpoznávače s velkým slovníkem únosných 20000 slov ve slovníku (v tomto případě je jich kolem 8000). Nicméně, tento nízký počet je dvousečný, protože samotný rozpoznávač je schopen rozpoznat jen slova, která má ve svém slovníku. Ostatní slova, byť by se užívat mohla, nemůže rozpoznat. To lze vyřešit dodáním chybějících slov do slovníku, což lze vyřešit ve výše zmíněné fázi samoučení. Tento systém může být při jednoduchých modifikacích použit i u jiných vstupních dat, než radiodiagnostických. Pokud je ovšem požadováno zpracování real-time je nutné dodržet podmínku menšího slovníku rozpoznatelných slov, případně provozovat aplikaci založenou na této bázi na výkonnějším počítači.
Poděkovaní Tento projekt byl grantem_číslo_102/03/H105.
částečně
podporován
Českou
grantovou
agenturou,
Literatura [1] [2] [3]
Medicínský slovník online, http://www.hzp.cz/main/slovnik.php SCHWARZ, P. Diplomová práce - Rozpoznávání plynulé řeči: hláskovaná písmena Brno, 2001. Osobní konzultace, SEDLÁČEK, R., Fakulta informatiky Masarykovy univerzity v Brně
33