Jak powstaje Alexa? Gdański Amazon od kuchni
Podczas odwiedzin w gdańskim centrum Amazon Research & Develpoment, mieliśmy nie tylko okazję przekonać się, co potrafi Alexa i głośniki Echo, ale także dowiedzieć się, jak przebiegają prace nad rozwojem asystentki. A trzeba przyznać, że Amazon całkiem ciekawie radzi sobie z najtrudniejszymi wyzwaniami.
06.12.2016 | aktual.: 14.02.2018 15:42
Skills
O asystentach głosowych nie należy myśleć jako o kompletnych usługach, które akumulują w sobie niezliczone moduły, aby móc realizować takie zadania, jak odtwarzanie muzyki czy zamówienie pizzy. Podobnie jest z Aleksą – stanowi ona rozbudowany węzeł pośredniczący w komunikacji użytkownik-usługa, którego najważniejszym zadaniem jest precyzyjne przetwarzanie głosu na wywoływanie konkretnych funkcji, oferowanych przez firmy trzecie.
Funkcje te noszą nazwę Skills, zaś ich rozwijanie należy przede wszystkim do dostawców samych usług. Zadaniem Aleksy jest jedynie skojarzenie danych wejściowych, czyli głosowego polecenia wystosowanego przez użytkownika, z danym Skillem w konkretnej usłudze. Jak nietrudno się domyślić, mogą istnieć setki sposobów na wywołanie jednego Skilla, postanowiliśmy zatem zapytać o to, ile wariantów jest w stanie przetworzyć Alexa.
W praktyce dostawca Skilla musi ręcznie wprowadzić kilka podstawowych wariantów komend głosowych. Należy tutaj rozważyć różne możliwości konstrukcji składniowych czy dostępność wewnętrznych funkcji jednej usługi. Niemniej obsługa Skilla za pomocą Aleksy nie ogranicza się do ściśle określonych przez dostawcę usługi wariantów.
W chmurze Amazonu warianty są bowiem przetwarzane, zbierane i pomnażane tak, że z czasem asystentka powinna kojarzyć coraz odleglejsze polecenia z konkretnymi Skillami, choćby na podstawie wcześniejszych nieprecyzyjnych wywołań ze strony użytkownika. Tworzenie własnych Skillów odbywa się w usłudze Amazon Web Services Lambda, choć można je także uruchomić na własnych serwerach. Szczegóły na stronach Amazonu. Napisanie Skilla od zera do Hello World! ma zajmować kwadrans.
Voice Talents
A jak Alexa udziela informacji zwrotnej? Oczywiście również ludzkim głosem, co jest możliwe dzięki sesjom z tzw. Voice Talents. W zasadzie od momentu popularyzacji asystentów głosowych i przetwarzania głosu na tekst, zastanawiające dla wielu mogło być to, jak z radzą sobie oni z z różnymi sposobami wymowy konkretnych głosek. Problem wynikać może na przykład z czynników geograficznych, różnic w wymowie w obrębie tego samego języka.
Problem jest ważki już na gruncie obsługiwanych przez Aleksę angielskiego i niemieckiego, gdzie różnice (pomijając już kwestie gwar czy etnolektów) pomiędzy wymową na północy i południu kraju, mogą być dla asystenta poważną przeszkodą w przetwarzaniu. Rozwiązanie problemu przez Amazon może być zaskoczeniem – to, że Alexa tak dobrze radzi sobie nawet z kiepską wymową angielskiego jest efektem długich sesji nagraniowych z udziałem Voice Talents.
Voice Talents to profesjonalni lektorzy, którzy spędzają w Amazonie długie godziny wraz z trenerem i... czytają do mikrofonu. Przeciętna sesja trwa kilka godzin dziennie, program dla jednego Talentu trwa około kilku tygodni. W tym czasie odczytuje on w studiu nagraniowym w Amazon R&D fragmenty nijak niepowiązanych ze sobą semantycznie tekstów z przeróżnych źródeł (z reguły jedno lub dwa zdania).Stanowi to nie tylko materiał, dzięki któremu Alexa wypowiada się płynnie, ale także radzi sobie z przetwarzaniem wariantów różnych głosek. Proces selekcji lektorów jest bowiem daleki od przypadku: oprócz koniecznych do tego zadania predyspozycji i odpowiedniego przygotowania dla emisji głosu z trenerem, Amazon uwzględnia także przy rekrutacji kwestie naleciałości regionalnych. Nie można jednak pominąć także jeszcze jednej kwestii, którą Amazon rozwiązał w całkiem sprytny sposób.
Jednostka pracy Aleksy
Ciekawym zagadnieniem jest także materiał, na którym pracuje Alexa. Jaka jest jego jednostka? Głoska? Sylaba? Słowo? Zdanie? Nic z tych rzeczy. W kontekście omawiania usług Amazon Polly (silnik text-to-speech, dostępny jako komercyjna usługa) dowiedzieliśmy się, że algorytmy Amazonu operują na difonemach (ang. diphonems). Fonem jest teoretycznym odpowiednikiem głoski, co oznacza zatem przedrostek di-?
Wyobraźmy sobie sytuację, w której chcemy przetworzyć z tekstu na głos angielskie przysłowie an apple a day, keeps the doctor away. Dzięki operacjach na difonemach, proces ten przebiega w następujący sposób:[frame]an apple a day 1. an error occurred while searching for your route 2. because snaps weren't all so obedient anytmore 3. now we say apple aagain, and we say apple 4. general electric soars today. information on general electric[/frame]Wśród czterech fragmentów, z których pobrane zostały próbki wymowy, tylko w przypadku jednego rzeczywiście znalazło się słowo apple, a i tak jego nagranie zostało wykorzystane zaledwie częściowo. Jeżeli jednak ktoś postara się płynnie odczytać pogrubione fragmenty, to szybko zda sobie sprawę, że ich pozycja w wypowiedzeniu i wymowa dokładnie odpowiadają tej, jaka konieczna jest w przykładowym porzekadle.
Do stworzenia difonemu potrzebujemy dwa fonemy podzielone na dwie części. Aby uwzględnić zjawisko zmian fonetycznych występujących ze względu na pozycję głoski w wyrazie i na wyższych poziomach, pod uwagę jest brana druga połowa pierwszego fonemu i pierwsza drugiego.
To właśnie w ten sposób asystentom głosowym udaje się zachowywać taką płynność wypowiedzi: pod uwagę brana jest bowiem pozycja (nagłos, wygłos), która bezpośrednio wpływa na końcową wymowę. I to właśnie ten czynnik, wraz z wykorzystaniem difonemów jako podstawowej jednostki w przetwarzaniu tekstu na mowę, gwarantuje Aleksie naturalność i skuteczność.
Zapraszamy także do zapoznania się z artykułem opisującym, jak Alexa sprawuje się w praktyce oraz filmem prezentującym Amazon Echo Dot, mniejszy wariant inteligentnego głośnika Amazonu, dostarczający pełnię możliwości Aleksy, który trafił już do naszej redakcji.