Rozpoznawanie mowy

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania

Rozpoznawanie mowy – technologia pozwalająca komputerowi wyposażonemu w urządzenie do próbkowania dźwięku (np. karta dźwiękowa z mikrofonem) interpretować mowę ludzką, na przykład do celów transkrypcji lub jako alternatywną metodę interakcji z komputerem.

Dla języka polskiego (stan na rok 2008) dostępne są programy rozpoznające poprawnie 5-9 na 10[1] wypowiedzianych słów mowy ciągłej (na współczynnik ten, oprócz jakości algorytmu, wpływają m.in. wyrazistość i zrozumiałość mowy). Wartości skuteczności systemów rozpoznawania mowy bardzo zależą od przyjętego scenariusza testu. Dlatego informacje liczbowe, wbrew intuicji, zwykle nie są dobrym odzwierciedleniem jakości takich systemów. Najskuteczniejszą metodą jest porównanie dwóch lub więcej systemów na takim samym scenariuszu testowym. Jakość systemów może jednak także zależeć od tego jak sygnał jest rejestrowany. Przykładowo wiele z systemów oferowanych dla języka polskiego działa dużo gorzej dla sygnału z sieci GSM. Ogólnie należy przyjąć, że rozpoznawanie mowy polskiej działa poprawnie tylko dla pojedynczych słów lub dla ustalonych zbiorów scenariuszy dialogów (stan na marzec 2014). Próg komercyjnej akceptowalności systemów rozpoznawania mowy zwykle przyjmuje się jako 95% poprawności rozpoznania[2].

Wyróżnia się kilka rodzajów rozpoznawania mowy[3]:

  • rozpoznawanie pojedynczych fonemów (przy przestarzałych systemach, lub dla słów spoza słownika, modelu języka)
  • rozpoznawanie izolowanych słów (system wymaga znacznych pauz między wypowiadanymi wyrazami)
  • rozpoznawanie łączonych słów (wymagane bardzo krótkie odstępy między wyrazami)
  • rozpoznawanie mowy ciągłej (system sam określa segmentację, mowa prawie jak naturalna, ale określona powtarzalnymi regułami jak przy dyktowaniu/czytaniu)
  • rozpoznawanie mowy spontanicznej (mowa z różnymi naturalnymi cechami jak różnorodna prędkość, głośność wypowiedzi, brak odstępów między wyrazami, różne partykuły wtrącenia nie do końca gramatyczne, przerwy na zastanawianie się; stopa błędów co najmniej dwukrotnie wyższa niż dla czytania[4])

Historia[edytuj | edytuj kod]

  • 1952 - Fonetograf Drayfusa-Grafa, maszyna zapisująca fonemy
  • 1952 - Davis opracował maszynę rozpoznającą zbiór 10 izolowanych wyrazów - cyfr języka angielskiego
  • 1956 - urządzenie Olsona i Belara służące do zapisywania pod dyktando początkowo 10 sylab, a w 1961 roku 100 sylab
  • 1956 - AUDREY - opracowana w firmie Bell maszyna rozpoznająca cyfry
  • 1960 - opracowano metodę rozpoznawania trzech wyrazów języka rosyjskiego (G. I. Cjemiel)[5]
  • 1962 - IBM zademonstrował maszynę Shoebox rozpoznającą 16 słów języka angielskiego w tym 10 cyfr[6]
  • 1975 - propozycja systemu Dragon opartego o własności procesów Markowa (J. Baker)[7]
  • 1976 - CMU Harpy, słownik ok. 1000 wyrazów, pierwsze użycie algorytmu BeamSearch
  • lata 1980 - słowniki rzędu kilku-kilkunastu tysięcy wyrazów, rozpoznawanie mowy jednak nieciągłej, zastosowanie HMM
  • lata 1990 - pierwsze produkty masowej produkcji, słowniki rzędu kilkudziesięciu tysięcy słów, progres w wydajności procesorów umożliwił rozpoznawanie mowy ciągłej
  • lata 2000 - stosunkowo niewielki postęp w rozwoju technologii (w porównaniu do poprzedzającej dekady)[8] słowniki rzędu dziesiątek do kilku setek tysięcy słów dla rozwiązań zależnych od rozpoznawanego mówcy; dla mniejszych słowników niezależnie od mówcy,
  • 2011 - słownik Google dla języka angielskiego: około miliona różnych słów, model języka trenowany setkami miliardów zapytań[9]

