Hlavní navigace

Jak se vyvíjely a jak fungují rozpoznávače řeči: První rozuměl jen svým stvořitelům

12. 7. 2021
Doba čtení: 11 minut

Sdílet

 Autor: Depositphotos
První rozpoznávače řeči vznikly už před padesáti lety, ale jejich vývoj je dodnes obtížný. Do historie a fungování rozpoznávačů se podíváme v tomto článku.

Rozpoznávače řeči, tedy zařízení, která zvládají převést zvuk lidského hlasu na digitální zápis, představují bouřlivě se rozvíjející IT prostředí, přičemž hodnota celého trhu by v roce 2025 měla podle některých odhadů přesáhnout částku 27 miliard amerických dolarů.

Využití tyto technologie nacházejí v celé řadě oborů. Nejznámější jsou zřejmě hlasoví asistenti jako Siri od Applu nebo Alexa od Amazonu. Hlasem můžeme už ovládat i počítače, mobilní telefony nebo auta. V médiích se pak rozpoznávače pokoušejí uplatnit při přepisu televizních hlasatelů nebo nahrávek pořízených při rozhovorech. Poslední jmenované odvětví ale obnáší celou řadu úskalí, jak si ukážeme v některém z příštích článků.

Ačkoliv se dnes rozpoznávače staly běžnou součástí našich životů, jejich vývoj byl poměrně komplikovaný a stejně jako u strojových překladačů jejich praktickou použitelnost umožnil až pokrok na poli neuronových sítí a strojového učení.

Audrey a „krabice na boty“

Vynálezce Alexander Graham Bell se po sestrojení mikrofonu snažil uspět i na poli záznamu a zpracování zvuku. Vedle gramofonu se pokoušel vyvinout také zařízení, které by dokázalo nahradit práci zapisovatelek. To se mu, vzhledem k technologickým podmínkám panujícím v 19. století, samozřejmě nepodařilo, ale uvedl na trh zařízení grafofón (v orig. graphophone), které na voskový válec dokázalo zaznamenávat mluvené slovo a poté jej reprodukovat zpět.

Na tuto myšlenku pak v 50. letech minulého století navázaly Bellovy laboratoře, a to prostřednictvím zařízení jménem Audrey (Automated Digit Recognition machine), které firma představila v roce 1952. Šlo o velice primitivní zařízení, které mělo takřka dva metry na výšku a sestávalo z velkého množství relé. Audrey dokázala rozpoznat číslice od 0 do 9, přičemž pro každou číslici měl počítač zvláštní okruh. Přesnost rozpoznávání diktovaných číslic dosahovala až 90 %, ale jen v případě, že do mikrofonu mluvil vývojář HK Davis. U několika dalších osob, na které byla Audrey nastavená, dosahovala úspěšnosti 70–80 %, u zcela cizích lidí ale Audrey fungovala podstatně hůře.

Audrey mohla teoreticky sloužit v telefonních ústřednách, kde by umožňovala hlasové vytáčení telefonních čísel. Ale vzhledem k tomu, že počítače byly v 50. letech extrémně drahé, systém by se musel vždy přenastavit na konkrétní hlas a manuální vytáčení bylo ve výsledku jednodušší, šlo nakonec „jen“ o velmi zajímavý experiment bez praktických dopadů.

Na pole rozpoznávačů v 60. letech vstoupila i firma IBM, která představila zařízení Shoebox. To dokázalo rozpoznat 16 anglických slov a šlo o jakousi hlasem ovládanou kalkulačku. Shoebox rozuměl číslovkám 0 až 9 nebo pokynům plus, minus, součet. Stroj dokázal řešit jednoduché aritmetické operace, přičemž číslovky a pokyny musela obsluha diktovat do mikrofonu a zařízení je zaznamenávalo na papír.

Co se fungování týče, Shoebox opět spoléhal na relé, měl 31 tranzistorů, ale na rozdíl od Audrey se celé zařízení vešlo do bedny velikostí odpovídající zhruba krabici na boty. Hlas z mikrofonu Shoebox převáděl na elektronické impulsy, ze kterých se pak speciální obvody snažily určit, o jaké číslo či pokyn se jedná. Po vyslovení se rozsvítila i kontrolní dioda, která ukazovala, jaké číslo přístroj slyšel.

