Zastosowania systemów rozpoznawania mowy do sterowania i komunikacji głosowej z urządzeniami mechatronicznymi



Podobne dokumenty
Systemy wbudowane. Paweł Pełczyński

WPROWADZENIE Mikrosterownik mikrokontrolery

SpeakUp click, czyli jak bezstresowo dogadać się z lampką?

dokument DOK wersja 1.0

Automatyka i Robotyka studia stacjonarne drugiego stopnia

Obługa czujników do robota śledzącego linie. Michał Wendland czerwca 2011

PROJECT OF FM TUNER WITH GESTURE CONTROL PROJEKT TUNERA FM STEROWANEGO GESTAMI

BLUETOOTH INSTRUKCJA PODŁĄCZENIA I KONFIGURACJI.

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

Politechnika Wrocławska

PROGRAMOWALNE STEROWNIKI LOGICZNE

WIZUALIZACJA DANYCH SENSORYCZNYCH Sprawozdanie z wykonanego projektu. Jakub Stanisz

Dokumentacja aplikacji Szachy online

Spis treści. Wykaz ważniejszych skrótów Wprowadzenie Rdzeń Cortex-M Rodzina mikrokontrolerów XMC

Sprawozdanie z projektu MARM. Część druga Specyfikacja końcowa. Prowadzący: dr. Mariusz Suchenek. Autor: Dawid Kołcz. Data: r.

Laboratorium Procesorów Sygnałowych

Universal MIDI controller. Uniwersalny sterownik MIDI

Przegląd rozwiązań z oferty firmy 4D Systems

Urządzenia zewnętrzne

Zastosowania ISD9160 ISD9160

Komunikujemy się z komputerem.

Systemy na Chipie. Robert Czerwiński

Efekty kształcenia dla kierunku studiów INFORMATYKA, Absolwent studiów I stopnia kierunku Informatyka WIEDZA

Laboratorium Komputerowe Systemy Pomiarowe

Wizualizacja stanu czujników robota mobilnego. Sprawozdanie z wykonania projektu.

prowadzący: mgr inż. Piotr Prystupiuk

Praca dyplomowa. Program do monitorowania i diagnostyki działania sieci CAN. Temat pracy: Temat Gdańsk Autor: Łukasz Olejarz

DOKUMENTACJA PROJEKTU

LEKCJA TEMAT: Zasada działania komputera.

IMPLEMENTATION OF THE SPECTRUM ANALYZER ON MICROCONTROLLER WITH ARM7 CORE IMPLEMENTACJA ANALIZATORA WIDMA NA MIKROKONTROLERZE Z RDZENIEM ARM7

REFERAT PRACY DYPLOMOWEJ

Pracownia Transmisji Danych, Instytut Fizyki UMK, Toruń. Instrukcja do ćwiczenia nr 10. Transmisja szeregowa sieciami energetycznymi

Efekty kształcenia na kierunku AiR drugiego stopnia - Wiedza Wydziału Elektrotechniki, Automatyki i Informatyki Politechniki Opolskiej

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

Zestaw głośnomówiący PARROT MKi9200PL2 Bezprzewodowy Bluetooth z 2,4" ekranem TFT. Współpracuje z ipodem oraz z iphonem. Utworzono : 28 styczeń 2017

Narzędzia uruchomieniowe dla systemów Embedded firmy Total Phase

PRUS. projekt dokumentacja końcowa

ZL9AVR. Płyta bazowa dla modułów ZL7AVR (ATmega128) i ZL1ETH (RTL8019)

Standard transmisji równoległej LPT Centronics

ActiveXperts SMS Messaging Server

Kod produktu: MP-BTM222-5V

WIZUALIZACJA I STEROWANIE ROBOTEM

Sterownik PLC ELP11R32-MOD Dokumentacja techniczna (ver. 1.1)

