Własny asystent głosowy w Windows? Zbuduj go sobie sam!
Technologia rozpoznawania mowy na przykładzie istniejących produktów takich jak Siri, Dragon Naturally Speaking lub dopiero nadchodzących Cortany i intelowskiego Jarvisa to coraz częściej poruszany temat zarówno na łamach dp jak i w innych portalach branżowych. Niesamowity postęp obserwowany w ostatnich latach w tej gałęzi informatyki jest niezaprzeczalny i wynika zarówno z rozwoju czystej myśli technicznej (sposobu przetwarzania sygnałów) jak i dostępności taniej mocy obliczeniowej. Z technologią rozpoznawania mowy rozumianą w jej potocznym (tj. użytkowym) znaczeniu od dawien dawna mamy jednak ten sam problem - mało w niej inteligencji, więcej zaś prostych reakcji przyczynowo skutkowych ukrytych pod zasłoną pustych haseł.
Tak naprawdę warstwa użytkowa gotowych systemów przeżywa... istną stagnację. Za to karmi się nas utopijną wizją wszechwiedzącego i inteligentnego automatu gotowego spełnić wszystkie życzenia, którego - mimo usilnych prób - za nic nie można dostrzec na horyzoncie. Odrzucamy jednocześnie dostępne rozwiązania, które nie odpowiadają opisem fantazjom hucznie zapowiadanym nam przez specjalistów z dziedziny marketingu. I tu popełniamy błąd.
Twórcy interfejsów głosowych niepotrzebnie starają się (już na etapie projektu) przewidzieć przyszłe zachowanie użytkownika. Limitują tym samym możliwość jego interakcji z urządzeniem. Zamiast tego powinni dostarczać im w pełni konfigurowalne rozwiązania o uniwersalnym zastosowaniu, a zatem nielimitowanych możliwościach. Pamiętam gdy po raz pierwszy przeczytałem wywiad z Olivierem Scholzem, kierownikiem zespołu "Speech User Experience for Windows Vista". Wspomniał on w nim o trwających w tamtym czasie pracach nad systemem makr umożliwiającym tworzenie własnych komend głosowych i zwiększaniem możliwości personalizacji WSR (Windows Speech Recognition, niedostępny w PL wersji systemu z powodu ograniczeń językowych). Obietnice zespół ten zrealizował, choć najwyraźniej sam system makr okazał się chyba zbyt trudny do przetrawienia dla zwykłego zjadacza chleba. A może to użytkownicy stali się... zbyt prości dla nieskomplikowanego programu komputerowego. To zmieniałoby drastycznie postać rzeczy. Czy to my idziemy na łatwiznę? Czy mamy wrodzoną lub zaszczepioną tendencję do lenistwa intelektualnego.
Za moich czasów...
Technologia rozpoznawania mowy jest z nami obecna od dawna. Zwrócę tu jedynie uwagę na początek lat 90. i schyłek świetności doskonałych komputerów Amiga. Właśnie w tamtym czasie Richard Horne udostępnił światu AniMan'a, o którym na dyskietkach z kolekcji Freda Fisha pisano, że "jest programem jakiego jeszcze nigdy nie widziałem". I słusznie... Dla małego dziecka wkraczającego w fascynujący świat informatyki widok przemawiającej trójwymiarowej głowy, która na dodatek rozpoznaje krótkie komendy głosowe i wykonuje tajemnicze skrypty ARexx'a był oszałamiający. Program działał zadziwiająco dobrze na przyjaciółkach (Amigach) wyposażonych w niewiele ponad 512KB (czasem 1MB) pamięci RAM i procesor taktowany częstotliwością 7MHz, ale rozwijał skrzydła na prawdziwych demonach szybkości minionej epoki.
Tym co istotne z poziomu naszego tematu było założenie twórcy programu AniMan, że duża część użytkowników ówczesnych komputerów wiedziała czym są i do czego służą skrypty, ba!, prawdopodobnie potrafiła tworzyć własne. I choć z perspektywy czasu była to jedynie zabawka, to jednak efekt WOW pozostał w pamięci na długo. Na tyle długo, by po wielu latach młodzieńcze zainteresowanie przerodziło się w pasję i chęć utworzenia projektu równie inspirującego, a już na pewno przełomowego jak AniMan.
Na nasze nieszczęście, raptowna informatyzacja całych społeczeństw nie poszła w parze ze wzrostem świadomości i potrzebą zwiększania swojej wiedzy, wręcz przeciwnie. Niewdzięczny, a już na pewno nieproporcjonalny podział ról nadal postępuje. Wszyscy korzystamy z rozwiązań teleinformatycznych nie wiedząc nawet na jakiej zasadzie funkcjonują. Zdolność do logicznego myślenia i relatywnie szybkiego przyswajania wiedzy powoli zastępujemy pseudonaukowymi osądami, kierując się przy tym daleko idącym subiektywizmem mającym czysto emocjonalne podłoże. Oceniamy produkty nie przez pryzmat dłuższej z nimi pracy lub posiadanych przez nie możliwości, lecz jak najprostszej z nimi interakcji. Im bardziej dany produkt zwalnia nas z konieczności myślenia, tym lepsze o nim zdanie posiadamy. Nie tak miało być. Stajemy się zakładnikami swojej własnej - nie bójmy się tego stwierdzić - głupoty. Warto o tym pomyśleć choć przez chwilę i spróbować to zmienić.
Automagiczności powiedz STOP
Gdy pod koniec 2011 roku rozpoczynałem prace nad projektem Spikit miałem przed sobą jasną wizję tego, czym powinien być uniwersalny system rozpoznawania mowy. A powinien być tylko jednym - narzędziem w rękach doświadczonego użytkownika, zdolnym wykonać każdą zaprogramowaną czynność, nie tylko utworzoną wcześniej przez autora, ale - podobnie jak we wspomnianym wyżej AniManie - zaprogramowaną przez użytkownika lub dostarczoną z zewnątrz. Ten ostatni nie musi bowiem programować czegoś samodzielnie, wystarczy, że pobierze gotowe skrypty z sieci (trochę ich na przestrzeni ostatnich lat powstało...). Dodajmy do tego relatywnie prostą obsługę, jasne i przejrzyste zasady pracy (współpracy!) z programem i gotowe. Czy to wystarczy? Niezupełnie, pozostaje zawsze czynnik ludzki, a ten potrafi nieraz doprowadzić człowieka do histerii. W najgorszym wypadku zniechęcić do dalszej aktywności ;)
Gdy koncepcja projektu ulega przeobrażeniom, warto zastanowić się nad ideałami lub głównymi przesłankami leżącymi u podstaw jego istnienia. Nie inaczej było w przypadku projektu Spikit i jego 2,5‑letniej historii. To co początkowo było jego wielką zaletą (mechanizm Reguł głosowych), w chwili zwątpienia stało się największym ciężarem (brak zrozumienia), by niedługo potem ponownie nabrać blasku (oświecenie?). Ach, ta przewrotność. Poznaj Spikit, niezwykły system rozpoznawania mowy.
Dostępna od ponad miesiąca nowa wersja tego oprogramowania, czyli Spikit 1.5.x, dzięki kilku prostym zabiegom może stać się Twoim osobistym asystentem głosowym, o którym zawsze marzyłeś. Teraz. Nie jutro, za miesiąc, czy rok. Nie, gdy rynek PC będzie na niego - z marketingowego punktu widzenia - gotowy, lecz w tej chwili. Nie na super-komputerze, a na sprzęcie jakim aktualnie dysponujesz. Pytanie tylko, czy Ty jesteś na to gotów? Czy wiesz czego chcesz, czy może wolisz być tylko biernym obserwatorem?
Weź sprawy w swoje ręce
A raczej: zacznij mówić. Mimo niewielkich różnic w numeracji, kolejne aktualizacje programu wprowadzają znaczne ulepszenia lub pełnią rolę odpowiedzi na zgłaszane przez użytkowników sugestie. Nierzadko są to przełomowe zmiany. Tak było także i w tym przypadku. W efekcie, Spikit 1.5 uległ bardzo pozytywnej transformacji, eliminując błędy poprzedników i otwierając nowe perspektywy wykorzystania programu w naszym codziennym życiu. Zachowując pierwotną ideę, mechanizm tworzenia własnych komend głosowych oferuje teraz niespotykane nigdzie indziej możliwości. Nie jest przy tym sztucznie ograniczony, wręcz przeciwnie - wspiera kreatywność użytkowników. Wymaga jednak intelektualnego zaangażowania.
Zalety usprawnionego mechanizmu Reguł głosowych przedstawiłem już w krótkiej serii filmów tuż przed oficjalnym wydaniem publicznej wersji programu. Jak się następnie okazało, z wersji kandydującej ;) Mimo późniejszych, niewielkich modyfikacji, filmy te nie utraciły na aktualności, więc prezentuję je poniżej z nadzieją, że okażą się pomocne.
Tym co warto tu podkreślić jest wyjątkowa zdolność programu Spikit do bezproblemowej współpracy z każdym innym oprogramowaniem (np. z systemowym Narratorem, szczególnie w jego zaktualizowanej wersji w Windows 8!). Dzięki temu Spikit likwiduje problem bycia pseudointeligentnym automatem i pozostawia Tobie, użytkownikowi, wybór konkretnych narzędzi do realizacji konkretnych celów. Spikit nie musi informować Ciebie o prognozie pogody, ani pełnić roli zaawansowanego czytnika ekranowego. Wystarczy natomiast, że pełni rolę inicjującą prace innych, bardziej specjalistycznych narzędzi, które utworzone zostały w konkretnym celu jakim może być np. głosowe informowanie o stanie pogody lub przebiegu trasy z jednego miejsca w inne. Wystarczy, że Spikit pełni rolę katalizatora i zwiększa wydajność Twojej pracy lub rozszerza możliwości cyfrowej rozrywki! Taką właśnie rolę spełniać mają systemy rozpoznawania mowy przyszłości. AutoCAD sterowany głosem? - nie ma problemu (przypomnij sobie pracę Tony'ego Starka w pracowni i jego konwersacje z filmowym JARVIS'em, a zobaczysz uderzające podobieństwo). Nawet w przypadku aplikacji takich jak Photoshop, Twoja interakcja z komputerem nie musi ograniczać się do klikania lub, zgodnie z aktualnym trendem na rynku, mazania palcem po ekranie dotykowym. Wykorzystaj swoją wyobraźnię i zapisz swoje myśli w postaci Reguły głosowej, schematu określającego sposób komunikowania się z maszyną, by zaraz potem móc do niej faktycznie przemawiać. Właśnie w tym celu powstał Spikit, aby integrować ze sobą istniejące rozwiązania, a nie je zastępować. Spikit to interfejs głosowy dla rzeczy, które widzisz na ekranie.
Odnośniki do pozostałych części prezentacji:
- Spikit 1.5 - rozpoznawanie mowy na ultrabooku (2 z 5)
- Spikit 1.5 - rozpoznawanie mowy na ultrabooku (3 z 5)
- Spikit 1.5 - rozpoznawanie mowy na ultrabooku (4 z 5)
- Spikit 1.5 - rozpoznawanie mowy na ultrabooku (5 z 5)
Krótka wizja przyszłości
Spikit jest w połowie drogi ku jeszcze większej wolności jego użytkowników. Czy dotrze tam w niezmienionej postaci? Któż wie... niemniej obecna forma wydaje się być niezwykle stabilna, bo oparta na dobrze przemyślanych fundamentach wspartych sugestiami stale powiększającej się społeczności użytkowników. Istnieją jeszcze obszary wymagające drobnych usprawnień (błądzić jest rzeczą ludzką...), ale też i pomysły, które mogą zrewolucjonizować sposób w jaki komunikujemy się z naszymi urządzeniami (niezależnie od tego czy są to tablety, laptopy czy stacjonarne pecety).
Najważniejsze i najpilniejsze z tych pomysłów to obecnie:
- implementacja potoków nazwanych lub podobnego mechanizmu komunikacji między procesami, dzięki którym wyniki rozpoznawania mowy mogłyby być w prosty sposób wykorzystywane nawet przez początkującego użytkownika-programistę do jego własnych celów
- zdolność do automatycznego wczytywania zbiorów poleceń przygotowanych specjalnie dla wykorzystywanej w danej chwili aplikacji (teraz można tego dokonać tylko na żądanie)
- możliwość wypowiadania na głos komunikatów z okien dialogowych (na systemach starszych niż Windows 8, na których Narrator nie jest dostępny lub nie można nim sterować za pomocą skrótów klawiszowych, a w efekcie za pomocą własnych poleceń głosowych)
Wyraź swoje poparcie
Jeśli tak jak ja pasjonujesz się nowymi technologiami, rozpoznawaniem mowy lub innymi metodami komunikowania się ze sprzętem, zwłaszcza ich użytkowym zastosowaniem - wypróbuj Spikit. Odnajdziesz go w bazie dobrychprogramów, jak i na oficjalnej stronie projektu. Aplikacja w wersji bezpłatnej działa z niewielkim opóźnieniem.
A jeśli masz pytania lub szukasz okazji do wymiany poglądów na temat samego programu lub idei głosowego sterowania PC, weź udział w dyskusji zarówno tu jak i na stronie Spikit (tam komentarze biją kolejne rekordy długości...).
A gdy Spikit przypadnie już Tobie do gustu - nie zapomnij dać mu lajka na Facebooku, Spikit na FB pozytywnie zaskakuje zarówno treścią jak i kulturą przekazu informacji.