Mycroft: Assistente de Voz para Linux!

Faça de tudo: Controle seu computador ou apenas tenha uma inteligencia artificial instalada para chamar de Jarvis! – com o Mycroft!


| Se você apoia nosso site, desative o AdBlock quando visitá-lo, inclusive em Mobile!
Os anúncios são poucos e não invasivos. Se quiser contribuir com nosso trabalho, clique em qualquer banner de sua preferência, exceto dos Parceiros. 
Mais detalhes clicando aqui.


1. Introdução

Mycroft é um assistente de voz de código aberto e totalmente gratuito para sistemas operacionais baseados em Linux. Roda em uma série de dispositivos, usando uma interface de usuário em idioma natural. Seu código era anteriormente copyleft, mas agora está sob uma licença permissiva.

Até meados de 2017 possuía má fama de ser bugado e pouco funcional. Mas os anos passam e agora o projeto está maduro, o suficiente para uso como uma alternativa viável á Cortana do Windows 10, ou mesmo á Siri da Apple.

O maior empecilho aqui, nem é a questão da configuração, mas sim o idioma: Suporte a Inglês é a base padrão com melhor supote, já suporte Português do Brasil exige mais configurações e não está maduro ainda.

1.1 Base

O sistema em suma é escrito em Python 2.7, assim como todos os scripts de habilidades de fala e programação da IA.

Divido em 3 partes, de forma resumida:

  1. O script Python __init__.py quem processa os comandos de voz de entrada e saída
  2. O script Python GPIO.py (ou outro) quem processa os comandos resultantes, ou seja, a voz foi reconhecida, o comando assimilado, o que a IA fará (ler uma notícia, agendar, cronometrar, etc)
  3. A pasta de arquivos .dialog em texto plano que contém as palavras que serão lidas e aquelas palavras que serão ouvidas.

De forma grosseira a base de funcionamento da IA é simples e a sintaxe Python possui foco em ser bem documentada: Há inclusive uma regra de ouro no código fonte que pede que qualquer habilidade nova criada para a IA seja bem documentada para qualquer análise posterior por outras pessoas!

O sistema acompanha 2 pacotes que pegam o código e criam uma documentação básica sobre o que foi feito. E curiosamente, é eficiente nisso.

2. Recursos

Nativamente ele vem suportando uma série de comandos práticos, aqui chamados de Skills (habilidades) semelhantes aos vistos em outros assistentes de voz:

  • Gravação de audio
  • Previsão do Tempo
  • Informações de Data e Hora
  • Configuração por voz: Updates, instalar novas skills, etc.
  • Informação do Endereço de IP
  • Buscas na internet sobre qualquer assunto, todas pelo DuckDuckGo!
  • Controle GPIO para Raspberry PiSuporte ao 3, 3B, 3B+ e 4.
  • Contar Piadas
  • Ultimas Noticias (somente estrangeiras)
  • Dar risada (semelhante á Alexa)
  • Cochilar (Hibernação do comando de voz)
  • Controle de Playback: Reproduz as músicas que você deseja ouvir. Devem estar em MP3, no próprio dispositivo.
  • Dúvidas (O que é informática, ou “quem foi determinado politico”)
  • Definir alarmes
  • Definir lembretes
  • Cantar
  • Falar
  • Pronunciar (aprenda a falar em ingles corretamente)
  • Preços do mercado de ações
  • Sistema (reiniciar, etc)
  • Timer
  • Controle de Volume
  • Previsão do Tempo
  • Wikipedia

Dentre as customizações, a IA permite:

  • Mudar de nome!
    Ela pode ser chamada de Mycroft por padrão, ou também chamada de Jarvis, Ezra ou ainda Christopher.
    O NOME pode ser qualquer coisa além dos padrões acima citados, porém isso depende de você dominar mais a programação e programá-lo para tal. Mas sim, pode ser qualquer nome!

Sonho da maioria dos fãs de Avengers é com certeza ter uma IA pra chamar de Jarvis!

  • Mudar a voz
    Independente do nome, pode ser homem, mulher ou tom de voz do assistente do Google (porém só o tom, o motor de IA continua sendo do Mycroft).
  • Utilizar saída de som por HDMI ou P2 (jack)
  • Utilizar entrada de som diversos microfones USB, P2 (jack) ou mesmo a PS EYE Camera do PS3, que possui 4 microfones embutidos.
  • Mudar o sistema de medidas entre métrico ou imperial
  • Mudar o formato de hora entre 12 ou 24h
  • Mudar o padrão de data entre D/M/A ou M/D/A
  • Definir endereço de morada – cidade, estado e país – para melhorar a precisão das informações dada.

2.1 Funcionamento

Pode ser executado por padrão pela internet, processando os dados de fala online tal qual outros assistentes; porém pode ser processado também Offline, com o algoritmo instalado localmente. Este segundo recurso exige um hardware um pouco melhor para não demorar muito.

