Rozpoznawanie mowy – technologia pozwalająca komputerowi lub innemu urządzeniu interpretować mowę ludzką, na przykład do celów transkrypcji lub jako alternatywną metodę interakcji.

Dla języka polskiego (stan na rok 2008) dostępne są programy rozpoznające poprawnie 5–9 na 10 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.

Rodzaje rozpoznawania mowy Pod względem segmentacji rozpoznawanej wypowiedzi: 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 poprawne, przerwy na zastanawianie się, fragmenty słów, powtórzenia; stopa błędów co najmniej dwukrotnie wyższa niż dla czytania).

Pod względem czasu odpowiedzi: rozpoznawanie mowy w czasie rzeczywistym – system podaje wyniki niemal równolegle z pobieraniem, danych wejściowych, za pomocą urządzenia do próbkowania dźwięku (np. karty dźwiękowej z mikrofonem), transkrypcja zasobów akustycznych, uprzednio zdigitalizowanych do plików, np. celem indeksowania/przeszukiwania.

Pod względem stopnia zależności od mówcy: zależne od mówcy, zależne od grupy mówców, niezależne od mówcy.

Pod względem rozmiaru słownika: mały słownik – dziesiątki słów (np. rozpoznawanie cyfr), średni – setki słów, duży – tysiące słów, bardzo duży – dziesiątki tysięcy słów (np. dyktowanie).

Historia 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) 1962 – IBM zademonstrował maszynę Shoebox rozpoznającą 16 słów języka angielskiego w tym 10 cyfr 1975 – propozycja systemu Dragon opartego na własnościach procesów Markowa (J. Baker) 1976 – CMU Harpy, słownik ok. 1000 wyrazów, pierwsze użycie algorytmu BeamSearch, rozpoznawanie mowy łączonej, odpowiedź kilkanaście razy czas rzeczywisty koniec lat 1970 – badania nad rozpoznawaniem mowy ciągłej o dużym słowniku, jednak nie w czasie rzeczywistym i nie komercyjne (IBM T.J. Watson Research Center)Garfinkel, 1998, History of Speech Recognition and Transcription Software. lata 1980 – słowniki rzędu kilku-kilkunastu tysięcy wyrazów, upowszechnione 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) 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, wrzesień 2010 demonstracja Google Voice Search dla języka polskiego 2011 – słownik Google dla języka angielskiego zawiera już około miliona różnych słów, model języka trenowany setkami miliardów zapytań

Trudności implementacyjne i wdrożeniowe Pomimo wielu osiągnięć problem automatycznego rozpoznawania mowy jest stale daleko od bycia rozwiązanym. Najbardziej trudnymi do implementacji kwestiami sąM. Forsberg, „Why is speech recognition difficult?” Chalmers University of Technology, 2003, s. 9 i poprzednie.: duża przestrzeń przeszukiwania (z powodu znacznego rozmiaru niezbędnych danych – szczególnie np. dla języków słowiańskich) odporność na silną zmienność sygnału wejściowego, w wielu wymiarach (np. zmienność mówcy: zmienność realizacji tej samej wypowiedzi w czasie, płeć, anatomia traktu głosowego, dialekt, akcent, styl, emocje, tempo wypowiedzi; zmienność tła/kanału) rozumienie mowy, reprezentacja wiedzy uwzględnianie wielu kontekstów np. mowy ciała rozwiązywanie problemu niejednoznaczności językowych na wielu poziomach (por. homofonia, homonim, przesłyszenie) segmentacja mowy, rozpoznawanie mowy ciągłej mowa naturalna/spontaniczna różni się od języka czytanego/pisanego charakterystycznego dla wielu korpusów/modeli pomijanie zakłóceń sygnału.

Problemy/limity wdrożenioweB. Shneiderman, „The limits of speech recognition” Communications of the ACM, t. 43, nr 9, s. 63–65, wrzesień 2000.: zmęczenie użytkownika ciągłym używaniem głosu wzajemne przeszkadzanie sobie w pomieszczeniu wypełnionym mówiącymi do swoich komputerów; urządzeń proces myślenia dla wielu ludzi jest blisko związany z mową, więc trudne jest mówienie/słuchanie i rozwiązywanie problemów w tym samym czasie, zaś mówienie i aktywność fizyczna np. chodzenie są kompatybilne. Dzieje się tak dlatego, że przetwarzanie mowy w ludzkim mózgu odbywa się w tym samym obszarze co rozwiązywanie problemów, więc to zachodzi najlepiej w cichym środowisku. By odciążyć tę część mózgu, wybierane jest w wielu przypadkach ręczne sterowanie za pomocą dżojstików, przycisków i przełączników itp.

