Główną zaletą tego typu rozwiązań jest umożliwienie zaawansowanej obsługi smartfona za pomocą głosu lub przy bardzo ograniczonym użyciu dotykowego ekranu. I nie chodzi o proste polecenia typu „Zadzwoń do…” czy „Otwórz kalendarz” – twój wirtualny asystent rozumie znacznie bardziej skomplikowane polecenia, np. „Przypomnij, bym odpisał na właśnie czytanego e-maila, gdy wrócę wieczorem do domu”. By zrealizować takie zadanie, asystent musi połączyć aktualną zawartość ekranu z położeniem geograficznym użytkownika i porą dnia. Twórcy oprogramowania wyposażają więc usługę w narzędzia i czujniki dające dostęp do potrzebnych danych. Muszą też nauczyć maszynę rozpoznawania mowy
– nie sformalizowanych poleceń, a swobodnie wydawanych komend.
Rozum, który działa w sieci
Wirtualny asystent nie może działać bez połączenia z internetem, i to nie tylko ze względu na potrzebę korzystania z danych dostępnych tylko online. W chmurze przebiega przetwarzanie całego polecenia wydanego telefonowi – od interpretacji mowy po przesłanie gotowej odpowiedzi. Duża moc obliczeniowa zgromadzonych w chmurze serwerów oraz zaawansowane sieci neuronowe wykorzystywane są do analizy głosu użytkownika – dzięki nim najnowsze wersje asystentów rozumieją polecenia wydawane w potocznym języku. Analiza głosu rozpoczyna się od rozłożenia sygnału zarejestrowanego przez mikrofon na składowe częstotliwości za pomocą operacji matematycznej nazywanej Transformacją Fouriera. Powstaje tzw. spektrogram, który można wyobrazić sobie jako zapis głosu w postaci wykresu, na którym zaznaczono wszystkie składniki dźwięku. Z takiego wykresu system wyodrębnia podstawowe fragmenty mowy – sylaby i fonemy. Z tych cegiełek na powrót konstruowane są słowa – już w postaci zrozumiałej dla wirtualnego asystenta.
Potrzebna statystyka
Ponieważ wydawane polecenia rzadko ograniczają się do jednego czy dwóch słów, dla wirtualnego asystenta bardziej istotne od znaczenia poszczególnych wyrazów jest całe zdanie. Po rozpoznaniu poszczególnych sylab rozpoczyna się składanie słów w całe polecenie. Podczas obu etapów do analizy wykorzystywane są metody statystyczne, np. prawdopodobieństwo wystąpienia jednego słowa (lub jego składowej) po drugim. Dla wyższej precyzji analiza uwzględnia cechy charakterystyczne danego języka, np. składnię. Takie podejście eliminuje błędy wynikające z niedbale wypowiadanych słów, nietypowego akcentu lub wad wymowy. Do analizy statystycznej potrzebna jest duża baza danych – taki zbiór tworzony jest na etapie projektowania asystenta w procesie tzw. głębokiego uczenia maszynowego. Podczas analizy milionów poleceń wyodrębniane są wzorce, które następnie można wykorzystać w gotowym produkcie. Także komendy głosowe, które na co dzień wydajesz swojemu smartfonowi, poprawiają umiejętność rozumienia mowy asystenta.
Ważne okoliczności i relacje
Przy interpretacji poleceń wykorzystywane są informacje o właścicielu oraz kontekst wypowiedzi. Jeśli ujawnisz asystentowi swoje relacje z osobami z listy kontaktów, będziesz mógł wydawać polecenia typu „zadzwoń do mojej żony” i „napisz SMS-a do mojej siostry”. Z kolei wprowadzenie danych o miejscu zamieszkania czy pracy podniesie skuteczność poleceń w rodzaju „nawiguj do biura”. Dzięki informacjom o położeniu z modułu GPS smartfona asystent może wyszukiwać restauracje, muzea czy sklepy w twojej okolicy. Sprawdzi też repertuar kina czy teatru (w niektórych krajach zarezerwuje też bilet), znajdzie datę i miejsce koncertu ulubionego artysty. Im więcej informacji o tobie zgromadzi asystent, tym efektywniejsza będzie jego praca.