More

    Você não pode deixar de ver Tedlexa, a Internet das Coisas / IA responsável pelos seus pesadelos


    Prolongar / Alexa, como faço para criar algo que combina IA com um brinquedo assustador dos anos 80?

    Atualização, 1/2/21: É fim de semana de ano novo, e a equipe do Ars ainda está aproveitando o tempo de inatividade necessário para se preparar para um novo ano (e uma série de e-mails do CES, temos certeza). Enquanto isso acontece, estamos ressurgindo algumas histórias vintage de Ars, como este projeto de 2017 do Editor Emérito da Ars Sean Gallagher, que criou gerações de combustível de pesadelo com apenas um brinquedo nostálgico e alguns equipamentos IoT. Tedlexa nasceu (err, documentado por escrito) em 4 de janeiro de 2017, e sua história aparece inalterada abaixo.

    Já se passaram 50 anos desde que o capitão Kirk falou comandos pela primeira vez para um computador invisível e onisciente no Jornada nas Estrelas e não tanto desde que David Bowman ouviu a serenata de “A Bicycle Built for Two” do HAL 9000 em 2001: Uma Odisséia no Espaço. Enquanto conversamos com nossos computadores e outros dispositivos há anos (muitas vezes na forma de interjeições expletivas), só agora estamos começando a arranhar a superfície do que é possível quando comandos de voz são conectados a software de inteligência artificial.

    Enquanto isso, sempre fantasiamos sobre brinquedos falantes, de Woody e Buzz em História de brinquedos para aquele ursinho de pelúcia de IA assustador que acompanhou Haley Joel Osment em Steven Spielberg’s AI (Bem, talvez as pessoas não estejam sonhando com este (ursinho de pelúcia). E desde a mania do Furby, os fabricantes de brinquedos vêm tentando torná-los mais inteligentes. Eles até os conectaram à nuvem – com resultados previsivelmente mistos.

    Naturalmente, decidi que era hora de levar as coisas adiante. Tive a ideia de conectar uma IA baseada em fala e a Internet das Coisas a um urso animatrônico – para melhor olhar nos olhos sem vida e ocasionalmente piscando da própria Singularidade. Senhoras e senhores, apresento-lhes Tedlexa: um modelo de 1998 destruído do urso animatrônico Teddy Ruxpin amarrado ao Alexa Voice Service da Amazon.

    Apresentando Tedlexa, o assistente pessoal de seus pesadelos

    Não fui o primeiro, de forma alguma, a preencher a lacuna entre brinquedos animatrônicos e interfaces de voz. Brian Kane, um instrutor da Rhode Island School of Design, lançou o desafio com um vídeo de Alexa conectada a outro ícone animado por servo, Billy the Big Mouthed Bass. Este Frakenfish foi totalmente equipado com um Arduino.

    Eu não poderia deixar o hack de Kane ficar sem resposta, tendo anteriormente explorado o vale misterioso com o Bearduino – um projeto de hack de hardware do desenvolvedor / artista Sean Hathaway baseado em Portland. Com um urso hackeado por hardware e um Arduino já em mãos (além de um Raspberry Pi II e vários outros brinquedos à minha disposição), comecei a criar o urso de pelúcia falante definitivo.

    Aos nossos futuros Senhores Robôs: por favor, me perdoem.

    A voz do seu mestre

    A Amazon faz parte de um grupo de empresas que competem para conectar comandos de voz ao vasto poder de computação da “nuvem” e à sempre crescente Internet de Coisas (do Consumidor). Microsoft, Apple, Google e muitos outros concorrentes buscaram conectar interfaces de voz em seus dispositivos a um número exponencialmente em expansão de serviços em nuvem, que por sua vez podem ser vinculados a sistemas de automação residencial e outros sistemas “ciberfísicos”.

    Enquanto os serviços do Project Oxford da Microsoft permaneceram amplamente experimentais e o Siri da Apple continua vinculado ao hardware da Apple, a Amazon e o Google se precipitaram em uma batalha para se tornar o titular do serviço de voz. Como os anúncios do Amazon’s Echo e do Google Home saturaram a transmissão e a televisão a cabo, as duas empresas começaram simultaneamente a abrir os serviços de software associados a terceiros.

    Escolhi Alexa como ponto de partida para nossa descida ao inferno da IoT por uma série de razões. Um deles é que a Amazon permite que outros desenvolvedores criem “habilidades” para Alexa que os usuários podem escolher em um mercado, como aplicativos móveis. Essas habilidades determinam como Alexa interpreta certos comandos de voz e podem ser construídos na plataforma de aplicativos Lambda da Amazon ou hospedados pelos próprios desenvolvedores em seu próprio servidor. (Fique tranquilo, estarei fazendo algum trabalho futuro com habilidades.) Outro ponto de interesse é que a Amazon tem sido bastante agressiva em fazer com que os desenvolvedores construam Alexa em seus próprios gadgets – incluindo hackers de hardware. A Amazon também lançou sua própria versão de demonstração de um cliente Alexa para várias plataformas, incluindo o Raspberry Pi.

    AVS, ou Alexa Voice Services, requer uma pegada de computação relativamente pequena para o usuário. Todo o reconhecimento de voz e síntese de respostas de voz acontecem na nuvem da Amazon; o cliente simplesmente ouve os comandos, os registra e os encaminha como uma solicitação HTTP POST transportando um objeto JavaScript Object Notation (JSON) para as interfaces baseadas na Web do AVS. As respostas de voz são enviadas como arquivos de áudio para serem reproduzidos pelo cliente, envolvidos em um objeto JSON retornado. Às vezes, eles incluem uma transferência de fluxo de áudio para um reprodutor de áudio local, como com o recurso “Flash Briefing” do AVS (e streaming de música – mas isso só está disponível em produtos AVS comerciais no momento).

    Antes que eu pudesse construir qualquer coisa com Alexa em um Raspberry Pi, eu precisava criar um perfil de projeto no site de desenvolvedor da Amazon. Quando você cria um projeto AVS no site, ele cria um conjunto de credenciais e chaves de criptografia compartilhadas usadas para configurar qualquer software usado para acessar o serviço.

    Assim que o cliente AVS estiver em execução, ele precisa ser configurado com um token Login With Amazon (LWA) por meio de sua própria página da Web de configuração – dando a ele acesso aos serviços da Amazon (e, potencialmente, ao processamento de pagamentos da Amazon). Então, em essência, eu estaria criando um Teddy Ruxpin com acesso ao meu cartão de crédito. Este será um tópico para alguma pesquisa de segurança futura sobre IoT da minha parte.

    A Amazon oferece aos desenvolvedores um cliente Alexa de amostra para começar, incluindo uma implementação que será executada no Raspbian, a implementação Raspberry Pi do Debian Linux. No entanto, o cliente de demonstração oficial é escrito principalmente em Java. Apesar, ou talvez por causa da minha experiência anterior com Java, eu estava receoso de tentar fazer qualquer interconexão entre o código de amostra e o urso controlado por Arduino. Tanto quanto pude determinar, eu tinha dois cursos de ação possíveis:

    • Uma abordagem focada em hardware que usou o fluxo de áudio de Alexa para conduzir a animação do urso.
    • Encontrar um cliente mais acessível ou escrever o meu próprio, de preferência em uma linguagem acessível como Python, que pudesse conduzir o Arduino com comandos seriais.

    Naturalmente, sendo um cara focado em software e já tendo feito uma quantidade significativa de trabalho de software com o Arduino, eu escolhi … a rota do hardware. Na esperança de superar minha falta de experiência com eletrônica com uma combinação de pesquisas na Internet e entusiasmo puro, peguei meu ferro de soldar.

    Plano A: entrada de áudio, saída de servo

    Meu plano era usar um cabo divisor para o áudio do Raspberry Pi e executar o áudio para um alto-falante e para o Arduino. O sinal de áudio seria lido como entrada analógica pelo Arduino e, de alguma forma, eu converteria as mudanças no volume do sinal em valores que, por sua vez, seriam convertidos em saída digital para o servo na cabeça do urso. A elegância dessa solução era que eu seria capaz de usar o urso-robô animado com qualquer fonte de áudio – gerando horas de entretenimento.

    Acontece que esta é a abordagem que Kane fez com seu Bass-lexa. Em uma conversa por telefone, ele revelou pela primeira vez como tirou seu peixe falante como um exemplo de prototipagem rápida para seus alunos na RISD. “É tudo uma questão de fazer isso o mais rápido possível para que as pessoas possam experimentar”, explicou ele. “Do contrário, você acaba com um grande projeto que não chega às mãos das pessoas até que esteja quase concluído.”

    Portanto, a solução de prototipagem rápida de Kane: conectar um sensor de áudio fisicamente conectado a um Amazon Echo a um Arduino controlando os motores que conduzem os peixes.

    Kane me mandou uma mensagem com esta foto de seu protótipo - sensor de áudio e placa de ensaio gravada em cima de um Amazon Echo.
    Prolongar / Kane me mandou uma mensagem com esta foto de seu protótipo – sensor de áudio e placa de ensaio gravada em cima de um Amazon Echo.

    Brian Kane

    Claro, eu não sabia de nada disso quando comecei meu projeto. Eu também não tinha um Echo ou um sensor de áudio de $ 4. Em vez disso, estava tropeçando na Internet procurando maneiras de conectar o conector de áudio do meu Raspberry Pi ao Arduino.

    Eu sabia que os sinais de áudio são correntes alternadas, formando uma forma de onda que impulsiona fones de ouvido e alto-falantes. Os pinos analógicos no Arduino só podem ler tensões de corrente contínua positivas, portanto, em teoria, os picos de valor negativo nas ondas seriam lidos com um valor zero.

    Recebi falsas esperanças de um Instructable que descobri que movia um braço servo no ritmo da música – simplesmente soldando um resistor de 1.000 ohms ao aterramento do cabo de áudio. Depois de olhar para o Instructable, comecei a duvidar de sua sanidade um pouco enquanto avançava com ousadia.

    Embora eu tenha visto os dados do cabo de áudio transmitindo por meio do código de teste em execução no Arduino, a maioria era zeros. Então, depois de passar algum tempo revisando alguns outros projetos, percebi que o resistor estava amortecendo o sinal tanto que mal conseguia registrar. Isso acabou sendo uma coisa boa – fazer um patch direto com base na abordagem apresentada pelo Instructable teria colocado 5 volts ou mais na entrada analógica do Arduino (mais do que o dobro de seu máximo).

    Fazer com que a abordagem exclusiva do Arduino funcione significaria fazer uma corrida extra para outra loja de suprimentos eletrônicos. Infelizmente, descobri que meu favorito, Baynesville Electronics, estava nos últimos estágios de sua liquidação de negócios e estava com pouco estoque. Mas eu fui em frente, precisando adquirir os componentes para construir um amplificador com um deslocamento DC para converter o sinal de áudio em algo com que eu pudesse trabalhar.

    Foi quando comecei a comprar osciloscópios que percebi que havia me aventurado na toca de urso errada. Felizmente, havia uma resposta de software esperando por mim – um projeto GitHub chamado AlexaPi.




    Artigos Recentes

    Carga rápida: a maior competição do Galaxy S21 não é o que você pensa

    Já se passou mais de uma semana desde que a Samsung revelou o Galaxy S21 e o Galaxy S21 Ultra e eu passei...

    Os benefícios do assinante Spotify Premium não se aplicam a podcasts

    Uma das propostas principais do Spotify Premium é a capacidade de ouvir música ilimitada sem interrupção comercial. No entanto, se você espera...

    As lutas de transformação da IBM continuam com a receita de nuvem e IA caindo 4,5%

    Há alguns meses, na conferência Transform da CNBC, o CEO da IBM, Arvind Krishna, pintou o quadro de uma empresa em meio a...

    AirPods x AirPods Max

    A Apple já percorreu um longo caminho desde que incluiu pela primeira vez seus fones de ouvido redondos tradicionais na caixa do iPod...

    Artigos Relacionados

    DEIXE UMA RESPOSTA

    Por favor digite seu comentário!
    Por favor, digite seu nome aqui