Další milník v oblasti rozpoznávačů pak v následujícím desetiletí přinesla americká armádní agentura DARPA, která mezi lety 1971 a 1976 financovala rozsáhlý program na výzkum rozpoznávání řeči. Výsledkem byl systém Harpy, na kterém se podílely firma IBM, Carnegie Mellon University a Stanford Research Institute. Systém dokázal rozpoznat více než 1000 výrazů, a kromě jednotlivých slov dokázal rozumět i celým větám. Přesun od slov k frázím byl ale velmi komplikovaný, jak před časem BCC potvrdil jeden z výzkumníků Alexander Wailbel z Carnegie Mellon University.

„Ve větách máte slova, která se vzájemně překrývají, což může systém zmást a neví, kde které slovo končí a kde začíná. Takže výrazy jako ‚euthanasia‘ může slyšet jako ‚youth in Asia‘. Nebo když řeknete ‚Give me a new display‘, může to znít jako ‚give me a nudist play‘,“ řekl výzkumník.

Do hry vstupuje statistika

Stejně jako v ostatních technologických oborech i na poli rozpoznávačů přinesla zásadní přelom až 80. a 90. léta a s nimi související rozvoj statistických metod. Firma IBM například v roce 1986 představila vylepšenou verzi Shoeboxu pod názvem Tangora. Systém odkazoval na Alberta Tangoru, který byl považován za nejrychlejšího pisatele na stroji. Systém dokázal rozpoznat asi 20 tisíc slov a používal už jistou míru predikce, aby odhadl, jaké písmeno bude následovat. Tangora ale byl stále nastavený jen na hlas konkrétního řečníka a cizím lidem rozuměl špatně. V následujícím desetiletí pak výzkumníci začali v rozpoznávačích využívat strojové učení a technologie se postupně vyvinula do stavu, ve kterém je dnes.

„Celé je to statistika. Mobilní telefon nebo třeba mikrofon u počítače udělá ze zvuku digitální reprezentaci, tedy čísla, waveform, což je technicky digitální reprezentace hladiny akustického tlaku, tedy zvuku. Rozpoznávače řeči analyzují přímo waveform a ze zvukové vlny odečítají slova. A celé je to jeden velký statistický model. Říká se tomu end to end systémy. Vložíte surový vstup a systém natrénujete na požadovaný výstup,“ říká Igor Szöke z Fakulty informačních technologií Vysokého učení technického v Brně, který se zabývá vývojem softwaru na rozpoznávání řeči.

„Dřív, když nebylo ještě tolik trénovacích dat, se výzkumníci snažili stroji ulehčit práci třeba studiem fungování psychoakustiky. Tedy jak funguje lidské ucho. Přišlo se na to, že mozek nevnímá waveform, změnu tlaku, ale vnímá frekvence. Takže se nahrávka přepočítávala do spektra Fourierovou transformací,“ vysvětluje Szöke. Následně se výzkumníci zaměřili na statistické modely, které zkoušely tvořit slova ze spektra frekvencí.

„Samozřejmě poznat z toho slova je komplikované, protože třeba v angličtině máme řekněme sto tisíc slov, v češtině máme miliony slov. Máme inflexní jazyk a natrénovat model na to, aby statisticky rozpoznával milion jednotek nebo tříd, je řádově obtížnější. Takže aby výzkumníci strojům pomohli, dívali se na fonetiku, fonologii, základní zvuky, můžete si to představit jako hlásky. Z nich se následně modelem dělaly řetězce. Nebo byl výstup písmenek omezený na to, aby odpovídal řetězci slov, protože ne všechny kombinace písmenek jsou povolené. To znamená, že nahrajete do stroje audio, a statistický model, ať už od vývojáře, nebo výzkumníka, který to vyvíjí, si audio nějakým způsobem reprezentuje vnitřně, snaží se to namapovat statisticky na třídy, které reprezentují nějaká písmena, slabiky nebo slova.“

