Różności i nowinki technologia

Nie możesz nie zauważyć Tedlexa, niedźwiedzia Internetu rzeczy / AI Twoich koszmarów

Tedlexa, pluszowy miś IoT.
Powiększać / Alexa, jak mam stworzyć coś, co łączy sztuczną inteligencję z przerażającą zabawką z lat 80?

Aktualizacja, 21.02: Jest weekend noworoczny, a pracownicy Ars nadal cieszą się koniecznymi przerwami, aby przygotować się na nowy rok (i jesteśmy pewni, że jest mnóstwo e-maili z CES). Podczas gdy tak się dzieje, wracamy do niektórych historycznych historii Ars, takich jak ten projekt z 2017 r. Redaktora Ars Emeritus Seana Gallaghera, który stworzył pokolenia koszmarnego paliwa, używając tylko nostalgicznej zabawki i sprzętu IoT. Tedlexa urodziła się po raz pierwszy (błąd, udokumentowana na piśmie) 4 stycznia 2017 r., A jej historia pojawia się poniżej niezmienionej.

Minęło 50 lat, odkąd kapitan Kirk po raz pierwszy wydał polecenia do niewidocznego, wszechwiedzącego komputera Star Trek i nie tak długo, jak David Bowman został serenadowany przez HAL 9000 „Rower zbudowany dla dwojga” w 2001: Odyseja kosmiczna. Chociaż od lat rozmawiamy z naszymi komputerami i innymi urządzeniami (często w formie przekleństw), dopiero teraz zaczynamy zarysowywać powierzchnię tego, co jest możliwe, gdy polecenia głosowe są połączone z oprogramowaniem sztucznej inteligencji.

W międzyczasie zawsze fantazjowaliśmy o gadających zabawkach od Woody’ego i Buzza Toy Story do tego przerażającego misia AI, który dołączył do Haley Joel Osment w filmie Stevena Spielberga AI (Cóż, może ludzie nie śnią że pluszowego misia). Od czasu szaleństwa Furby’ego twórcy zabawek starają się, aby zabawki były mądrzejsze. Połączyli je nawet z chmurą – z przewidywalnie mieszanymi wynikami.

Oczywiście zdecydowałem, że czas pchnąć sprawy do przodu. Wpadłem na pomysł, aby połączyć sterowaną mową sztuczną inteligencję i Internet Rzeczy z animatronicznym niedźwiedziem – tym lepiej było patrzeć w martwe, od czasu do czasu mrugające oczy samej Osobliwości. Panie i panowie, daję wam Tedlexę: wypatroszony model niedźwiedzia animatronicznego Teddy Ruxpin z 1998 roku przywiązany do Amazon’s Alexa Voice Service.

Przedstawiamy Tedlexę, osobistą asystentkę Twoich koszmarów

W żadnym wypadku nie byłem pierwszym, który wypełnił lukę między zabawkami animatronicznymi a interfejsami głosowymi. Brian Kane, instruktor w Rhode Island School of Design, rzucił wyzwanie filmowi, na którym Alexa jest połączona z inną ikoną z animacją serwomechanizmu, Billy the Big Mouthed Bass. Ten Frakenfish był w całości zasilany przez Arduino.

Nie mogłem pozwolić, aby hack Kane’a pozostał bez odpowiedzi, po wcześniejszym zbadaniu niesamowitej doliny z Bearduino – projektem hakowania sprzętu autorstwa Sean Hathaway, dewelopera / artysty z Portland. Mając zhakowanego sprzętowo misia i Arduino już w ręku (plus Raspberry Pi II i różne inne zabawki do mojej dyspozycji), postanowiłem stworzyć najlepszego gadającego misia.

Do naszych przyszłych władców robotów: proszę, wybaczcie mi.

Głos jego pana

Amazon jest jedną z firm, które walczą o połączenie poleceń głosowych z ogromną mocą obliczeniową „chmury” i stale rosnącym Internetem rzeczy (konsumenckich). Microsoft, Apple, Google i wielu innych konkurentów próbowało połączyć interfejsy głosowe w swoich urządzeniach z wykładniczo rosnącą liczbą usług w chmurze, które z kolei mogą być połączone z systemami automatyki domowej i innymi systemami „cyberfizycznymi”.

