Blog (22)
Komentarze (619)
Recenzje (0)

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

@alucosoftwareOd zera do spikera - sterujemy komputerem za pomocą głosu cz. 117.02.2014 17:13

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.

Co to za napis na koszulce? ;)
Co to za napis na koszulce? ;)

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
Który zapis jest poprawny, po lewej czy po prawej stronie?
Który zapis jest poprawny, po lewej czy po prawej stronie?

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:

Zauważyłeś różnice w kolorze między poszczególnymi fragmentami Reguły głosowej?
Zauważyłeś różnice w kolorze między poszczególnymi fragmentami Reguły głosowej?

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.

Zwróć uwagę na brak separatora | tuż przed końcem listy!
Zwróć uwagę na brak separatora | tuż przed końcem listy!

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

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.