Koszty obliczeniowo-pamięciowe[edytuj | edytuj kod]

Rozmiar problemów uczenia i wyszukiwania, jaki generuje automatyczne rozpoznawanie mowy, jest źródłem wielu kolejnych wyzwań stawianych przed informatyką[10] (szczególnie problematyczność ta może wzrastać dla języków z wieloma formami gramatycznymi jak np. słowiańskie). Interpretacja sygnału mowy tylko z pozoru jest łatwa i jasno wydzielona w rzeczywistości jest mało deterministyczna, a wysoce zależna od kontekstu (na każdym kolejnym poziomie)[11]. Chodzi tu oczywiście głównie o algorytmy rozpoznawania mowy spontanicznej, a także ciągłej na poziomie porównywalnym ze „zdolnościami ludzkimi” (w specyficznych warunkach udało uzyskać się „nad-ludzkie”[12] wyniki), algorytmy te wymagają pamięci komputerowej o dużej pojemności[13][14] (ang. LVR Large Vocabulary Recognition). Ma to miejsce z powodu powolnego spadku stopy błędów (WER) w zależności od znacznego wzrostu rozmiaru modelu języka[15] - jako że sygnał mowy jest mało deterministyczny, dekoduje się go algorytmami z zakresu kryptoanalizy. "Odgadują" one prawdopodobieństwa na podstawie znacznych rozmiarów językowych statystycznych danych informujących o możliwych kombinacjach niezbyt dużych kontekstów (por. N-gram). Znaczną liczbę z danych należy wcześniej odrzucić w oparciu o różne kryteria m.in.: dostępne zasoby, złożoność obliczeniowa, miara nieokreśloności (ang. perplexity), dlatego stosowane są algorytmy obcinające (ang. pruning) na wielu poziomach: drzew decyzyjnych, modelu jęzka, przestrzeni przeszukiwania prawdopodobnego słowa dla danej wypowiedzi (np. algorytm ang. Beam Search). W wymaganiach systemowych spotyka się sformułowanie: im więcej pamięci komputerowej tym lepiej dla wydajności, tym większy model języka, wymagania te rosną z kolejnymi wersjami wraz ze wzrostem zasobów sprzętowych możliwych do wykorzystania. Model języka służy do ukierunkowywania przeszukiwania, ogranicza więc jego złożoność obliczeniową (co oczywiście może skutkować utratą optymalnych rozwiązań w mniej lokalnym sensie). Zasoby zajmowane rosną szczególnie w fazie trenowania modeli i algorytmów (tysiące godzin nagrań transkrybowanej mowy)[14]. Innym rozwiązaniem wspomnianych problemów są systemy jedno-dziedzinowe o odpowiednio dostrojonym słowniku/modelu języka. Często także użytkownik ma możliwość dostrojenia parametrów do danego ograniczonego zastosowania poprzez moduły uczenia maszynowego. W telefonach komórkowych (i nie tylko, np. także w przeglądarce Google Chrome[16]) nierzadko stosuje się również wysyłanie wstępnie przetworzonych danych do pomocniczej obróbki na serwerze zewnętrznym[17], niedogodność jest niezauważalna dla użytkownika, jednak w przyszłości wraz ze wzrostem wydajności sprzętowej i ulepszaniem algorytmów może pojawić się więcej używalnych rozwiązań po stronie klienta np. specyfikacja W3C Web Speech API nie ogranicza rozpoznawania mowy jedynie do trybu po stronie serwera[18]. Duże korpusy dla modeli akustyczno-językowych mają zwykle restrykcyjne licencje, aby ułatwić rozwój rozwiązań otwartych powstał projekt VoxForge[19].