Dnes rozpoznávače fungují na bázi neuronových sítí. Jednotlivé slabiky nebo slova rozpoznávají tak, že vložený zvuk rozkouskují na desetimilisekundové úseky, které pak zpracuje statistický model. „Program se dívá pouze na tyto jednotlivé části, ne na celek, rozdělí si zvuk na takzvané rámce. A v rámcích včetně jejich kontextu, třeba sto milisekund, půl vteřiny, program udělá matematické operace. Ve zjednodušené starší verzi program spočítá spektrum, to znamená převede zvuk do frekvencí. Sleduje nízké frekvence, vysoké frekvence a jejich změny. Vytvoří jejich parametry, příznaky, což jsou vektory čísel. Může to být 20, 50, 100, 200. To závisí na tom, jaké příznaky používáte. Tyhle příznaky máte každých deset milisekund. A z příznaků se tvoří statistický model, který se dívá na čísla stylem dobře, mám velkou energii v nízkých frekvencích, která mi klesá a ze statistického modelu vím, že je to třeba áčko. Nebo tam nemám moc nízkých, mám tam relativně dost středních, tak je to íčko. Pokud mám vysokofrekvenční šum a nemám tam žádné nízké střední frekvence, ale hodně vysokých, tak je to třeba es.“

Největší problém? Kvalitní data

Rozpoznávače se učí podobně, jako třeba překladače nebo další jazykové aplikace. Rozdíl ale tkví v analýze zvuku, který představuje složitý fenomén. Software potřebuje nahrávku a její kompletní přepis. Z nich se pak pokouší naučit, které zvuky pravděpodobně odpovídají kterým slabikám, slovům nebo celým větám. „Ideálně se do programu vloží sekundy až desítky sekund dlouhá audia, k nim se přidá slovník. Neuronová síť pozná, že ahoj se skládá z fonémů a, h, o, j. Algoritmus ale zvuk ze začátku zarovná hloupě, uniformně. Vůbec neví, kde jaká část audia je, posbírá si první statistiky, trochu se něco naučí, aspoň tak, že ví, co je ticho a co je řeč,“ vysvětluje Szöke.

Program pak udělá takzvaný alignment, což znamená, že si nahrávku přerovná, posune hranice slov a z uniformního rozložení se posune dál. „Už ví, že ahoj je na začátku zvuku a za ním následuje mezera. Takto se to iterativně dělá několikrát, až se to ustálí. Následně na zvuk nastoupí neuronová síť, která se už precizně učí, jak zní áčko, jak zní óčko. Závisí to ale na technologiích, jsou už i techniky, které jsou postavené čistě na neuronových sítích, a ona si to sama umí zarovnat. Data ale musí být doslovně přepsaná, aby systém našel, jak co zní.“

Už z popisu je zřejmé, že sehnat takto precizně připravená data je pro výzkumníky problém, protože tvorba dat je časově velmi náročná a tím pádem i drahá. Rozpoznávače mají zároveň problém poradit si s různými hlasy nebo s nahrávkami z různě kvalitních mikrofonů. Překážku můžou představovat i akustické vlastnosti prostředí, ve kterém byl záznam pořízen. „Když to budete trénovat na chlapech v tichém prostředí, mikrofon bude dobře umístěný, zkrátka nahrávka bude pořízená za dobrých podmínek a následně budete chtít přepisovat a rozpoznávat ženské hlasy v zašuměném prostředí někde na ulici a mikrofon bude od řečnice daleko, tak to bude fungovat špatně, protože statistický model taková data nikdy neviděl,“ dodává výzkumník s tím, že modely stále pracují na základě statistiky a jakákoliv odchylka je může splést.

Programy je proto nutné trénovat na různá prostředí a různou kvalitu nahrávek, aby si neuronové sítě dokázaly s pestrými podmínkami poradit. „To se týká i slov. Před rokem a půl se ve slovníku nevyskytovalo slovo covid. Takže systémy ho neznaly, musel přijít někdo, kdo ho tam doplnil.“

