W rzeczywistości wirtualny asystent składa się z czterech elementów. Najważniejszym jest kontrolka ActiveX. To ona odpowiada za komunikację pomiędzy programem a serwerem Microsoft Agent. Drugim komponentem są pliki z postaciami (czyli “skórkami” określającymi wygląd asystentów). Ani sama kontrolka, ani serwer nie mają wbudowanych postaci, więc należy je pobrać z Sieci. Postacie “mieszkają” w plikach o rozszerzeniu ACS. Na stronach Microsoftu znajduje się takich zbiorów tylko kilka, jednak w różnych innych witrynach WWW są ich setki. Niestety, większość autorów “skórek” każe za nie płacić. Możemy także zrobić postać samodzielnie – służy do tego Microsoft Agent Character Editor.
Kolejnym potrzebnym elementem jest syntezator mowy. Najpopularniejszy jest True Voice – wśród dostępnych języków znajdują się między innymi angielski, i rosyjski. Polskiego niestety na tej liście nie znajdziemy. Ostatni komponent to system rozpoznawania mowy (także bez obsługi naszego języka): Microsoft Speech Recognition Engine.
Wszystkie potrzebne komponenty są dostępne za darmo (poza niektórymi dodatkowymi postaciami). Musimy tylko przyznać się do ich stosowania w dowolnym miejscu kodu programu.
Zdobywamy materiały
Aby wykorzystać wszystkie możliwości, jakie daje nam kontrolka Microsoft Agent, niezbędne jest zainstalowanie czterech wymienionych wcześniej komponentów. Pakiety można pobrać spod adresów podanych w ramce “Info”. Instalacja nie nastręcza specjalnych trudności – przebiega sprawnie i jedyną rzeczą, jaką musimy zrobić sami, jest potwierdzenie kliknięciem przycisku faktu przeczytania licencji. Po zainstalowaniu wszystkich elementów uruchamiamy Delphi i importujemy agenta jako kontrolkę OCX.
Jak wspomniałem, asystenty dostępne są w postaci plików o rozszerzeniu ACS. Pliki te standardowo znajdują się w katalogu C:\WINDOWS\MSAGENT\CHARS\. Przykładowe procedury, podane niżej, wykorzystują postać Peedy – zielonej papugi. Pierwszym krokiem podczas jej ożywiania jest umieszczenie kontrolki ActiveX na naszym formularzu. Za wczytanie agenta do pamięci odpowiedzialna jest procedura:
Agent1.Characters.Load(‘nazwa’,’ścieżka’)
.
Nazwa
to identyfikator naszego agenta, dzięki któremu można rozróżnić wczytane postacie. Ścieżka natomiast określa katalog i plik, w którym znajduje się postać. Umieśćmy tę procedurę w zdarzeniu OnShow formularza. Kod powinien wyglądać tak:
procedure TForm1.FormShow
(Sender: TObject);
begin
Agent1.Characters.Load(‘myagent’,’C:\WINDOWS\MSAGENT\CHARS\Peedy.acs’);
end;