Na temat ograniczeń modeli czysto statystycznych języka naturalnego zobacz też w artykule: Noam Chomsky.

Algorytmy i modele[edytuj | edytuj kod]

Zastosowania[edytuj | edytuj kod]

  • Sterowanie – dedykowane silniki nie wymagają zaawansowanych cech jak przełączanie kontekstu, a z racji kilku/kilkunastowyrazowych słowników nie występuje tu problem ujednoznaczniania w środowiskach, w których sygnał mowy jest zakłócony, dlatego też wymagają one znacznie mniej zasobów niż algorytmy rozpoznawania mowy ciągłej.
    • w przypadku komputera PC – posiadającego różnorodne kanały komunikacji z użytkownikiem – sterowanie głosem wykorzystywane jest najczęściej przez osoby niepełnosprawne, dla których inne interfejsy interakcji z urządzeniem są niedostępne,
    • w urządzeniach – o znacznej miniaturyzacji, przez co ubogich w interfejsy interakcji – proste polecenia głosowe znacznie uefektywniają ich obsługę.
  • Transkrypcja mowa ciągła-tekst – algorytmy:
    • dziedzinowe – o ograniczonym słowniku,
    • całościowe – bardziej zaawansowane.
  • Mówione systemy dialogowe - interfejsy głosowe działające w sposób naturalny dla człowieka, a nie w oparciu o ustalone możliwe opcje.
  • Translacja pomiędzy językami naturalnymi (ang. speech-to-speech) np. komunikatów głosowych przydatnych w podróży[20].

Zastosowania dla przedsiębiorstw[edytuj | edytuj kod]

Technologie rozpoznawania mowy znalazły praktyczne zastosowanie w telefonicznych biurach obsługi klienta, gdzie zachodzi konieczność obsługi kilkudziesięciu tysięcy dzwoniących na godzinę. Banki, firmy branży informatycznej czy telekomunikacyjnej coraz częściej inwestują w nowoczesne narzędzia oferujące zoptymalizowaną obsługę oraz pozwalające na wzrost zadowolenia klienta. Jednym z takich rozwiązań jest sterowania głosem (ang. Call Steering) w systemie zapowiedzi głosowych IVR. Sterowanie głosem oparte na rozumieniu języka naturalnego przez komputer ułatwia konsumentom komunikowanie się z właściwym operatorem w biurze obsługi. Po zadaniu standardowego pytania „W czym możemy pomóc?” dzwoniący opisuje problem własnymi słowami, bez potrzeby wybierania z rozbudowanego menu kontaktów czy dopasowywania pytania do listy wcześniej zdefiniowanych opcji. Przyspiesza to obsługę klientów, ogranicza liczbę niepoprawnie przekierowanych połączeń oraz prowadzi do wyższego poziomu automatyzacji systemu obsługi IVR poprzez szybkie łączenie dzwoniących z usługą, której potrzebują. Funkcje rozpoznawania naturalnej mowy oraz rozumienia języka naturalnego (NLU) zostały już wdrożone w wielu biurach obsługi klienta na świecie jak i w Polsce.

Standaryzacje międzynarodowe[edytuj | edytuj kod]

Trwają prace standaryzacyjne jednolitych interfejsów programistycznych (API) oraz języków opisu danych wejściowych dla silników rozpoznawania mowy. Następujące instytucje opracowują własne rozwiązania w tym zakresie, w nawiasach podano numer aktualnej wersji oraz rok wydania.

Microsoft:

Sun Microsystems:

  • JSAPI – interfejs programistyczny (1.0 z r. 1998, wersję 2.0 zatwierdzono w maju 2008[21])
  • JSGF – język specyfikacji gramatyki

