Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Od zera do spikera - sterujemy komputerem za pomocą głosu cz. 1

Czy istnieje jeden, niezawodny sposób na swobodną komunikację człowieka z maszyną? Na pewno nie. Cały nasz świat się zmienia, zmianom ulegają nie tylko technologie wykorzystywane przez nas na co dzień, ale również i nasze własne preferencje. Paradoksalnie największą stałą we wszechświecie jest... zmiana. Któż wie jak wyglądać będzie otaczający nas świat za kilkanaście lat (w kontekście IT)? Możemy natomiast już teraz wyróżnić kilka technologii ułatwiających jednokierunkową wymianę informacji na linii człowiek-komputer, które na przestrzeni minionych dekad lub tylko ostatnich lat zdobyły lub dopiero zdobywają naszą akceptację i coraz większe zainteresowanie. Ja jednak chciałbym skoncentrować się wyłącznie na jednej, ulubionej przeze mnie metodzie wpływania na to, co dzieje się na ekranie naszego komputera. Była z nami obecna już od dawna, jest obecna teraz i zapewne będzie gdy ruszymy w stronę gwiazd ;)

Tak, mowa tu o technologii sterowania PC (lub innych urządzeń) za pomocą komend głosowych.

Jak mówić do komputera, aby ten nas rozumiał? Najlepiej wykorzystać jakieś oprogramowanie, które wyszuka w naszej mowie wcześniej ustalone (zaprogramowane) komendy głosowe i podejmie właściwe dla tych poleceń działania. Aplikacją zdolną do podejmowania takich działań, obsługującą język polski, działającą szybko i sprawnie, jest Spikit. Ten tekst ma na celu pokazać, że utworzenie własnego asystenta głosowego może być bardzo proste i przyjemne.

Założenia

Na potrzeby tego wpisu przyjmiemy poniższe:

  • zainstalowaliśmy Spikit w wersji co najmniej 1.5.1
  • zapoznaliśmy się chociaż pobieżnie z instrukcją dołączoną do programu (zwłaszcza z rodziałem 4. Szybki start)
  • skonfigurowaliśmy poprawnie mikrofon (jeśli było to w ogóle konieczne), dzięki czemu Spikit bezbłędnie rozpoznaje domyślne polecenia głosowe zapisane w programie

Lekcja 1

Jeśli chcesz zostać mówcą doskonałym, musisz przyswoić sobie kilka istotnych informacji i choć trochę zrozumieć fundamentalne założenia, które leżą u podstaw Spikit. To właśnie z nich wynika funkcjonalność programu oraz to one są źródłem jego ewentualnych ograniczeń. Sam dołożyłem starań, aby ograniczeń w Spikit było możliwie najmniej :)

Definicje

Zabawę z tym czy innym programem powinniśmy zawsze zacząć od dołączonej do niego dokumentacji. Ale kto ma na to czas. Przecież nie może to być AŻ TAK TRUDNE, prawda? Prawda, w Spikit znajdziesz raptem kilka przycisków, niemniej to nie o przyciski lub przełączniki chodzi, a o coś znacznie więcej.

Mechanizm zarządzania poleceniami nie należy do gatunku self-explanatory. Z drugiej strony, czy znacie jakiś język programowania, który mógłby przynależeć do takiej grupy i w ogóle nie wymagał tłumaczenia? Sposób zapisywania poleceń w programie jest stosunkowo prosty, ale wymaga odrobiny zaangażowania i chęci jego zrozumienia. Niektórym osobom przychodzi to łatwiej, niektórym z drobnymi trudnościami. Przytoczę więc tu najważniejsze informacje, z których będziemy korzystali teraz i w przyszłości.

  • Listę poleceń głosowych w programie Spikit nazywamy Regułą głosową
  • Poprawna Reguła głosowa musi zawierać co najmniej jedno poprawne polecenie głosowe
  • Pojedyncza komenda głosowa składa się ze słowa lub kilku słów oraz przypisanej do nich Akcji (wymagana) i Odpowiedzi (opcjonalna)
  • Istnieją różne rodzaje Akcji, dzięki którym informujemy program podjęcia jakich czynności oczekujemy w zamian za wypowiedzenie komendy
  • Choć ilość typów Akcji jest ograniczona, istnieje nieograniczenie wiele możliwości ich wykorzystania do własnych celów
  • Do zapisywania poleceń w programie wykorzystujemy znaki specjalne ( ) | [ ] { } * : # zgodnie z ich przeznaczeniem
  • Możliwe jest zagnieżdżanie niektórych znaków specjalnych
  • Wykorzystywane słowa powinny mieć odzwierciedlenie w języku, co dyskwalifikuje Reguły zawierające po prostu zlepek losowych liter

