rozhovor-procesor-cell-a-rozpoznavani-hlasu
Hardware Článek Rozhovor: procesor Cell a rozpoznávání hlasu

Rozhovor: procesor Cell a rozpoznávání hlasu | Kapitola 2

darl

darl

9. 9. 2008 01:00 12

Seznam kapitol

1. Část první 2. Část druhá

Málokdo nejspíš tuší, že v Praze sídlí tým vývojářů společnosti IBM, který se zabývá problematikou rozpoznávání hlasu. Výzkumná skupina velkým dílem přispívá k vývoji pokročilého programu IBM Embedded ViaVoice a jedním z jejích členů je i Bořivoj Tydlitát, který nám laskavě poskytl rozhovor.

Reklama
Rozhovor: procesor Cell a rozpoznávání hlasu
i Zdroj: PCTuning.cz
Rozhovor: procesor Cell a rozpoznávání hlasu
i Zdroj: PCTuning.cz
Rozhovor: procesor Cell a rozpoznávání hlasu
i Zdroj: PCTuning.cz
Rozhovor: procesor Cell a rozpoznávání hlasu
i Zdroj: PCTuning.cz

Můžete zjednodušeně vysvětlit princip počítačového rozpoznávání hlasu, na kterém pracujete?

Moderní statistické metody rozpoznávání řeči byly objeveny v 80. letech. Jsou založeny na tom, že k rozpoznávanému akustickému signálu hledáte optimální cestu pravděpodobnostním modelem, který má podobu grafu. Struktura a numerické hodnoty v takovém modelu jsou zkombinovány z několika dílčích modelů: Jeden popisuje akustiku jednotlivých hlásek, další pak výslovnost slov a třetí nějaké vymezení toho, jak mohou vypadat přijatelné věty. Akustický model se trénuje na mnoha hodinách záznamu řeči různých mluvčích. Model výslovnosti je obvykle jen slovník, který obsahuje výslovnost slov ve fonetické abecedě. Třetí model nazýváme jazykový model. Může to být pouhý seznam platných vět nebo formální gramatika – soubor pravidel, která tyto věty popisují. Ale také to může být statistický model, který popisuje pravděpodobnost různých kombinací slov a vytváří se z rozsáhlých souborů textu. Samozřejmě, celé je to poměrně složité, ale pro zájemce je k dispozici řada dobrých učebnic, včetně jedné české, a také existuje volně šiřitelný software, který tyto metody implementuje.

V čem spočívá největší úskalí při počítačovém rozpoznávání hlasu?

Jedna velká obtíž spočívá ve velké variabilitě lidské řeči. Každý máme jiný hlas a vlastní způsob vyjadřování – charakteristický slovník, výslovnost i intonaci řeči, díky kterým můžeme druhého i poznat po hlase. I řeč jednoho mluvčího se mění v závislosti na sociálních okolnostech, emocích, prostředí, okolním hluku a podobně. Druhý okruh problémů s řečí je dán její velkou mírou závislosti na kontextu. Třeba výslovnost hlásek se výrazně mění podle toho, jaké hlásky je předcházejí nebo následují. Nebo spoustu věcí v řeči vynecháváme – hlásky, slova i části vět. Předpokládáme, že posluchač si je domyslí s užitím toho, co ví, nebo co bylo řečeno dříve. Lidská řeč je vlastně velmi zašuměný komunikační kanál, který svou funkci plní spolehlivě jen díky velké míře redundance a komplikovaných opravných a ověřovacích protokolů, jež jsou součástí běžného lidského dialogu. Spolehlivé rozpoznání řeči tedy není zcela oddělitelné od porozumění tomu, o čem se mluví.

Společně s týmem mezinárodních odborníků jste pracoval na projektu využití procesoru Cell právě pro rozpoznávání hlasu. Cell údajně dokáže rozpoznávat až tisíce různých hlasových kanálů najednou. Čím je Cell natolik výjimečný a jaký je vlastně jeho potenciál?

Procesor Cell Broadband Engine je výsledkem společného projektu firem Sony Computer Entertainment, Toshiba a IBM. Jde o radikálně novou architekturu, která dosahuje vysokého výpočetního výkonu a datové propustnosti poněkud odlišnými metodami, než klasické procesory. Cell je vlastně heterogenní multiprocesorový systém, kde na jediné kruhové sběrnici je umístěn jeden procesor s architekturou Power (PPE) a 8 jednotek SPE (synergistic processing element). Procesor PPE je obvykle určen pro operační systém a plánování úloh, jednotky SPE pak tvoří základ výpočetní síly Cellu. Každý SPE je samostatným systémem – obsahuje procesor s vektorovou architekturou o šířce slova 128 bit, velmi rychlý blok paměti o velikosti 256 kB a inteligentní řadič přímého přístupu do paměti (DMA), který slouží ke komunikaci s externí pamětí RAM, pro vstup a výstup, i pro přenos dat mezi SPE navzájem. Tato architektura vychází z poznatku, že vzhledem k nepoměru mezi rychlostí soudobých procesorů a operačních pamětí RAM už operační paměť vlastně není pamětí s „náhodným“ přístupem, ale svými časovými charakteristikami se blíží blokovým zařízením jako je třeba disk. Klasické procesory se snaží tento fakt skrýt pomocí hierarchie vyrovnávacích (cache) pamětí. Naproti tomu návrh jednotky SPE počítá s tím, že aplikace ví předem, že určitý blok dat bude potřeba, a včas si jeho přenos do rychlé paměti SPE „objedná“ od kanálu DMA. Podobný problém se objevuje u kolony (pipeline) procesoru zpracovávající instrukce – každé větvení programu může znamenat ztrátu fronty rozpracovaných instrukcí, čemuž se klasické procesory brání pomocí komplikované předpovídací logiky. SPE nic takového nemá, předpověď větvení je ovládána aplikací. SPE má ještě řadu dalších zjednodušení: má pouze vektorové operace, adresuje paměť jedině po 128-bitových slovech. Naproti tomu má řadu netypických instrukcí: třeba přibližnou aritmetiku, permutace obsahu vektorů nebo ovládání DMA přenosu. Cell se svými osmi SPE může reálně provádět 32 aritmetických operací na takt hodin (3.2 GHz u současných modelů). Tím převyšuje ostatní soudobé procesory zhruba o řád. Nasazení procesoru Cell může být velmi efektivní všude tam, kde je možné úlohu rozdělit mezi více procesorů, lze využít vektorové aritmetiky v pevné nebo plovoucí čárce a úloha má předvídatelné vzory přístupu k paměti a větvení kódu. Kromě grafických, multimediálních a herních aplikací, které byly prvotní motivací pro vznik Cellu, je to také řada úloh z oblasti zpracování signálu a obrazu, fyzikálních simulací, medicínského zobrazování, analýzy seismických dat a podobně. Například superpočítač Roadrunner, v současnosti nejvýkonnější na světě, který společnost IBM postavila pro americkou vládní laboratoř v Los Alamos, má hybridní architekturu kombinující procesory AMD Opteron a Cell.