Cena kvalitních databází je ale velmi vysoká, protože prakticky vznikají tak, že buď někdo v konkrétním prostředí načte předem připravený text, nebo naopak musí doslovně přepsat předem vybrané nahrávky, a to včetně přeřeků.“ Problém samozřejmě nastává, když si koupíte třeba databázi telefonní řeči, a pak natrénujete rozpoznávač a chcete ho použít na zprávy v televizi. Obvykle to nefunguje, protože je tam jiná akustika, lidi mluví jinak, používají jiný slovník. Pokud byste chtěl dělat třeba automatický titulkovač do televize, tak potřebujete mít přepsaná data z televize, potřebujete si nahrávat televizní pořady a získat stoprocentní přepis.“

„Poslední možnost, která se v dnešní době čím dál tím více používá, je takzvané učení bez učitele. Potřebujete k němu už alespoň trochu natrénovaný rozpoznávač. Vezmete data z cílové domény, ke kterým ale nemáte přepis. Máte tedy iniciální systém s málo hodinami dat, které ale musí být perfektně přepsané. Model vezmete a přepíšete s ním třeba deset tisíc hodin dat, která jsou z televize, YouTube nebo jiné cílové domény. A automatický přepis vyhodnotíte. Jsme schopní zjistit, jak moc si je rozpoznávač jistý, vyhodíme části, kde si není jistý, a necháme jen části, kde si je jistý, že to přepsal dobře. Tyto vezmeme a přidáme je do trénování, tak se to dá iterativně dělat a dá se tak zlepšit úspěšnost a zadaptovat systém na nějakou konkrétní doménu.“

Za vhodných podmínek model rozpozná skoro vše

V případě, že rozpoznávač pracuje se zvukem, na jehož akustické vlastnosti a způsob řeči je natrénovaný, může jeho úspěšnost dosahovat i 95 %. Kvalitní přepisy vznikají třeba u televizních pořadů, které jsou nahrané na kvalitní mikrofony a moderátoři mluví srozumitelně. „V televizi používají omezený slovník, reportéři nebo hlasatelé mluví slušně, nahlas a srozumitelně. Chtějí, aby jim každý rozuměl, tedy ani stroj s tím nebude mít problém.“

Pokud ale počítač dostane za úkol přepsat záznam běžné řeči, výsledky už mohou být mnohem horší. „Když se spolu bavíme, snažíme se mluvit slušně, ale stejně se přeříkáváme, zadrháváme, používáme nová slova nebo slova ve formách, které stroj nezná, bavíme se technologicky, používáme anglicismy. Tipuji, že náš rozhovor by rozpoznávač dokázal přepsat tak z 80 %,“ říká Szöke. Nejhorších výsledků pak programy dosahují třeba při nahrávkách z hospody přes rádia či vysílačky.

„Děláme teď projekt s leteckou komunikací pilot–věž, kde jsou hodně obtížné podmínky, protože chytáte rádiový signál, který je plný poruch. Navíc piloti mají specifickou gramatiku. Z legrace jsme na to zkoušeli nasadit český rozpoznávač, který na takovou doménu není vůbec natrénovaný, a dopadlo to katastrofálně. Úspěšnost se pohybovala kolem 20 %. Takhle to vypadá, když je model úplně mimo, v životě to neviděl. Jedno z pěti slov je dobře, zbytek jsou bláboly.“

Navzdory zmíněným těžkostem ale přepisy řeči mají podle Szökeho i tak velkou budoucnost. Můžou přinést podobný převrat jako digitalizace knih a dokumentů, která umožnila vyhledávání v textu. „Třicet let zpátky byly knihy čistě analogové, a pokud jste hledal nějakou informaci, musel jste ji přečíst, prolistovat. Pak přišla doba digitalizace, všechny texty jsou digitální, a pokud máte nějaké PDF o sto stránkách, dáte CTRL+F a zadáte klíčové slovo, tak máte výsledek během vteřiny. U řeči je to stejné. Řeč, ač byla digitální, tak byla pro počítač i člověka neprohledávatelná. Měl jste hodinový záznam rozhovoru a nebyl jste schopen najít klíčové slovo, musel jste si to celé poslechnout nebo si pamatovat, kde zhruba ta informace zazněla,“ vysvětluje s tím, že rozpoznávací problém může tento problém vyřešit.

Autor článku

Novinář a moderátor, redaktor Lupa.cz a spolupracovník Českého rozhlasu Plus. Dříve působil také v marketingu a pracoval ve státní správě.