Krok w stronę własnego asystenta głosowego

Otwórz okno programu Spikit i przejdź do zakładki zatytułowanej Karta dynamiczna (kliknij w tę nazwę). Kliknij w obrębie pola z definicją Reguły głosowej i, gdy pole to stanie się aktywne, skorzystaj ze skrótu klawiszowego Ctrl+A, by zaznaczyć wszystkie zapisane tam polecenia. Teraz naciśnij klawisz Backspace lub Delete i pozbądź się domyślnych poleceń za jednym zamachem. Gdybyś jednak zmienił zdanie, możesz w każdej chwili ponownie wczytać do tej karty zbiór poleceń dostarczany razem z programem. Ale to już powinieneś wiedzieć z lektury instrukcji obsługi programu...

Wprowadź w polu Reguły głosowej taki tekst jak na poniższym obrazku:

Teraz kliknij w przycisk włączający kartę z utworzonym przez Ciebie poleceniem. Jeśli zmienił swój stan z szarego na pomarańczowy - gratuluję! Utworzyłeś swoją pierwszą, na razie nieprzydatną Regułę głosową :)

Reguła głosowa zawiera dokładnie jedno polecenie. Zamknij GUI programu kliknięciem w otaczające je ciemne tło lub przeznaczony do tego przycisk X. Gdy tylko wypowiesz do mikrofonu wszystkie słowa zapisane kolorem pomarańczowym ('to jest moja komenda'), Spikit wykona akcję zapisaną pomiędzy znakami specjalnymi { }. W naszym małym przykładzie akcją tą jest akcja naciśnięcia klawisza Pause (niezależnie od tego czy jest on fizycznie dostępny na klawiaturze Twojego laptopa/komputera stacjonarnego). Dlaczego zatem jest to nieprzydatna Reguła głosowa? Dlatego, że w systemie Windows taka czynność (naciśnięcie klawisza Pause) nie powinna specjalnie wpłynąć na jego pracę, chyba że posiadasz zainstalowane jakieś dodatkowe programy aktywnie korzystające z takiego skrótu klawiszowego/gorącego klawisza. Zauważ, że gdy tylko wprowadzisz znak { w polu Reguły głosowej, Twoim oczom ukaże się okienko podpowiedzi zawierające pewne stałe nazwy lub przykłady, które możesz wykorzystać do budowania akcji.

Możesz zmodyfikować to polecenie (wprowadzić inną nazwę klawisza) i sprawdzić efekty takiej zmiany. Jeśli chciałbyś nacisnąć wybrany klawisz wielokrotnie - po prostu zapisz jego nazwę żądaną ilość razy pomiędzy znakami specjalnymi { } np. to jest moja komenda {Enter Enter Enter}. Proste? Możesz zrobić znacznie więcej: przytrzymywać/zwalniać wybrany klawisz, wykorzystać modyfikatory Control, Shift oraz Alt, naciskać ustalone klawisze w sposób sekwencyjny lub symultaniczny albo pomieszać wszystko razem w jednym ciągu reprezentującym np. kombinację ciosów w grze komputerowej (combo).

Akcja naciśnięcia klawisza lub nawet całej ich kombinacji jest tylko jedną z dostępnych w programie. Poniższe zestawienie typów akcji rozpoznawanych przez Spikit umieszczam na razie wyłącznie w celach informacyjnych. Lista jest krótka, ale konsekwencje istnienia takich, a nie innych rodzajów akcji w Spikit są ogromne.

Wróćmy do pierwszego przykładu. Złożoność naszej Reguły głosowej nie jest duża, tak jak nie są duże zalety posiadania pojedynczej komendy głosowej. Utwórzmy więc listę czterech takich poleceń, posiadających tę samą wspólną akcję. Dowiemy się dzięki temu, że możemy tę samą akcję powiązać z różnymi słowami, alternatywnymi wersjami komendy głosowej, wypowiadanymi zależnie od nastroju lub poziomu naszej koncentracji. Wykorzystamy do tego celu znaki specjalne ( ) |, które odpowiadają kolejno za rozpoczęcie listy poleceń, zakończenie listy poleceń oraz rozdzielenie jednego polecenia od drugiego w liście.

To, w którym miejscu wykorzystasz znaki nowej linii lub spacji nie ma najmniejszego znaczenia (kwestia gustu) tak długo, jak pozostawiłeś odstępy pomiędzy poszczególnymi wyrazami wchodzącymi w skład poleceń. Powyższy zapis Reguły głosowej nie różni się więc fundamentalnie od poniższego "pomieszania z poplątaniem", z którego ciężko wywnioskować coś na pierwszy rzut oka.

Na pewno zwróciłeś uwagę na to, że tak utworzone komendy współdzielą takie same lub bardzo zbliżone wyrazy. Dodajmy w naszej Regule głosowej kilka znaków odstępu i zamieńmy polecenia miejscami, aby wyróżnić ten fakt.

Gdybyśmy tylko mogli w prosty sposób wskazać w naszym poleceniu wyrazy opcjonalne, które możemy lub których nie musimy wypowiadać, oszczędzilibyśmy wiele miejsca i pracy. Okazuje się, że jest to bardzo proste. W Spikit wybrane wyrazy lub nawet całe zdania możemy umieścić pomiędzy znakami specjalnymi [ ] i w ten sposób oznaczyć je jako opcjonalne.

Efekt? Dokładnie taki jak sobie założyliśmy (z czterech poleceń pozostały dwa). Gdbyśmy trochę pokombinowali i wykorzystali możliwość zagnieżdżania znaków specjalnych, nasza Reguła głosowa mogłaby przybrać jeszcze inną, znacznie bardziej złożoną formę (przypomnij sobie domyślny zbiór umieszczony w Karcie Dynamicznej). My natomiast dokonamy jedynie drobnego uproszczenia, ograniczając listę poleceń z obecnych dwóch do jednego. Ponieważ akcja dla obu tych komend jest wspólna, umieścimy ją poza listą tj. za znakiem specjalnym ).