W3C:

  • Web Speech API – specyfikacja rozszerzeń HTML i JavaScript pod kątem wprowadzania głosowego - 19 10 2012,
  • PLS – język specyfikacji wymowy (1.0 oczekuje na zatwierdzenie),
  • VoiceXML – język specyfikacji dialogu głosowego człowiek-komputer (2.1 z r. 2007),
  • SISR – język semantycznego znakowania gramatyki (1.0 z r. 200]),
  • SRGS – język specyfikacji gramatyki (oparty na XML lub BNF) (1.0 z r. 2004),
  • SLM(N-gram)S – język specyfikacji stochastyczengo modelu języka (roboczy szkic z r. 2001),
  • NLSML – język specyfikacji interpretacji semantycznej mowy (1.0-beta z r. 2000).

Rozpoznawanie mowy polskiej[edytuj | edytuj kod]

Prace badawcze i wdrożenia:

  • Ogólnopolski projekt[22] prowadzony jest przez, podległe MSWiA, służby bezpieczeństwa publicznego we współpracy z uczelniami wyższymi[23] w ramach Polskiej Platformy Bezpieczeństwa Wewnętrznego. Przetwarzanie mowy występuje docelowo w dwóch (S3, S8)[24] z ośmiu funkcjonalnych modułów zintegrowanego systemu wsparcia zarządzania bezpieczeństwem i przeciwdziałania przestępczości w Unii Europejskiej,
  • Instytut Monitorowania Mediów wdrożył system umożliwiający wyszukiwanie felietonów na podstawie słów kluczowych[25],
  • Wersje polskiego oprogramowania do rozpoznawania mowy SkryBot:
    • dla biznesu, serwery rozpoznawania mowy (monitoring, indeksowanie i wyszukiwanie tekstem multimediów radia i telewizji),
    • dla użytkowników komputerów osobistych, systemy Windows XP, Vista, 7[26][27],
    • portal rozpoznawania mowy przez internet SkryBot.TV[28].
  • System Rozpoznawania i Zamiany Mowy na Tekst - MagicScribe[29]:
    • MagicScribeMedical - rozpoznawanie mowy dla medycyny[30],
    • MagicScribeLegal - rozpoznawanie mowy dla prawa[31],
  • System rozpoznawania mowy Sarmata, Zespołu Przetwarzania Sygnałów AGH kierowanego przez profesora Mariusza Ziółko[32],
  • Spikit - innowacyjne narzędzie wykorzystujące mowę do sterowania komputerem osobistym[33],
  • Google Web Speech API - dostępne w języku polskim w fazie beta[34]za pośrednictwem przeglądarki Google Chrome. Istnieją też aplikacje nieoficjalne korzystające bezpośrednio z Google API (spoza przeglądarki)[35][36]. Wcześniej Google Voice Search dla użytkowników mobilnych w języku polskim od 15 września 2010.[37]Wymagają połączenia z Internetem.
  • Dragon Dictation i Dragon Search firmy Nuance dla użytkowników mobilnych, systemów iOS, dostępne w języku polskim od października 2011, wymagają połączenia z Internetem[38].
  • Primespeech - polska firma wyspecjalizowana w produkcji portali głosowych, także opracowująca system do transkrypcji mowy[39].

Rozwiązania komercyjne:

  • SpeechStorm[40] – producent aplikacji do IVR opartych m.in. o technologię rozpoznawania mowy

Rozpoznawanie mowy angielskiej[edytuj | edytuj kod]

Zobacz też[edytuj | edytuj kod]