Koszty obliczeniowo-pamięciowe a jakość algorytmów Rozmiar problemów uczenia i wyszukiwania, jaki generuje automatyczne rozpoznawanie mowy, jest źródłem wielu kolejnych wyzwań stawianych przed informatykąSpeech Recognition Lectures, Mehryar Mohri, 2012. (szczególnie problematyczność ta może wzrastać dla języków z wieloma formami gramatycznymi jak np. słowiańskie, a współcześnie dominujące podejście statystyczne powoduje w tych przypadkach ogromne wymagania pamięciowe dla modeli akustycznych i językaCMU Sphinx, 2011-09-23 Russian Audiobook Morphology-Based Model.). Pete Warden z Google Brain opisuje demonstracyjny zbiór danych przeznaczony do rozpoznawania mowy o małym słowniku, w którym zebrano nagrania kilkudziesięciu słów, każde z nich wymawiane przez ponad tysiąc mówców co daje gigabajty danych już dla tak ograniczonego słownikaPete Warden, 2018, Google Brain, Speech Commands: A Dataset for Limited-Vocabulary Speech Recognition..

Obecnie w zastosowaniach komercyjnych dominują algorytmy oparte na wielowarstwowych (20–30 warstw) sieciach neuronowych. Gorsze rezultaty osiągnięto za pomocą samych ukrytych modeli Markova (jako że sygnał mowy jest mało deterministyczny, dekoduje się go m.in. algorytmami z zakresu kryptoanalizyL. R. Rabiner, B. H. Juang, An Introduction to Hidden Markov Models, w: 1986 IEEE ASSP Magazine, styczeń 1986, s. 13. więc dodatkową trudnością może być, ochrona pokrewnych tematów np. ustawami o eksporcie czy obrocie materiałami podwójnego zastosowania, jak ECRA, EAR itp.Jak niektóre zastosowania Ukrytych Modeli Markowa np. do analizy manuskryptu Voynicha, źródło: René Zandbergen, Voynich Manuscript analysis.M. E. D’Imperio, 1979, An Application of PTAH to the Voynich Manuscript, National Security Agency Technical Journal.) – algorytmy tego typu „przewidują” prawdopodobieństwa słów na podstawie znacznych rozmiarów językowych danych statystycznych 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, dlatego stosowane są algorytmy obcinające (ang. ) na wielu poziomach: drzew decyzyjnych, modelu języka, przestrzeni przeszukiwania prawdopodobnego słowa dla danej wypowiedzi (np. algorytm ).

Interpretacja sygnału mowy tylko z pozoru jest łatwa i daje jasno określone kryteria wydzielania jednostek składowych, w rzeczywistości jest mało deterministyczna, a wysoce zależna od szerszego kontekstu (na każdym kolejnym poziomie). Chodzi tu oczywiście głównie o algorytmy rozpoznawania mowy spontanicznej, a także ciągłej, które dawałyby wyniki porównywalne ze „zdolnościami ludzkimi” (na marginesie można dodać, że dla specyficznych kryteriów udało się uzyskać „nad-ludzkie”John R. Hershey et al. „Super-human multi-talker speech recognition: A graphical modeling approach” styczeń 2010. wyniki), ogólnie algorytmy te (o bardzo dużym słowniku, działające w czasie rzeczywistym) wymagają znacznej mocy obliczeniowej i pamięci komputerowej o dużej pojemności (stan na rok 2012, szczególnie w trakcie uczenia, dostrajania)CHANDRA, DHRUBA „Speech Recognition Co-Processor” strona 3 (16)., North Carolina 2007.. Ma to miejsce z powodu powolnego spadku stopy błędów (WER) w zależności od znacznego wzrostu rozmiaru modelu językaB. Harb et al. Back-off Language Model Compression. 2009.. W wymaganiach systemowych produktów spotyka się sformułowanie: im więcej pamięci komputerowej tym lepiejStephen Cook, Speech Recognition HOWTO (ang.), Linuxdoc.org, 2002-04-19. 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. Od 2014 roku prace idą w kierunku ograniczenia statystycznych modeli języka (na rzecz większej uwagi co do modeli akustycznych i wymowy – model LAS ang. „Listen, Attend and Spell”)William Chan, Navdeep Jaitly, Quoc V. Le, Oriol Vinyals, 2015, „Listen, Attend and Spell”., gdyż są one niepraktyczne w rozwiązaniach mobilnych, ale nie bazujących na zewnętrznym serwerze czy chmurze.

Model języka służy do ukierunkowywania przeszukiwania, ogranicza więc jego złożoność obliczeniową (co oczywiście może skutkować spadkiem jakości i 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). Stosunkowo nowym podejściem jest model języka oparty na metodzie pamięci podręcznej, który umożliwia stopniowe przełączanie się modelu w bardziej lokalny kontekst (dla dużych słowników/kontekstów różnice między słowami na poziomie akustycznym są często zaniedbywalnie małe)R. Kuhn, R. De Mori, czerwiec 1990. „A Cache-Based Natural Language Model for Speech Recognition”. IEEE TPAMI.. Duże korpusy dla modeli akustyczno-językowych mają zwykle restrykcyjne licencje, aby ułatwić rozwój rozwiązań otwartych powstał projekt VoxForgeVoxForge. oraz Common Voice.