Ten prosty zabieg umożliwi nam "scalenie" poleceń, a dokładniej, zmianę postrzegania przez Spikit obu alternatywnych ścieżek, którymi może podążać użytkownik programu. Drogi te, choć przebiegają różnie, prowadzą do jednego, wspólnego celu (do akcji {Pause} - przyp. autor). Jak w życiu...

Spikit analizuje taki zbiór ścieżek od lewej do prawej. Gdy droga się kończy, program wykonuje ostatnią zapamiętaną akcję napotkaną na ścieżce, którą podążał użytkownik. Przez podążanie ustaloną ścieżką, mam tu oczywiście na myśli wypowiadanie słów wchodzących w skład Reguły głosowej w ustalonej kolejności.

Na początku swej przygody z programem najpewniej wystarczy Tobie zapis poleceń głosowych w najprostszej formie. Kolejne komendy będą elementami długiej, wspólnej listy.

Miej jednak świadomość, że dzięki odpowiedniemu wykorzystaniu znaków specjalnych możesz bardzo szybko i małym nakładem sił dokonać modyfikacji poleceń i np. utworzyć ich odmienne wersje odpowiednie dla danej sytuacji. Dzięki temu Twoja konwersacja z komputerem będzie bardziej naturalna i skuteczna, bez względu na to czy wypowiesz wszystkie lub tylko wybrane słowa wchodzące w skład komendy głosowej.

Poruszone w tym wpisie zagadnienia to pierwszy element większej układanki. Dalsza część wkrótce...

PS Czy wiedziałeś, że możesz wykorzystać znak *, aby wskazać w Regule głosowej miejsca potencjalnego pojawiania się wyrazów nacechowanych emocjonalnie, które - choć dodane do naszej wypowiedzi - nie wpłyną na odbiór polecenia przez aplikację? Jeśli nie, zajrzyj do oficjalnego podręcznika użytkownika. Znajdziesz tam naprawdę ciekawe rzeczy :D
 

windows oprogramowanie

Komentarze

0 nowych
pablito24   8 #1 17.02.2014 21:52