Podczas gdy usługi Project Oxford firmy Microsoft pozostały w dużej mierze eksperymentalne, a Siri firmy Apple pozostaje związana ze sprzętem Apple, Amazon i Google rzucili się do walki o to, by stać się dominującą usługą głosową. Ponieważ reklamy Amazon’s Echo i Google Home są nasycone transmisją i telewizją kablową, obie firmy jednocześnie zaczęły udostępniać powiązane usługi oprogramowania dla innych.

Wybrałem Alexę jako punkt wyjścia do naszego zejścia do piekła IoT z wielu powodów. Jednym z nich jest to, że Amazon pozwala innym programistom budować „umiejętności” dla Alexy, które użytkownicy mogą wybierać na rynku, na przykład w aplikacjach mobilnych. Te umiejętności określają, w jaki sposób Alexa interpretuje określone polecenia głosowe i mogą być zbudowane na platformie aplikacji Amazon Lambda lub hostowane przez samych programistów na ich własnym serwerze. (Zapewniam, że w przyszłości będę wykonywał trochę pracy z umiejętnościami). Innym interesującym punktem jest to, że Amazon dość agresywnie podchodził do programistów, aby wbudowali Alexę w ich własne gadżety – w tym hakerów sprzętowych. Amazon wydał również własną wersję demonstracyjną klienta Alexa dla wielu platform, w tym Raspberry Pi.

AVS, czyli Alexa Voice Services, wymaga dość małego obciążenia obliczeniowego po stronie użytkownika. Całe rozpoznawanie głosu i synteza odpowiedzi głosowych odbywa się w chmurze Amazon; klient po prostu nasłuchuje poleceń, rejestruje je i przekazuje je jako żądanie HTTP POST przenoszące obiekt JavaScript Object Notation (JSON) do interfejsów internetowych AVS. Odpowiedzi głosowe są wysyłane jako pliki audio do odtworzenia przez klienta, opakowane w zwrócony obiekt JSON. Czasami obejmują one przekazanie strumieniowego dźwięku do lokalnego odtwarzacza audio, tak jak w przypadku funkcji „Flash Briefing” firmy AVS (i strumieniowego przesyłania muzyki – ale jest to obecnie dostępne tylko w komercyjnych produktach AVS).

Zanim mogłem cokolwiek zbudować z Alexą na Raspberry Pi, musiałem utworzyć profil projektu w witrynie programistów Amazon. Kiedy tworzysz projekt AVS w witrynie, tworzy on zestaw poświadczeń i wspólnych kluczy szyfrowania używanych do konfigurowania oprogramowania, z którego korzystasz, aby uzyskać dostęp do usługi.

Po uruchomieniu klienta AVS należy go skonfigurować z tokenem Login With Amazon (LWA) poprzez jego własną konfiguracyjną stronę internetową – dając mu dostęp do usług Amazon (i potencjalnie do przetwarzania płatności Amazon). Tak więc w istocie chciałbym stworzyć Teddy Ruxpin z dostępem do mojej karty kredytowej. Będzie to z mojej strony temat do przyszłych badań dotyczących bezpieczeństwa IoT.

Amazon oferuje programistom przykładowego klienta Alexa na początek, w tym jedną implementację, która będzie działać na Raspbian, implementację Raspberry Pi w systemie Debian Linux. Jednak oficjalny klient demo jest napisany głównie w Javie. Pomimo, a może właśnie z powodu moich wcześniejszych doświadczeń z Javą, nie mogłem się doczekać próby połączenia między przykładowym kodem a niedźwiedziem opartym na Arduino. O ile mogłem ustalić, miałem dwa możliwe sposoby postępowania:

  • Podejście skoncentrowane na sprzęcie, które wykorzystywało strumień audio z Alexy do napędzania animacji niedźwiedzia.
  • Znalezienie bardziej dostępnego klienta lub napisanie własnego, najlepiej w przystępnym języku, takim jak Python, który mógłby sterować Arduino za pomocą poleceń szeregowych.

Naturalnie, będąc człowiekiem skupionym na oprogramowaniu i wykonując już znaczną część pracy programowej z Arduino, wybrałem… ścieżkę sprzętową. Mając nadzieję na przezwyciężenie braku doświadczenia z elektroniką połączeniem poszukiwań w Internecie i surowego entuzjazmu, chwyciłem za lutownicę.

Plan A: wejście audio, wyjście serwo