Instrukcja podłączenia i konfiguracji BLUETOOTH NX. Interfejs. (instrukcja dostępna także na ver

Biomonitoring system kontroli jakości wody

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

STEROWANIE GŁOSOWE MANIPULATOREM ELEKTROHYDRAULICZNYM

PUKP Programowanie urządzeń kontrolno-pomiarowych. ztc.wel.wat.edu.pl

Szybkie prototypowanie w projektowaniu mechatronicznym

Zagadnienia egzaminacyjne AUTOMATYKA I ROBOTYKA. Stacjonarne I-go stopnia TYP STUDIÓW STOPIEŃ STUDIÓW SPECJALNOŚĆ

Konspekt pracy inżynierskiej

Technika mikroprocesorowa. W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08

SYSTEMY CZASU RZECZYWISTEGO (SCR)

1.2. Architektura rdzenia ARM Cortex-M3...16

utrzymuje pamięć ustawień użytkownika i zaprogramowanych stacji, gdy główne zasilanie jest wyłączone.

Wykorzystanie usług chmurowych dla sterowania robotem mobilnym na przykładzie Amazon EC2

Szkolenia specjalistyczne

Instrukcja obsługi SafeIT - modułu zdalnego sterowania do sterowników kotłów CO firmy Foster v1.0

SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701. SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701.

ADVANCE ELECTRONIC. Instrukcja obsługi aplikacji. Modbus konfigurator. Modbus konfigurator. wersja 1.1

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

CYFROWY ANALIZATOR SIECI PRZEMYSŁOWYCH JAKO NARZĘDZIE DO DIAGNOSTYKI MAGISTRALI CAN

Projektowanie i symulacja systemu pomiarowego do pomiaru temperatury

CENTRALA STERUJĄCA SMART CONTROL

Opracowanie ćwiczenia laboratoryjnego dotyczącego wykorzystania sieci przemysłowej Profibus. DODATEK NR 4 Instrukcja laboratoryjna

DigiPoint mini Karta katalogowa DS 6.00

Sterownik PLC ELP11R32-BASIC Dokumentacja techniczna (ver. 1.0)

1. Opis aplikacji. 2. Przeprowadzanie pomiarów. 3. Tworzenie sprawozdania

Konfigurowanie modułu BK9050 firmy Beckhoff wprowadzenie

Instrukcja użytkownika Internetowej Platformy Edukacyjnej UPRP

INSTRUKCJA OBSŁUGI PROGRAMU INSTAR 1.0

Modularny system I/O IP67

Dodatkowo planowane jest przeprowadzenie oceny algorytmów w praktycznym wykorzystaniu przez kilku niezależnych użytkowników ukończonej aplikacji.

Szczegółowy Opis Przedmiotu Zamówienia

REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką

wsparcie przeciwpożarowe dla leśników i strażaków

System operacyjny System operacyjny

L.dz.: WETI /16/2014 Gdańsk, dn

Smart home managing by Ethernet micro server. Zarządzanie systemem inteligentnego domu za pomocą mikro serwera Ethernet. 1. Cele

Instrukcja obsługi pulpitu operatorskiego DCK (skrócona wersja)

Motorola Phone Tools. Krótkie wprowadzenie

MiniModbus 4DO. Moduł rozszerzający 4 wyjścia cyfrowe. Wyprodukowano dla. Instrukcja użytkownika

Rozproszony system zbierania danych.

DigiPoint Karta katalogowa DS 5.00

1. Prace rozwojowe usługi informatyczne w zakresie opracowania prototypu oprogramowania serwisowo-instalatorskiego dla systemu testowego

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

Rejestratory Sił, Naprężeń.

PROGRAM TESTOWY LCWIN.EXE OPIS DZIAŁANIA I INSTRUKCJA UŻYTKOWNIKA

Kurs programowania mikrokontrolerów ARM z rodziny Cortex-M3

Kod produktu: MP01105T

AN ON OFF TEMPERATURE CONTROLLER WITH A MOBILE APPLICATION

Politechnika Białostocka

Architektura komputerów

Zastosowania Robotów Mobilnych

Oprogramowanie specjalistyczne

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Cyfrowy rejestrator parametrów lotu dla bezzałogowych statków powietrznych. Autor: Tomasz Gluziński

Raport z budowy robota typu Linefollower Mały. Marcin Węgrzyn

Instrukcja do oprogramowania ENAP DEC-1

Transkrypt:

Zastosowania systemów rozpoznawania mowy do sterowania i komunikacji głosowej z urządzeniami mechatronicznymi Roman Regulski, Amadeusz Nowak Zakład Urządzeń Mechatronicznych, Politechnika Poznańska Streszczenie: Artykuł przedstawia przykłady wykorzystania systemów automatycznego rozpoznawania mowy do budowy głosowych interfejsów typu człowiek-maszyna. W artykule opisano sposób działania takich aplikacji pod kątem sterowania i komunikacji głosowej. W następnej części przedstawiono koncepcje i budowę systemu rozpoznawania mowy do komunikacji z 32-bitowym modułowym sterownikiem pralki. Słowa kluczowe: automatyczne rozpoznawanie mowy, sterowanie głosowe, interfejs człowiek-maszyna, sterownik pralki 1. Wprowadzenie Obecnie systemy rozpoznawania mowy najbardziej rozpowszechnione są jako programy komputerowe. Rozwiązania tego typu mogą np. uwolnić użytkownika komputera od posługiwania się myszką, a w wielu przypadkach nawet klawiaturą. Systemy mówiące można także wprowadzać do urządzeń sprzętu gospodarstwa domowego jak również w zastosowaniach przemysłowych. Urządzenia mechatroniczne, takie jak np.: robot, obrabiarka, transporter, mogłyby być w łatwy sposób sterowane głosem zamiast sterowania z użyciem skomplikowanych języków programowania. Istniejące rozwiązania w zakresie systemów rozpoznawania mowy oparte na zaawansowanych algorytmach zapewniają poprawność na poziomie ponad 90 %. Ich przykłady można znaleźć także w Polsce, gdzie system o nazwie Primespeech został zastosowany jako narzędzie w internetowym portalu głosowym, w którym stosuje się głosowe wydawanie poleceń, a generowane informacje są przekazywane użytkownikowi za pomocą syntezatora mowy. Wytrenowanie sieci neuronowych bardzo dużą liczbą próbek sygnałów dźwiękowych pozwoliło na osiągnięcie wysokiej skuteczności rozpoznawania mowy. System głosowy wdrożono również w Zarządzie Transportu Miejskiego w Warszawie oraz na Giełdzie Papierów Wartościowych [1]. Korzyści z zastosowania systemów ASR dostrzeżono także w branży motoryzacyjnej. Przykładem zastosowania tej technologii jest system głosowy Blue&Me koncernu Fiat. Kierowca auta może sterować radiem lub podłączonym telefonem komórkowym wypowiadając określone komendy. Może on wybrać numer telefonu, odebrać połączenie, czy też zmienić odtwarzany utwór muzyczny. Podobne rozwiązania wprowadzono w samochodach firmy Mercedes-Benz, w których możliwe jest dodatkowo sterowanie nawigacją satelitarną. Wystarczy głosowo podać nazwę miejscowości, a system sam wyznaczy trasę dojazdu. Dzięki temu wzrasta bezpieczeństwo oraz komfort użytkowania pojazdu. Wydawanie komend głosowych w telefonach komórkowych jest już standardem. Można głosowo wybrać kontakt z książki telefonicznej, aktywować połączenie albo podać słowo do wyszukiwarki internetowej. Wzrost skuteczności i szybkości działania systemów generacji oraz rozpoznawania mowy pozwolił na ich zastosowanie w takich aplikacjach i dziedzinach jak np.: militaria (polecenia głosowe w samolotach, helikopterach, np. F16 VISTA), automatyczna transkrypcja tekstu (Speech to text), interaktywne systemy informacyjne (PrimeSpeech, portale głosowe), urządzenia mobilne (telefony, smartfony, tablety), robotyka (Cleverbot systemy ASR w połączeniu ze sztuczną inteligencją), motoryzacja (sterowanie podzespołami auta bez użycia rąk, np. Blue&Me), aplikacje domowe (systemy typu inteligentny dom). Z punktu widzenia mechatroniki, robotyki, automatyki systemy głosowe nie są jeszcze popularne, lecz producenci urządzeń w tych branżach zaczynają dostrzegać zalety takich rozwiązań [2]. Przykładem może być technologia Mazak Voice Adviser firmy Mazak [3]. Pomiary Automatyka Robotyka nr 2/2013 467

Rys. 1. Głosowe sterowanie gniazdem obróbkowym [4] Fig. 1. Manufacturing cells voice control [4] Urządzenie wyposażone w ten system informuje operatora komendami głosowymi o dokonanym wyborze oraz doradza podczas manualnej pracy maszyny. Funkcja wydawania poleceń głosowych przyczynia się do znacznej redukcji problemów związanych z błędami operatora. W laboratoriach naukowych prowadzone są badania implementacji systemów rozpoznawania mowy do sterowania i komunikacji głosowej. Jednym z przykładów zastosowania komunikacji człowiek-maszyna jest gniazdo obróbkowe. Użytkownik może wydawać polecenia głosowe poszczególnym urządzeniom, podczas gdy jego ręce mogą być zajęte wykonywaniem innych czynności [4, 5]. Budowę systemu przedstawiono na rysunku 1. W pracach [6, 7, 8] autor przedstawił koncepcję komunikacji głosowej robota przemysłowego, wykorzystanego do montażu elementów oraz spawania. Poruszył także zagadnienia programowania robotów z wykorzystaniem komend głosowych. W ramach projektu stworzono oprogramowanie komputerowe z wykorzystaniem języka C# do rozpoznawania i generacji mowy, używając bibliotek Microsoft Speech SDK 5.1. Na rysunku 2 przedstawiono robota przemysłowego sterowanego przez operatora za pomocą komend głosowych z wykorzystaniem mikrofonu. Interesującym przykładami są też próby sterowania robotami mobilnymi z wykorzystaniem ASR. Robot Godot [9, 10] wyposażonymi w system obustronnej komunikacji głosowej, który zapewnia porozumiewanie się robotem z wykorzystaniem naturalnego języka. Przykładowo robot podaję swoją pozycję na komendę Where are you?. W pracy [11] wykorzystano smartfon z systemem Android do sterowania robotem mobilnym. W urządzeniu zaimplementowano rozpoznawanie głosowe komend z wykorzystaniem systemu ASR Google. 2. Systemy ASR 2.1. Ogólna budowa systemów ASR System automatycznego rozpoznawania mowy ASR (ang. Automatic Speech Recognition) jest rozbudowanym obiektem składającym się z kilku bloków (rys. 3), którego głównym celem jest przetworzenie sygnału mowy na tekst bądź inną użyteczną informację. Problemem, na jaki napotykają systemy ASR jest wydobycie z sygnału mowy użytecznych danych i skojarzenie ich z konkretnym słowem, które dla człowieka ma określone znaczenie. Wypowiadane dźwięki za każdym razem są inne. Zmienność sygnału mowy jest naturalną jego cechą, dzięki której na przykład rozpoznajemy akcent czy intonację. Zbudowanie systemu rozpoznającego mowę nie jest łatwe, lecz możliwe. Rys. 2. Robot przemysłowy sterowany komendami głosowymi [6] Fig. 2. Industrial robot controlled by voice commands [6] Rys. 3. Ogólny schemat systemu rozpoznawania mowy Fig. 3. General scheme of speech recognition system Każdy z elementów systemu rozpoznawania mowy ma określone zadanie. Należy mieć na uwadze, że poszczególne bloki są od siebie silnie zależne. Źle zarejestrowany lub błędnie przetworzony sygnał może skutkować dostarczeniem nieużytecznych parametrów. Ma to szczególne znaczenie w procesie uczenia systemu, kiedy to system ASR tworzy wzorce i modele, które wykorzystuje w następnym 468

etapie rozpoznawania. Na podstawie przetworzonego sygnału i jego parametrów powstaje model akustyczny, który będzie skojarzony z modelem języka. W ten sposób system uzyskuje informację o tym, jaką informację lingwistyczną niesie ze sobą sygnał mowy. Należy mieć na uwadze, że system rozpoznawania mowy może działać w oparciu o małą bądź dużą liczbę wzorców, co determinuje wielkość słownika, z jakim system współpracuje. Mogą to być małe słowniki w przypadku systemów rozpoznających izolowane słowa bądź komendy, jak również duże bazy danych zawierające odpowiednik zbioru językowego oraz uwzględniające model językowy (gramatykę). Na złożoność i wielkość systemu ASR wpływa wiele czynników, takich jak: liczba mówców (jeden, wielu), liczba rozpoznawanych słów, rodzaj mowy (izolowane komendy, mowa ciągła), warunki pracy systemu (zakłócenia, brak zakłóceń), wykorzystany sprzęt (komputer PC, mikrokontroler, mikrofon). Wyżej wymieniono najważniejsze aspekty brane pod uwagę przy budowie systemu ASR. Oczywiście uwarunkowań jest więcej, istotnym czynnikiem może być również czas reakcji systemu. 2.2. Różnorodność systemów ASR 2.2. Różnorodność systemów ASR Różnorodność systemów ASR wynika celów, jakie dany Różnorodność systemów ASR wynika z celów, jakie dany system ma spełnić, stąd coraz częściej systemy ASR system ma spełnić, stąd coraz częściej systemy ASR optymalizuje się pod dane zastosowanie. Głównym zadaniem ASR jest zamiana mowy na tekst, którego znaczenie optymalizuje się pod dane zastosowanie. Głównym zadaniem ASR jest zamiana mowy na tekst, którego znaczenie można łatwo zweryfikować. systemach sterowania, można łatwo zweryfikować. W systemach sterowania, urządzeniach mechatronicznych systemach automatyki można zastosować system rozpoznawania, którego w urządzeniach mechatronicznych i w systemach automatyki można zastosować system rozpoznawania, którego celem nadrzędnym będzie rozpoznanie komendy, następnie wykonanie operacji nią związanej. tym przypadku celem nadrzędnym będzie rozpoznanie komendy, a następnie wykonanie operacji z nią związanej. W tym przypadku wyjściowy tekst systemu ASR posłuży do klasyfikacji wyjściowy tekst systemu ASR posłuży do klasyfikacji komendy podjęcia decyzji, co ma wykonać. komendy i podjęcia decyzji, co ma wykonać. Zastosowania mikrokontrolerów takich systemach Zastosowania mikrokontrolerów w takich systemach nie budzą zdziwienia. Powstaje wiele nowych rozwiązań nie budzą zdziwienia. Powstaje wiele nowych rozwiązań systemów ASR dedykowanych do zastosowania urządzeniach wyposażonych mikroprocesor. Zbudowanie systemów ASR dedykowanych do zastosowania w urządzeniach wyposażonych w mikroprocesor. Zbudowanie systemu rozpoznającego mowę wykorzystaniem takiej systemu rozpoznającego mowę z wykorzystaniem takiej jednostki jest trudniejsze niż np. napisanie programu na jednostki jest trudniejsze niż np. napisanie programu na komputerze PC. Powodem tego jest konieczność uwzględnienia możliwości sprzętowych danego układu, oraz opty- komputerze PC. Powodem tego jest konieczność uwzględnienia możliwości sprzętowych danego układu, oraz optymalizacji oprogramowania pod tym kątem. W przypadku malizacji oprogramowania pod tym kątem. przypadku programów pracujących np. na komputerach wyposażonych system operacyjny, napisany skompilowany programów pracujących np. na komputerach wyposażonych w system operacyjny, napisany i skompilowany program będzie mógł działać na różnych jednostkach program będzie mógł działać na różnych jednostkach sprzętowych. sprzętowych. Dzięki licznym badaniom prowadzonym na przestrzeni Dzięki licznym badaniom prowadzonym na przestrzeni lat dokonano wielu optymalizacji algorytmów wykorzystywanych systemach ASR. Uwzględniając przy tym rozwój lat dokonano wielu optymalizacji algorytmów wykorzystywanych w systemach ASR. Uwzględniając przy tym rozwój dziedzinach technik komputerowych oraz mikroproceso- w dziedzinach technik komputerowych oraz mikroproceso- rów, można zauważyć wzrost zastosowań systemów automatycznego rozpoznawania mowy typu wbudowanego. Warto podkreślić, że takie aplikacje przystosowane są do konkretnego zadania potrafią osiągnąć skuteczność na poziomie ponad 95 %, przy czym rzeczywisty czas rozpoznania nie przekracza sekundy, co można uznać za rozpoznawanie mowy w czasie rzeczywistym. W systemach mikroprocesorowych wykorzystuje się te same algorytmy, które są implementowane w dużych programach komputerowych. Mikrokontrolery wyposażone są w wszelkie narzędzia sprzętowe, których wymagają systemy ASR. Standardem wyposażenia mikrokontrolerów są przetworniki ADC, które wykorzystuje się do rejestracji sygnału z mikrofonu oraz kontrolery PWM, które wykorzystuje się do generacji dźwięku. Istnieją również procesory sygnałowe DSP, które są zoptymalizowane pod kątem realizacji algorytmów przetwarzania sygnałów. Zastosowania systemów ASR typu wbudowanego można znaleźć w wielu dziedzinach. Takie rozwiązania są standardem np. w nawigacjach samochodowych oraz w sterowaniu podzespołami samochodu. Przetwarzanie języka naturalnego (ang. natural language processing) to jedna z dziedzin mocno powiązanych z systemami rozpoznawania mowy. W dążeniu do porozumiewania się z urządzeniami wykorzystuje się naturalny język dla mowy potocznej człowieka, aby umożliwić jego rozmowę np. z komputerem. Takie podejście może być wykorzystane w nowych innowacyjnych systemach, w urządzeniach mechatronicznych, urządzeniach powszechnego użytku, czy też w szeroko rozumianym sterowaniu. Jednymi z ciekawszych, stworzonych do tego celu narzędzi są rozwiązania firmy Sensory Inc. Oferuje ona rodzinę naturalnych procesorów mowy (ang. Natural Language Processor NLP). Są to procesory dedykowane do wbudowywania w różnorodnych urządzeniach, w których chcemy zastosować mowę jako sygnał sterujący. Procesory NLP są niewątpliwie warte zainteresowania, ze względu na możliwości i elastyczność ich struktury, co pozwala dostosować je do żądanej aplikacji. Po procesie weryfikacji oprogramowania otrzymujemy komponent elektroniczny z gotowym systemem ASR, który można wykorzystać w dowolnym urządzeniu. Dzięki zastosowaniu tego typu procesorów można stosunkowo szybko zbudować i zastosować zaawansowany system mówiący w dowolnym urządzeniu. Google stworzyło system automatycznego rozpoznawania mowy na potrzeby wprowadzania tekstu w swoich wyszukiwarkach. Początkowo rozwiązanie było przeznaczone dla urządzeń mobilnych typu smartfon czy tablet, lecz szybko znalazło zastosowanie w komputerach klasy PC. System ma za zadanie ułatwić wprowadzanie fraz wyszukiwania z wykorzystaniem poleceń głosowych. Użytkownik telefonu może podać hasło wyszukiwania za pomocą mowy zamiast wprowadzać je z klawiatury, co jest uciążliwe w przypadku długich fraz. Innowacyjne podejście do rozpoznawania mowy ze strony Google polega na tym, że urządzenie końcowe systemu (np. smartfon) posiada aplikację kliencką, której zadanie polega jedynie na zebraniu próbek dźwięku i interpretacji wyniku rozpoznania. System automatyczne- Pomiary Automatyka Robotyka nr 2/2013 469

go rozpoznawania mowy znajduje się na zewnętrznych serwerach o dużej mocy obliczeniowej. Próbki dźwięku zostają przesłane do serwera w celu rozpoznania, a serwer odsyła wyniki w postaci tekstu do urządzenia. Dzięki takiemu podejściu, system rozpoznawania mowy dostępny jest dla wielu urządzeń za pośrednictwem połączenia Internetowego. Urządzenia wykorzystujące ten system nie są obciążone obliczeniami związanymi z przetwarzaniem i rozpoznaniem mowy. Takie rozwiązanie umożliwia zbudowanie dużej bazy słownikowej dla systemu, która znajduje się tylko po stronie serwera. Wadą tego typu architektury jest konieczność zapewnienia stałego połączenia internetowego pomiędzy klientem a serwerem. Lecz w dzisiejszych czasach dostęp do Internetu nie jest problemem. Ideę rozpoznawania mowy z systemem ASR na zewnętrznym serwerze przedstawiono na rysunku 4. Rys. 4. Idea zastosowania systemu ASR na zewnętrznym serwerze Rys. 4. Idea zastosowania systemu ASR na zewnętrznym serwerze Fig. 4. The idea of using ASR system on an external server Fig. 4. The idea of using ASR system on an external server 3. Projekt implementacji systemu ASR 3 P j kt i l t ji t ASR 3.1. 3. Projekt Opis projektu implementacji systemu ASR W ramach niniejszej pracy i realizacji projektu Inteligentne sterowniki pralek [12], zbudowano sterownik będący 3.1. Opis projektu W interfejsem ramach niniejszej dla urządzenia pracy i mechatronicznego, realizacji projektu jakim Inteligentne pralka. sterowniki Głównym pralek zadaniem [12], zbudowano podczas budowy sterownik urządzenia będący jest interfejsem było zaimplementowanie dla urządzenia obsługi mechatronicznego, rozpoznawania jakim komend jest głosowych pralka. Głównym do sterowania zadaniem mową. podczas Realizując budowy ten urządzenia cel, wykorzystano było zaimplementowanie systemem ASR firmy obsługi Google, rozpoznawania który zaimplementowano głosowych w do oprogramowaniu sterowania mową. przeznaczonym Realizując ten dla cel, telefonu wyko- komend komórkowego rzystano systemem typu ASR smartfon firmy oraz Google, komputera który zaimplementowano projektu w oprogramowaniu wykonano również przeznaczonym moduł w postaci dla telefonu płytki PC. W ramach elektronicznej komórkowego PCB. typu smartfon oraz komputera PC. W ramach Na projektu rysunku wykonano 5 przedstawiono również schemat moduł blokowy w postaci interfejsu elektronicznej na tle innych PCB. modułów wchodzących w skład głównego płytki sterownika Na rysunku pralki. 5 przedstawiono Głównym elementem schemat blokowy urządzenia interfejsu na tle innych zapewniający modułów komunikację wchodzących z płytą w skład główną głównego pral- jest sterownik sterownika ki po magistrali pralki. RS-485 Głównym oraz komunikację elementem urządzenia bezprzewodową jest sterownik z telefonem zapewniający i komputerem komunikację PC w technologii z płytą główną Bluetooth. pral- Takie po magistrali rozwiązanie RS-485 pozwala oraz sterować komunikację pralką bezprzewodową za pomocą z wybranego telefonem urządzenia. i komputerem Każde PC z urządzeń w technologii posiada Bluetooth. dedykowaną Takie aplikację, rozwiązanie która pozwala umożliwia sterować interpretacje pralką za pomocą poleceń głosowych. wybranego urządzenia. Tego typu interfejsy Każde z urządzeń są interesującą posiada alternaty- dedykowaną aplikację, która umożliwia interpretacje poleceń głosowych. Tego typu interfejsy są interesującą alternaty- wą dla klasycznych rozwiązań z wykorzystaniem przycisków lub pokręteł w urządzeniach. Rys. 5. Budowa modułowego sterownika pralki Fig. 5. Structure of washing machine controller Wykonany sterownik może równolegle współpracować z interfejsem LCD lub całkowicie go zastąpić. Innowacyjnym Wykonany podejściem sterownik jest także może zaimplementowana równolegle współpracować komunikacja interfejsem bezprzewodowa LCD lub umożliwiająca całkowicie go zastąpić. połączenie Innowacyj- pralki z nym z telefonem podejściem lub komputerem jest także zaimplementowana PC. Dzięki temu użytkownik komunikacja bezprzewodowa uruchomić i obserwować umożliwiająca proces prania połączenie na odległość. pralki może z telefonem Za pomocą lub komputerem komend głosowych PC. Dzięki można temu wybrać użytkownik program, może uruchomić ustawić parametry, i obserwować uruchomić proces prania pranie na oraz odległość. je zatrzymać. Za pomocą Wykonanie komend każdego głosowych polecenia można można wybrać obserwowagram, na ustawić wyświetlaczu parametry, lub monitorze. uruchomić Dodatkowo pranie oraz użytkow- je za- pronitrzymać. słyszy Wykonanie potwierdzenia każdego głosowe, polecenia gdyż pralka można wyposażona obserwować w na interfejs wyświetlaczu głosowy, lub który monitorze. odtwarza Dodatkowo komendy użytkow- za po- jest mocą nik słyszy głośnika. potwierdzenia Przykładowo, głosowe, w gdyż odniesieniu pralka wyposażona do klasycznych jest w sterowników interfejs głosowy, pralek, który aby odtwarza uruchomić komendy pranie za należy pomocą głośnika. parametry Przykładowo, za pomocą w oznaczonych odniesieniu do przycisków, klasycz- wybrać używając nych sterowników komunikacji pralek, głosowej aby wystarczy uruchomić zaś pranie powiedzieć należy pralce wybrać komendy, parametry np.: za temperatura pomocą oznaczonych 40, obroty przycisków, 600, program używając bawełna. komunikacji Sterownik głosowej wystarczy rozpozna zaś powiedzieć komendy i pralce poinformuje komendy, użytkownika np.: temperatura o wykonaniu 40, poleceń obroty 600, za pomocgram zwrotnych bawełna. potwierdzeń Sterownik głosowych. rozpozna Taka obsługa komendy jest pro- bardzo i poinformuje intuicyjna. użytkownika Użytkownik o wykonaniu nie jest zmuszony poleceń za do pomocą zwrotnych instrukcji potwierdzeń sterowania głosowych. w celu Taka zapoznania obsługa się jest ze przeglądania znaczeniem bardzo intuicyjna. np. ikon Użytkownik graficznych nie odpowiadającym jest zmuszony do danym przeglądania instrukcji prania. sterowania Ogromną w część celu pracy zapoznania w projekcie się ze programom poświęcono znaczeniem np. oprogramowaniu. ikon graficznych Moduł odpowiadającym interfejsu zawiera danym implementację programom prania. komunikacji Ogromną RS-485 część z pracy protokołem w projekcie MOD- BUS poświęcono ASCII wykorzystywanej oprogramowaniu. do Moduł przesyłu interfejsu informacji zawiera między implementację sterownikiem komunikacji a płytą główną RS-485 pralki. z protokołem Płyta główna MODpralki BUS ASCII jest urządzeniem wykorzystywanej typu Master, do przesyłu a interfejs informacji typu Slave. między sterownikiem podejście pozwala a płytą na zarządzanie główną pralki. arbitrażem Płyta przesyłu główna Takie danych. pralki jest Komunikacja urządzeniem bezprzewodowa typu Master, a interfejs w technologii typu Slave. Bluetooth Takie podejście pozwala pozwala na połączenie na zarządzanie pomiędzy arbitrażem dowolnymi przesyłu urządzeniami danych. Komunikacja posiadającymi bezprzewodowa taki adapter. Zdecydowano w technologii się Bluetooth rozwiązanie, pozwala ponieważ na połączenie komputery pomiędzy i smartfony dowolnymi są urzą- stan- na dardowo dzeniami wyposażone posiadającymi w moduły taki adapter. Bluetooth. Zdecydowano Oprogramowanie to rozwiązanie, na komputer ponieważ PC napisano komputery w języku i smartfony C#, w są którym stan- się na zaimplementowano dardowo wyposażone obsługę w moduły rejestracji Bluetooth. głosu Oprogramowanie na komputer internetową PC napisano oraz w komunikację języku C#, w szeregową którym (z mikrofonu), komunikację z zaimplementowano wykorzystaniem modułu obsługę Bluetooth. rejestracji głosu (z mikrofonu), komunikację internetową oraz komunikację szeregową z wykorzystaniem modułu Bluetooth. 470

Podobne rozwiązania zastosowano w aplikacji dla smartfonu na platformę Android, która została napisana w języku Java. Moduł elektroniczny sterownika zawiera 32-bitowy mikrokontroler STM32, zaprogramowany w języku C. W ramach wyżej wymienionego oprogramowania zwrócono dużą uwagę na ich zgodność i niezawodność. Ramki komunikacyjne zawierają sumy kontrolne wykorzystywane do sprawdzenia poprawności przesyłu danych. Celem tego zabiegu jest wyeliminowanie błędnej pracy interfejsu. Rys. 6. Komunikacja głosowa z wykorzystaniem sterownika Fig. Rys. 6. 6. Voice Komunikacja communication głosowa using z wykorzystaniem driver sterownika Fig. 6. Voice communication using driver Na rysunku 6 przedstawiono zrealizowaną koncepcję wykorzystania Na rysunku komunikacji 6 przedstawiono głosowej zrealizowaną do sterowania koncepcję i porozumiewania wykorzystania się komunikacji z pralka za głosowej pomocą do mowy. sterowania Interfejsem i porozumiewania się jest z smartfon pralka za albo pomocą komputer. mowy. W Interfejsem zależności bezpośrednim bezpośrednim od wyboru, dane jest urządzenie smartfon albo rozpoznaje komputer. komendę W zależności i przesyła polecenie wyboru, dane do sterownika, urządzenie który rozpoznaje pośredniczy komendę w wymianie i przesy- od danych ła polecenie między do sterownika, wybranym urządzeniem który pośredniczy a pralką. w wymianie Na podstawie danych rozpoznania między wybranym dokonywana urządzeniem jest interpretacja a pralką. Na komendystawie a rozpoznania następnie podejmowana dokonywana jest interpretacja decyzja o wysłaniu komen- pod- instrukcji dy, a następnie do sterownika podejmowana głównego jest pralki, decyzja który o wysłaniu ustawia dany instrukcji parametr. do sterownika Po tej operacji głównego następuje pralki, potwierdzenie który ustawia jej wykonania. dany parametr. Sprzężenie Po tej operacji zwrotne następuje polega potwierdzenie podaniu komendy wykonania. głosowej Sprzężenie z wykorzystaniem zwrotne polega interfejsu na podaniu głosowego, komen- jej a dy w urządzeniu głosowej z zostaje wykorzystaniem wyświetlona interfejsu informacja głosowego, o poprawności a w urządzeniu ustalenia zostaje danej wartości. wyświetlona Jest informacja to najbardziej o poprawności ustalenia z punktu danej widzenia wartości. człowieka Jest to realizacja najbardziej interfejsu natu- naturalna człowiek maszyna. ralna z punktu widzenia człowieka realizacja interfejsu człowiek maszyna. Podsumowując ogólny opis projektu, można w nim wyróżnić Podsumowując trzy główne ogólny elementy, opis projektu, które wchodzą można w w skład nim realizacji wyróżnić niniejszej trzy główne pracy. elementy, Są to: które wchodzą w skład realizacji sterownik niniejszej w postaci pracy. modułu Są to: elektronicznego, aplikacja sterownik dla w postaci smartfonu modułu z systemem elektronicznego, Android, aplikacja dla komputerowa smartfonu dla z systemem środowiska Android, MS Windows. aplikacja komputerowa dla środowiska MS Windows. 3.2. Sterownik 3.2. Sterownik Pierwszym etapem było wykonanie projektu elektroniki modułu Pierwszym sterownika. etapem było Ze względu wykonanie ilość projektu zadań, elektroniki jakie ma spełniać, modułu sterownika. zdecydowano Ze względu się wykorzystać na ilość zadań, mikrokontroler jakie ma z spełniać, 32-bitowy. zdecydowano Schemat oraz się płytkę wykorzystać PCB zaprojektowano mikrokontroler z 32-bitowy. wykorzystaniem Schemat programu oraz płytkę EAGLE. PCB Większość zaprojektowano elementów z wykorzystaniem przeznaczonych programu jest do EAGLE. montażu Większość powierzchniowego, elementów dlatego przeznaczonych względu na jest dużą do ilość montażu połączeń powierzchniowego, i wysoki stopień skomplikowania dlatego ze względu rozmieszczenia na dużą ilość połączeń elementów i wysoki zdecydowano stopień się skomplikowania na wykonanie rozmieszczenia płytki dwustronnej. elementów zdecydowano się na wykonanie płytki dwustronnej. Na rysunku 7 przedstawiono wykonany sterownik. Podstawowymi elementami wchodzącymi w jego skład są: mikrokontroler STM32F103VBT6, moduł Bluetooth BTM-222, moduł komunikacji RS-485, układ zasilania ze stabilizatorem. Układ STM32F103VBT6 jest 32-bitowym mikrokontrolerem z rdzeniem ARM Cortex -M3. Główne parametry i peryferia, w które go wyposażono to: taktowanie do 72MHz, pamięć Flash 128 kb, interfejsy komunikacyjne (USART x3, I 2 C x2, CAN, USB) 7 timerów, przetworniki ADC, PWM, DMA, 80 wejść/wyjść generalnego przeznaczenia. Układ BTM-222 jest modułem Bluetooth, który może pracować w trybie Master lub Slave. Konfigurację układu realizuje się z wykorzystaniem komend AT. Interfejsem komunikacyjnym do wymiany danych pomiędzy modułem a innym urządzeniem jest transmisja szeregowa UART. Transmisja Bluetooth realizowana jest z protokołem SPP, co pozwana na wykorzystanie modułu jak adaptera szeregowego. Moduł komunikacyjny RS-485 jest układem zaprojektowanym przez wykonawców głównego sterownika pralki. Opary jest na układzie ADM2582. W sterowniku zaimplementowano jego obsługę. Do realizacji obustronnej komunikacji z płytą główną pralki oraz komunikacji Bluetooth wykorzystano dwa oddzielne interfejsy UART mikrokontrolera. Pozwoliło to na bezkonfliktowe, niezależne przesyłanie danych. Przesył danych jest głównym zadaniem układu, który można traktować jako most komunikacyjny pomiędzy telefonem, komputerem a pralką. 3 3 Rys. 7. Wykonany sterownik do komunikacji głosowej 1 mikroprocesor Wykonany STM32, sterownik 2 do moduł komunikacji komunikacyjny, głosowej 31 moduł mikro- Rys. 7. Bluetooth procesor STM32, 2 moduł komunikacyjny, 3 moduł Fig. 7. Voice Bluetooth communication using driver 1 microcontroller Fig. 7. STM32, Voice communication 2 communication using driver module, 1 3 microcontroller Bluetooth module STM32, 2 communication module, 3 Bluetooth module 2 2 1 1 Pomiary Automatyka Robotyka nr 2/2013 471

Oprogramowanie sterujące mikrokontrolerem zostało napisane w języku C z wykorzystaniem środowiska programistycznego Ride 7. Do obsługi urządzeń peryferyjnych posłużono się bibliotekami Standard Peripheral Library przeznaczonymi dla mikrokontrolera STM32. Ułatwiło to i skróciło proces programowania urządzenia. Program główny ma za zadanie sterować przepływem danych pomiędzy telefonem, komputerem a płytą główną sterownika pralki poprzez moduł. Zaimplementowano w nim obsługę komunikacji RS-485 z protokołem MODBUS. W tym celu zaadaptowano biblioteki zawierające odpowiednie funkcji powstałe na potrzeby projektu Inteligentne sterowniki pralek. Komunikacja realizowana jest przy pomocy buforów nadawczo odbiorczych. Bufory odbiorcze znajdują się przerwaniach obsługujących dane interfejs USART. Wysyłanie realizowane jest w pętli głównej programie. Dane są kontrolowane za pomocą sumy kontrolnej. Biblioteki MODBUS zawierają zaawansowaną obsługę błędów i sterują automatycznie transmisją pomiędzy układami Master-Slave. 3.3. Program na platformę Android Po zapoznaniu się z możliwościami i sposobem programowania na platformę Android zdecydowano o jej wyborze do zrealizowania jednego z celów pracy, jakim było napisanie oprogramowania do współpracy telefonu ze sterownikiem pralki. Stworzony program stanowi bezpośredni interfejs, który może być uruchomiony na dowolnym urządzeniu wyposażonym w system Android, takim jak smartfon lub tablet. Aplikację napisano w języku Java z wykorzystaniem programu Eclipse i zestawu bibliotek Android SDK. Graficznie program zgodny jest z interfejsem LCD wchodzącego w skład modułowego sterownika pralki. Co różnicy stanowi możliwość sterowania aplikacją za pomocą mowy. Struktura aplikacji jest typowa dla urządzeń wbudowanych czy mobilnych. Wykorzystując dotykowy ekran LCD, użytkownik ma możliwość wyboru danej opcji w postaci wirtualnego przycisku. Po wyborze następuje wyświetlenie odpowiedniego menu. Podczas pisania aplikacji do jej testowania wykorzystano smartfon Galaxy S Plus I9001. Pozwoliło to na sprawdzenie wszystkich zaimplementowanych funkcji w aplikacji takich jak rozpoznawanie mowy oraz komunikacja Bluetooth. Działanie aplikacji w dalszej części rozdziału zostanie przedstawione na zrzutach ekranu. Po uruchomieniu aplikacji sprawdzany jest stan zasobów telefonu takich jak Bluetooth, czy możliwość wykorzystania rozpoznawania mowy Google. Jeśli moduł komunikacji bezprzewodowej jest wyłączony, aplikacja żąda jego włączenia, gdyż jest on wykorzystywany w programie do przesyłu danych. Po poprawnym załączeniu ukazuje się ekran powitalny (rys. 8). W przypadku wyboru trybu głosowego użytkownik za pomocą dotyku użytkownik może jedynie aktywować mikrofon. Parametry wprowadza się za pomocą komend głosowych. Podczas gdy mikrofon jest aktywny urządzenie automatycznie wykrywa mowę co jest sygnalizowane na ekranie (rys. 9). W momencie wykrycia początku i końca wypowiedzi próbki dźwięku wysyłane są do serwera w celu 472 rozpoznania. Na podstawie odpowiedzi serwera weryfikowana jest zgodność rozpoznania komendy. Poprawność jest sygnalizowana poprzez zaznaczenie znaku obok danego parametru oraz ustalenie jego wartości. Rozpoczęcie prania następuje, jeśli wszystkie wartości parametrów zostaną ustalone. Po rozpoczęciu programu wyświetlany jest ekran końcowy, wspólny dla wszystkich trybów. Poprawność przykładowego rozpoznania komend przedstawiono na rysunku 10. Analizując rysunki 9 oraz 10 można dojść do wniosku, że ustalenie parametrów za pomocą interfejsu głosowego jest bardziej intuicyjne i mniej energochłonne niż w przypadku trybów dotykowych, w których użytkownik musi ustalić je na kolejnych ekranach. Warto podkreślić, że za pomocą mowy można wprowadzić kilka parametrów jednocześnie. Przykładowe komendy interpretowane przez sterownik to: Temperatura: o 40, 50, 60, Obroty: o od 0 do 1200, Zabrudzenie: o małe, średnie, duże, Płukanie: o jeden, dwa, trzy, Opóźnienie: o zero, 30, 60, Program: o Bawełna, Jedwab. Podczas wykonywania programu prania sterownik cały czas komunikuje się z aplikacją z pomocą Bluetooth. Następuje cykliczna wymiana danych, co pozwala na sterowania pralką w czasie rzeczywistym, można w każdej chwili dokonać pauzy bądź zatrzymania programu. Rys. 8. Ekran powitalny Fig. 8. Welcome screen Aplikacja do sterowania głosowego wykazuje się dużą poprawnością rozpoznawania komend z względu na ich małą liczbę. Podawanie parametrów z jej wykorzystaniem jest bardzo efektywne. Dzięki bezprzewodowemu połączeniu można komunikować się ze sterownikiem na odległość, co zapewnia moduł Bluetooth. Jest to dobra alternatywa dla klasycznych interfejsów, w których żeby skontrolować proces prania należy się udać do pomieszczenia, gdzie znajduje się pralka. W przypadku zaproponowanego i zrealizowanego rozwiązania użytkownik może posiadać informację w kieszeni. Aplikacja na platformę Android

może być dostosowana do potrzeb i uruchomiona na różnej klasy urządzeniach. Jedyną wadą interfejsu jest konieczność zapewnienia dostępu do Internetu, gdyż wykorzystany system ASR Google znajduje się na zewnętrznym serwerze. Jednak w dzisiejszych czasach nie jest to duży problem, gdyż prawie każde gospodarstwo domowe posiada dostęp do światowej sieci WWW. Rys. 9. Wykrycie mowy Fig. 9. Speech detection Rys. 10. Rozpoznanie komend Fig. 10. Command recognition 4. Podsumowanie W artykule przedstawiono nowatorskie podejście do budowy interfejsów wykorzystujących systemy automatycznego rozpoznawania mowy oraz przykłady ich zastosowań. Podsumowując, można zauważyć, że systemy rozpoznawania mowy będą wkraczać w coraz to nowsze dziedziny, zarówno techniki jak i życia codziennego. Duży postęp technologiczny, jak i coraz skuteczniejsze algorytmy spowodują, że innowacyjne systemy wyposażone w interfejsy człowiek-maszyna będą pozwalały na kontakt przypominający rozmowę między ludźmi. Właśnie do takiej formy komunikacji ludzie są bardzo dobrze przygotowani. Ułatwi ona sterowanie, kontrolowanie i zarządzenie maszynami czy urządzeniami technicznymi. Dlatego warto podjąć prace nad wprowadzaniem techniki komunikacji głosowej człowieka z obrabiarką, robotem itp. Pozwoli to znacząco uprościć powszechnie dzisiaj stosowane interfejsy człowiekmaszyna typu panele i pulpity operatorskie. Wprowadzenie systemów mówiących do obrabiarek doprowadzi także zapewne do rewolucyjnych zmian w sposobie ich programowania i obsługi, powodując, że obsługa ta będzie bardziej intuicyjna i łatwiejsza dla człowieka Praca naukowa finansowana ze środków na naukę ze środków Narodowego Centrum Badań i Rozwoju w latach 2010-2012 w ramach projektu rozwojowego pt.: Inteligentne sterowniki pralek. Bibliografia 1. [www.primespeech.pl] Rozpoznawanie Mowy i Portale głosowe (10 listopada 2012). 2. Lewis J., Put on your human-machine interface, Design News 8/2001. 3. [www.mazak.eu] Yamazaki Mazak Europe (10 listopada 2012). 4. Rogowski A., Głosowa komunikacja człowiek-maszyna w gniazdach obróbkowych o zróżnicowanym stopniu automatyzacji, Zeszyty Naukowe Politechniki Poznańskiej: Budowa Maszyn i Zarządzanie Produkcją, 15/2011, 131 144. 5. Rogowski A., Industrially oriented voice control system, Robotics and Computer-Integrated Manufacturing, 28/2012, 303 315. 6. Pires J.N., New challenges for industrial robotic cell programming, Industrial Robot, 36/2008. 7. Pires J.N., Robot-by-voice: Experiments on commanding an industrial robot using the human voice, Industrial Robot, 32/2005. 8. Pires J.N., Industrial Robots Programming: Building Applications for the Factories of the Future, Springer 2007. 9. Bos J., Klein E., Oka T., Meaningful Conversation With A Mobile Robot, Annual Meeting of The European Chapter of The Association of Computational Linguistics, Edinburgh 2003. 10. [www.ltg.ed.ac.uk/godot/] Godot The Robot (10 listopada 2012). 11. [http://www.agh.edu.pl/pl/aktualnosci/blognaukowy.html,,0:vw:2928] Smartfon steruje robotem (10 listopada 2012). 12. Milecki A., Pittner G., Modułowy, 32-bitowy sterownik pralki, Pomiary Automatyka Robotyka, 2/2012, 357-361. Applications of speech recognition systems to control and voice communication with mechatronic devices Abstract: This paper presents examples of the use of automatic speech recognition systems to build human-machine voice interfaces. Also this paper briefly describes how these applications can work. The rest of the article shows the concept of usage speech recognition system based on own driver which cooperate with washing machine controller. Keywords: automatic speech recognition, voice control, humanmachine interface, washing machine controller Pomiary Automatyka Robotyka nr 2/2013 473

g mgr inż. Roman Regulski Doktorant w Zakładzie Urządzeń Mechatronicznych, Wydziału Budowy Maszyn i Zarządzania Politechniki Poznańskiej. Zainteresowania naukowe: mechatronika, sterowniki mikroprocesorowe, automatyczne systemy rozpoznawania mowy, sterowanie głosowe. mgr inż. Amadeusz Nowak Doktorant Zakładu Urządzeń Mechatronicznych, Wydziału Budowy Maszyn i Zarządzania Politechniki Poznańskiej. Zainteresowania naukowe: mechatronika, metody sztucznej inteligencji w sterowaniu. e-mail: roman.regulski@doctorate.put.poznan.pl e-mail: amadeusz.nowak@doctorate.put.poznan.pl 474