Aplikacja wygląda świetnie. Szkoda, że płatna

pablito24   8 #2 17.02.2014 21:55

zasysam wersję testową

alucosoftware   7 #3 17.02.2014 22:16

@pablito24
Pseudo-testową :-)

Tak naprawdę jest to bezpłatna wersja programu, nieograniczona czasowo, posiadająca wszystkie możliwości, rozpoznająca polecenia tak samo sprawnie (błyskawicznie -> w ok. pól sekundy/sekundę po zakończeniu wypowiadania komendy), ale... wykonująca zaprogramowane przez Ciebie czynności po pewnym losowym czasie (od 1 do 15 sekund). Czasem program zadziała szybciej, czasem wolniej.

Zapoznaj się z tą informacją:
https://www.facebook.com/permalink.php?story_fbid=364266573688572&id=3436371...

Mam nadzieję, że Spikit przypadnie Tobie do gustu.

xomo_pl   20 #4 18.02.2014 00:53

@alucsoftware- nie lepiej by było wypuścić pełną wersję działającą np. 7 dni zamiast tego dema,
które jedyne co robi to zniechęca do programu ?

alucosoftware   7 #5 18.02.2014 01:27

@zomo_prl
Kiedyś użyłem sformułowania 'wersja demonstracyjna' w odniesieniu do bezpłatnej wersji Spikit. Najwyraźniej był to mój największy błąd... Wersja bezpłatna posiada wszystkie możliwości wersji płatnej - nie jest więc demem w powszechnym tego słowa znaczeniu.

Jak zaznaczyłem to w komentarzu powyżej oraz pod wskazanym odnośnikiem na Facebooku (ale również wielokrotnie na dp i na stronie programu w Dyskusji), taka wersja programu jest pełnowartościowym produktem. Wolę więc pozostać przy tej zniechęcającej wersji... jest ona wykorzystywana na co dzień przez dziesiątki osób, którym taki stan rzeczy nie przeszkadza, a które cenią sobie możliwość swobodnego korzystania ze Spikit z całym jego dobrodziejstwem przez dowolnie długi okres czasu :-)

pablito24   8 #6 18.02.2014 08:21

Nie doczytałem. Teraz bardziej zagłębiam się w ten program.

Jaro070   15 #7 18.02.2014 16:15

Muszę sobie w końcu kupić mikrofon do komputera. :-)

arlid   14 #8 18.02.2014 19:29

Swego czasu recenzowałem Spikit na blogu. Właśnie w oparciu o wersję darmową. I powiem, że nie jest to ogromna "ułomność" - program i tak wykonuje nasze polecenia szybko :)

Świetny wpis. Nadal jestem zachwycony interfejsem aplikacji - wydaje się bardzo minimalistyczny, a zarazem posiada takk dużą funkcjonalność.

alucosoftware   7 #9 18.02.2014 23:03

@Jaro070
Nie przepłacaj, jeśli nie zamierzasz zaopatrywać się w mikrofon studyjny. 15-20 zł na początek wystarczy :-)

@arlid
Wersjonowanie Spikit jest powolne, ale z każdą aktualizacją dodaję do programu całe pakiety usprawnień sugerowanych przez użytkowników oraz własne niespodzianki. Choć GUI nie różni się bardzo ogólnym wyglądem, diabeł tkwi w szczegółach. Poza znacznymi zmianami w mechanizmie Reguł głosowych (nowy zapis akcji, nowe typy akcji), sam edytor jest teraz bardziej funkcjonalny ;)

Listę ostatnich zmian (1.5 -> 1.5.1) podałem tu: http://www.spikit.pl/#comment-1222524255

Nie wiem czy zwróciłeś uwagę na komendy !Bang w Spikit. Całkiem dobrze to razem funkcjonuje (Spikit + DuckDuckGo).

arlid   14 #10 21.02.2014 19:25

@alucosoftware
Myślę, że brak zmian w GUI to plus - nie wiem jak program mógłby inaczej wyglądać. Teraz chcąc załóżmy dodać regułę wiem jak to zrobić - gdyby była zmiana GUI - możliwe, że trzeba by było się znów przyzwyczaić, szukać.

  #11 12.04.2015 19:17

Cześć, program nie rozpoznaje komend w Windows 10 Technical Preview, ktoś zna na to sposób? ;)