Przypisy

  1. Tomasz Grynkiewicz. Komputer pojął Gierka, a z Kaczyńskim miał problem. „Gazeta Wyborcza”. Nauka, s. 22, 2008-12-08. Agora SA (pol.). 
  2. Bartosz Ziółko, Mariusz Ziółko: Przetwarzanie mowy. Kraków: Wydawnictwa AGH, 2011. ISBN 978-83-7464-441-9. (pol.)
  3. Stephen Cook: Speech Recognition HOWTO (ang.). Linuxdoc.org, 2002-04-19. [dostęp 2014-02-19].
  4. Krzysztof Marasek: Od rozpoznawania do tłumaczenia mowy polskiej (pol.). PJWSTK, 2012-09-26. [dostęp 2014-02-19].
  5. M.A. Sapożkow: Sygnał mowy w telekomunikacji i cybernetyce. Warszawa: WNT, 1966. (pol.)
  6. IBM Shoebox (ang.). IBM. [dostęp 2014-02-19].
  7. J. Baker. The DRAGON system – An overview. „IEEE Transactions on Acoustics, Speech and Signal Processing”. 23 (1), s. 24-29, luty 1975. doi:10.1109/TASSP.1975.1162650. ISSN 0096-3518 (ang.). 
  8. Melanie Pinola: Speech Recognition Through the Decades: How We Ended Up With Siri (ang.). International Data Group Inc., 2011-11-03. [dostęp 2014-02-19].
  9. Jonathan Strickland: Expert Stuff: Google's Mike Cohen (ang.). HowStuffWorks, Inc, 2011-03-16. [dostęp 2014-02-19].
  10. Speech Recognition Lectures, Mehryar Mohri, 2012
  11. Basic concepts of speech (ang.). CMU Sphinx, 2010. [dostęp 2014-03-11].
  12. John R. Hershey et al. "Super-human multi-talker speech recognition: A graphical modeling approach" styczeń 2010
  13. CHANDRA, DHRUBA "Speech Recognition Co-Processor" strona 3 (16)., North Carolina 2007
  14. 14,0 14,1 CMU Sphinx na SourceForge.Net, 23-12-1012
  15. B. Harb et al. Back-off Language Model Compression. 2009
  16. (ang.) Google Chrome: How to Use the Web Speech API, maj 2013
  17. Chip Mulligan: Nuance brings voice recognition to mobile phones (ang.). W: The Inquirer [on-line]. Incisive Media, 2007-02-07. [dostęp 2014-02-22].
  18. Web Speech API Specification 19 października 2012
  19. VoxForge
  20. www.smartertravel: Five Translation Apps Put to the Test, 01-06-2013
  21. Oficjalna strona JCP (JSR #113 JavaTM Speech API 2.0 Final Approval Ballot), 5 maja 2008
  22. Laboratorium Technologii Języka i Mowy
  23. www.ppbw.pl: Projekty badawcze
  24. Koncepcja PBW (...) w ramach projektu „Nowoczesne metody naukowego wsparcia zarządzania bezpieczeństwem publicznym w Unii Europejskiej”, Poznań, 2005
  25. Arkadiusz Wolski: Rozpoznawanie mowy – monitoring TV i radia (pol.). New Europe Events Sp. z o.o., 2006-10-26. [dostęp 2014-02-22]. [zarchiwizowane z tego adresu (2012-07-20)].
  26. SkryBot doMowy rozpoznawanie mowy polskiej
  27. Polskie Centrum Technologii Rozpoznawania Mowy
  28. Rozpoznawanie mowy przez internet, tworzenie i wyszukiwanie napisów
  29. Strona magicscribe.pl
  30. Strona magicscribemedical.pl
  31. Strona magicscribelegal.pl
  32. Zespół Przetwarzania Sygnałów AGH
  33. Strona spikit.pl
  34. support.google.com Pisanie za pomocą rozpoznawania mowy (beta)
  35. wiki.openmoko.org: Google Voice Recognition
  36. www.linux.com: Inside Palaver: Linux Speech Recognition that Taps Google's Voice Technology 28-03-2013
  37. Maciej Kluk, Google Voice Search od dziś w języku polskim, www.pcworld.pl, 15-09-2010
  38. Sebastian Brzuzek, Dragon Dictation i Dragon Search ze wsparciem języka polskiego, 03-10-2011
  39. Tomasz Grynkiewicz, "Polak i komputer, dwa bratanki", Gazeta Wyborcza, 19-08-2010
  40. Strona SpeechStorm
  41. Strona Dragon Naturally Speaking
  42. Strona SkryBot doMowy
  43. 22. Strona Nuance Call Steering

Linki zewnętrzne[edytuj | edytuj kod]