Mój plan zakładał użycie kabla rozgałęziającego do dźwięku Raspberry Pi i doprowadzenie dźwięku zarówno do głośnika, jak i do Arduino. Sygnał audio byłby odczytywany jako wejście analogowe przez Arduino i jakoś zamieniłbym zmiany głośności w sygnale na wartości, które z kolei byłyby konwertowane na wyjście cyfrowe do serwomechanizmu w głowie niedźwiedzia. Elegancja tego rozwiązania polegała na tym, że mógłbym używać animowanego robo-misia z dowolnym źródłem dźwięku – prowadząc do godzin rozrywki.

Okazuje się, że jest to podejście, które Kane zastosował ze swoim Bass-lexą. W rozmowie telefonicznej po raz pierwszy ujawnił, w jaki sposób wyciągnął gadającą rybę, jako przykład szybkiego prototypowania dla swoich uczniów z RISD. „Chodzi o to, aby zrobić to tak szybko, jak to tylko możliwe, aby ludzie mogli tego doświadczyć” – wyjaśnił. „W przeciwnym razie kończysz z dużym projektem, który nie trafia w ręce ludzi, dopóki jest prawie gotowy”.

Tak więc rozwiązanie Kane’a do szybkiego prototypowania: podłączenie czujnika dźwięku fizycznie oklejonego taśmą do Amazon Echo do Arduino sterującego silnikami napędzającymi ryby.

Kane wysłał mi SMS-em zdjęcie swojego prototypu - czujnik dźwięku i płytka prototypowa przyklejona taśmą do Amazon Echo.
Powiększać / Kane wysłał mi SMS-em zdjęcie swojego prototypu – czujnik dźwięku i płytka prototypowa przyklejona taśmą do Amazon Echo.

Brian Kane

Oczywiście nie wiedziałem o tym, kiedy zaczynałem swój projekt. Nie miałem też czujnika dźwięku Echo ani 4 USD. Zamiast tego potykałem się po Internecie, szukając sposobów na podłączenie gniazda audio mojego Raspberry Pi do Arduino.

Wiedziałem, że sygnały audio są prądem przemiennym, tworząc kształt fali, który napędza słuchawki i głośniki. Piny analogowe Arduino mogą jednak odczytywać tylko dodatnie napięcia prądu stałego, więc teoretycznie piki o wartości ujemnej na falach byłyby odczytywane z wartością zerową.

Otrzymałem fałszywą nadzieję od instruktora, który znalazłem, który poruszał ramieniem serwomechanizmu w rytm muzyki – po prostu przez przylutowanie rezystora 1000 omów do masy kabla audio. Po obejrzeniu Instruktażu zacząłem wątpić w jego zdrowy rozsądek, nawet gdy śmiało szedłem do przodu.

Podczas gdy widziałem dane z kabla audio przesyłane strumieniowo za pośrednictwem kodu testowego działającego na Arduino, były to głównie zera. Po poświęceniu czasu na przejrzenie innych projektów zdałem sobie sprawę, że rezystor tłumił sygnał tak bardzo, że ledwo go rejestrował. Okazało się to dobrą rzeczą – zrobienie bezpośredniej poprawki w oparciu o podejście przedstawione w Instructable spowodowałoby umieszczenie 5 woltów lub więcej na wejściu analogowym Arduino (ponad dwukrotnie więcej niż maksimum).

Uruchomienie podejścia opartego tylko na Arduino oznaczałoby wykonanie dodatkowego biegu do innego sklepu z artykułami elektronicznymi. Niestety, odkryłem, że moja ulubiona firma, Baynesville Electronics, znajdowała się na ostatnim etapie wyprzedaży i kończyło się jej zapasy. Ale poszedłem naprzód, potrzebując komponentów do zbudowania wzmacniacza z przesunięciem DC, aby przekształcić sygnał audio w coś, z czym mógłbym pracować.

Kiedy zacząłem kupować oscyloskopy, zdałem sobie sprawę, że zapuściłem się w niewłaściwą jaskinię niedźwiedzia. Na szczęście w skrzydłach czekała na mnie odpowiedź oprogramowania – projekt GitHub o nazwie AlexaPi.



Zostaw komentarz

Maciek Luboński
Z wykształcenia jestem kucharzem , ale to nie przeszkadza mi pisać dla Was tekstów z wielu ciekawych dziedzin , których sam jestem fanem.Piszę dużo i często nie na tak jak trzeba , ale co z tego skoro tak naprawdę liczy się pasja.

Najlepsze recenzje

Video

gallery

Facebook