3. Hey Jarvis!

Para ter este belo assistente em seu sistema, você precisa ter em mente e no seu sistema alguns pré requisitos:

  • Sistema operacional Linux
    Esse requisito é obrigatório! Se você usa Windows, precisa rodar um sistema sob máquina virtual para ter o Mycroft funcional. Ou assuma que prefere as coisas da Microsoft e fique com a Cortana mesmo.

OBS: Também possui suporte para Android! Porém não fiz os devidos testes, já que não está em formato amigável. Se deseja experimentar, clique aqui!

  • Conhecimento básico na linguagem de programação Python.
    É um requesito não obrigatório porém recomendado. É fundamental para criar novas Skills para que o sistema funcione como você quiser – pode programá-lo para jogar videogame, abrir links do youtube, acessar e ler emails, etc. – É totalmente configurável, só depende do seu conhecimento e da sua paciência!
  • Um hardware mediano.
    A IA (inteligencia artificial) funciona Online, consumindo meros 250 MB de RAM em idle; porém pode ser Offline. Se você desejar não utilizar a internet, poderá ter total privacidade, porém precisará de um bom hardware, ou as compilações do algoritmo de reconhecimento de fala poderão ficar irresponsivos e/ou lentos.
    Além disso, o Mycroft exige CPU com flag AVX; Máquinas Intel Celeron por exemplo não são devidamente suportadas.
  • Domínio básico de BASH (terminal)
    Muitos dos comandos e configurações do Mycroft são via terminal.
  • Conhecimento do idioma Inglês
    Não apenas para configurar o sistema, mas também para conversar e dar comandos de voz para a IA! No momento, o idioma Português do Brasil é bem pouco suportado e todas as skills padrão até o momento são configuradas somente em Inglês. A skill “hello world” possui mais de um idioma suportado, porém quando mudei o idioma para pt-br, ele falou em português com sotaque carregado, um “estou bem, obrigado” soa como “stu ben obrigradu”

O conceito do Mycroft é mais focado em desenvolvimento, estudantes e entusiastas de sistemas Linux. Não é amigável para o grande público te-lo e configura-lo.

Uma vez saciadas essas dependências básicas, instale o Mycroft:

cd ~/
git clone https://github.com/MycroftAI/mycroft-core.git
cd mycroft-core
bash dev_setup.sh

Se desejar, há instaladores mais específicos para Debian e Fedora que fazem bom proveito do KDE Plasma. Para mais informações clique aqui!

Uma vez instalado, inicie o Mycroft com:

./start-mycroft.sh all

Uma vez iniciado, com o Microfone e a Caixa de Som devidamente reconhecidos, diga nitidamente:

“Hey Mycroft, pair my device.”

Mycroft vai retornar:

“I am connected to the Internet and need to be paired. Your 6-gigit registration code is XXXXXX.”

Vá até o site: https://home.mycroft.ai/dashboard
e crie sua conta. É gratuito e rapido! Defina como deseja que o assistente funcione, e insira o código. Ao finalizar, volte ao Mycroft.

O sistema ja estará pronto para uso com as skills padrão! Também estará reconhecendo o novo Nome caso tenha alterado de Mycroft para Jarvis por exemplo.

Para ter um feedback melhor do que está acontecendo por trás, digite:

$ ./mycroft-cli-client

Ele abrirá um sub-terminal de comandos: O que for digitado representa o que seria dito. Então até se você não possuir um microfone, poderá dar comandos “de voz” digitando neste terminal.

Se quiser arriscar os testes em pt-br, mude o idioma com o comando:
$ mycroft-config set lang “pt-br”
E reinicie o sistema:
$ mycroft-stop
$ mycroft-start all
Aguarde o recarregamento do sistema.
Lembre-se que todas as Skills devem conter a pasta pt-br para adaptar os comandos; aquelas que não possuírem deverão ser criadas e traduzidas manualmente primeiro! Lembre-se também de que a pronuncia é carregada com sotaque britânico e muitas das respostas ficarão “estranhas”

3.1 RaspberryPi

Se quer utiliza-lo num Raspberry Pi (só suporta os modelos 3, 3B, 3B+ e 4, com suporte limitado ao Pi 2 porém muito lento), recomendo o PiCroft, um sistema baseado em Debian básico sem interface que possui o Mycroft pré configurado. Ele consome meros 250 Mb de RAM e não exige muito do pequeno embarcado. Para baixa-lo, clique aqui!

Outro fato interessante é que o Mycroft suporta controle de GPIO, permitindo que você dê comandos de voz que acionem atuadores, relês, LEDs e o que mais você possuir de módulos conectados á placa.

4. Novas Skills

Como dito, o Mycroft suporta diversas Skills. O meio mais simples de instalar uma Skill ausente, é navegar na Loja: https://market.mycroft.ai/skills