Jaké jsou možnosti průmyslového využití Cellu s ohledem na rozpoznávání hlasu?

V oblasti rozpoznávání řeči na Cellu zatím bylo vykonáno poměrně málo. Společně se spolupracovníky z kalifornské Lawrence Livermore National Laboratory jsme loni  na toto téma publikovali práci. Její výsledky jsou slibné, ale k rozpoznávači, který by běžel na Cellu a byl prakticky použitelný třeba pro telefonii, je ještě dlouhá cesta. Za zmínku jistě ale stojí, že na katedře počítačů ČVUT vzniká ve spolupráci s IBM projekt volně šiřitelné knihovny algoritmů pro Cell. „CIV Toolkit“ je zaměřen na oblast umělé inteligence, statistického modelování a rozpoznávání řeči.


V současné době je Cell především využíván v herní konzoli PlayStation 3. Odhaduje se, že vývojáři využívají pouze desítky procent výkonu Cellu. Jak moc složitá je architektura procesoru Cell z pohledu běžného programátora?


Díky modularitě Cellu není tak obtížné jeho architektuře porozumět. Jednotka PPE se programuje v podstatě jako každý jiný procesor. Programátor jednotek SPE si ale musí poradit minimálně s několika okruhy problémů, především jejich architektura je hodně exotická: vektorová aritmetika, paměť adresovaná po slovech, DMA přenosy – kódování pro SPE se trochu se podobá programování pro některé signálové procesory (DSP).  Dále program pro SPE je hodně „strojově orientovaný“, i když se píše v C – programátor musí řešit „ručně“ věci, o které se u jiných procesorů stará hardware. Komplikovanou úlohou může být transformace algoritmů do podoby, která je pro Cell vhodná. A konečně dosažení maximálního výkonu znamená nejen efektivní kód, ale i optimalizaci komunikace mezi SPE, zacházení s kruhovou sběrnicí, přístupu k paměti a jejímu řadiči, vstupu a výstupu atd. Na druhé straně, programování Cellu je usnadněno tím, že dokumentace i vývojové nástroje jsou k dispozici zdarma a v IBM i jinde vznikají neustále nové nástroje, které dovolují programovat Cell na vyšší úrovni. Příkladem může být projekt inteligentního překladače Octopiler z laboratoří IBM nebo originální přístup, který ve svých vývojových prostředcích zvolila kanadská firma RapidMind.

Pokud zabrousíme trochu do science fiction, myslíte si, že je možné naučit počítač "chápat" lidskou hovorovou řeč na takové úrovni, aby bylo možné konverzovat s počítačem podobně jako například ve známých filmech Vesmírná Odyssea a nikoliv pouze sadou přesně nastavených příkazů?

Již dnes probíhá vývoj ovládání hlasem od pevných frází k přirozenější, volnější struktuře příkazů. Příslušné technologie jsou součástí i našich produktů. Pro technologii skutečného dialogu se strojem ale zatím chybí i teoretické základy. Myslím, že tento obor na své velké myšlenky teprve čeká.


V nejbližší budoucnosti čeká podle všeho počítačový svět obrovská míra paralelizace. Intel například představil platformu Terascale, která využívá až tisíce procesorových jader. Jak se na tuto problematiku díváte vy, resp. IBM?

Masivně paralelní systémy již nějakou dobu představují cestu k vyšším výkonům, protože dalšímu výraznému zvyšování hodinových kmitočtů procesorů stojí v cestě vážné fyzikální a technologické překážky. Všechny soudobé superpočítače se již několik let ubírají touto cestou. Objevuje se zde řada zajímavých problémů nejen z oblasti hardware, ale i systémového software, metod vývoje, optimalizace a automatické paralelizace aplikací a podobně. Budoucí informatici jistě nebudou mít nouzi o práci, která vyžaduje přemýšlení a tvořivost.

Děkujeme za rozhovor a přejeme mnoho úspěchů v další práci. Za PCTuning kladl otázky autor článku, Jan Horčík

První
Poslední
Reklama
Reklama

Komentáře

Nejsi přihlášený(á)

Pro psaní a hodnocení komentářů se prosím přihlas ke svému účtu nebo si jej vytvoř.

Rychlé přihlášení přes:

Google Seznam
Reklama
Reklama