E ver o nome da Skill. Depois vá até o Mycroft e diga:

“Hey nome-que-você-definiu, install nome-da-skill.”

4.1 Skill Não Oficial

Outro método é adicionar Skill da Comunidade, não oficiais! Para isso, basta estes comandos:

Entre na pasta de Skills:

$ cd /opt/mycroft/skills

E clone o repositório GitHub da Skill desejada:

$ git clone https://github.com/kfezer/daily_meditation.git

Reinicie o Mycroft e ele reconhecerá a nova Skill automaticamente.

4.1.1 Raspberry Pi

Se utiliza um Raspberry, adicionar Skills se torna particularmente mais simples. Basta sair do terminal de controle de voz com CTRL+C e digitar:

$ msm install https://github.com…

Reinicie o Raspberry e a nova Skill deverá funcionar. Se tiver problemas, ou conflito de palavras chave do comando de voz, remova com:

$ msm remove https://github.com…

4.2 Criando uma Skill

O método de criação de uma Skill não é de todo fácil, já adianto. Porém é devidamente bem documentado conforme pode ser lido aqui e aqui!

Há todo um kit de desenvolvimento de Skills criado pela própria Mycroft, para facilitar o trabalho de makers, estudantes e entusiastas.

5. Na prática

Um pouco de como foram os testes pessoais que levaram á inspiração desta publicação. Neste primeiro vídeo o Mycroft está rodando num RaspberryPi 3B+.

O Microfone é uma PSEye, a camera do PlayStation 3® que possui 4 microfones embutidos.

Já neste segundo vídeo, controlando um LED via porta GPIO:

Ou seja, a partir do momento que o controle de voz está funcional e a porta GPIO sob controle, o céu é o limite!

Você pode automatizar lampadas, abajur, ligar uma televisão e qualquer outra coisa que sua imaginação – e módulos disponíveis – permitirem, tudo com comando de voz. Claro que nisso entram outras adaptações, como microfones extras, quem sabe até um computador maior se mais comandos forem dados e controles atribuídos.

Se precisar de mais portas GPIO para seu Raspberry ou computador, este tutorial pode ser deveras útil!

Uma imagem geral de como ficou a montagem ao fim dos testes:

  • Saida HDMI para um monitor, teclado pra comandos
  • Caixinha da JBL® para saída de som via P2 (jack)
  • 2 módulos relay: um com 4 canais e outro com 2 canais.
    Um par de fios extras (GPIO + GND) pra ligar outras coisas.
  • PS Eye® para Microfone

5.1 Dicas

A quem se aventurar a brincar com essa inteligência artificial, recomendo algumas coisas.

5.1.1 Listener

A primeira delas é trocar o Listener, quem gerencia o reconhecimento de voz e dá mais precisão aos comandos. O Listener recomendado é o “Precise”, melhor que o padrão “PocketSphinx”.

Conforme a tabela dada pela própria Mycroft:

Não sei explicar a razão, mas o PocketSphinx, evidentemente inferior, é o padrão para novas instalações da IA. Para troca-lo, peça á IA que troque o listener, dizendo em alto e bom tom:

$ Hey nome-dado-á-IA, set the Listener to Precise

5.1.2 PyAutoGUI

Você pode comandar seu mouse e teclado por voz fazendo uma mesclagem de dois códigos.

  • A primeira, baseada neste post do site, instale o PyAutoGUI.
  • E em segundo, esta Skill não oficial no GitHub.

Assim você poderá dar comando tipo “type UnixUniverse é demais!” ou “hold down key”

Á medida que eu descobrir novas dicas, vou agregá-las aqui!

6. Conclusão

Não é apenas o irmão do Sherlock Holmes; mas o Mycroft a essa altura se mostrou uma IA de reconhecimento de falas bem maduro para competir com outros mais consolidados no mercado, como a Alexa, a Siri, Cortana ou Google Assistente.

Por um lado, infelizmente não haver suporte adequado a outros idiomas, como o Português, é um fator determinante no quesito usa-lo em larga escala. Até há um suporte, porém limitado com um sotaque gringo que faz qualquer frase soar estranha; o ideal é mante-lo no Inglês para melhor entendimento e comunicação com a IA.

Por outro lado, para quem quer uma IA confiável, que não coleta seus dados pessoais (principalmente por permitir ser executado offline) e de código aberto e livre, com certeza é uma boa opção!

Além disso, a maturidade do projeto proporciona uma oportunidade única de ter uma assistente pessoal em seu computador pessoal rodando Linux, ficando de igual pra igual com o suporte visto no Windows ou MacOS: Dê comandos práticos, até mesmo crie seus próprios comandos e customize seu sistema de reconhecimento de voz á sua maneira para suas necessidades, consumindo o mínimo de hardware com isso.

#UrbanCompassPony

Fonte:
electromaker.io

Deixe um comentário