Primeiros passos com Raspberry Pi
Este wiki foi escrito para o ReSpeaker 2-Mics Pi HAT v1; para distinguir o dispositivo v1 do v2, consulte How to Distinguish ReSpeaker 2-Mics Pi HAT Hardware Revisions.
Instalação e configuração do driver
1. Conecte o ReSpeaker 2-Mics Pi HAT ao Raspberry Pi
Monte o ReSpeaker 2-Mics Pi HAT no seu Raspberry Pi, certificando-se de que os pinos estejam devidamente alinhados ao empilhar o ReSpeaker 2-Mics Pi HAT.
Conexão com Raspberry Pi

Conexão com Raspberry Pi Zero

2. Configure o driver no Raspberry Pi
Certifique-se de que esteja executando a versão mais recente do Raspberry Pi OS no seu Pi. (atualizado em 2021.05.01)
- Passo 1: Obtenha o Device Tree Source (DTS) para o ReSpeaker 2-Mics Pi HAT (V1.0), compile-o e instale o device tree overlay.
git clone https://github.com/Seeed-Studio/seeed-linux-dtoverlays.git
cd seeed-linux-dtoverlays/
make overlays/rpi/respeaker-2mic-v1_0-overlay.dtbo
sudo cp overlays/rpi/respeaker-2mic-v1_0-overlay.dtbo /boot/firmware/overlays/respeaker-2mic-v1_0.dtbo
echo "dtoverlay=respeaker-2mic-v1_0" | sudo tee -a /boot/firmware/config.txt
- Passo 2: Reinicie o seu Pi.
sudo reboot
- Passo 3. Verifique se o nome da placa de som corresponde ao código-fonte seeed-voicecard com o comando
aplay -learecord -l.
pi@raspberrypi:~/Desktop/mic_hat $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
card 1: vc4hdmi0 [vc4-hdmi-0], device 0: MAI PCM i2s-hifi-0 [MAI PCM i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: vc4hdmi1 [vc4-hdmi-1], device 0: MAI PCM i2s-hifi-0 [MAI PCM i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 3: seeed2micvoicec [seeed-2mic-voicecard], device 0: bcm2835-i2s-wm8960-hifi wm8960-hifi-0 [bcm2835-i2s-wm8960-hifi wm8960-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
pi@raspberrypi:~/Desktop/mic_hat $ arecord -l
**** List of CAPTURE Hardware Devices ****
card 3: seeed2micvoicec [seeed-2mic-voicecard], device 0: bcm2835-i2s-wm8960-hifi wm8960-hifi-0 [bcm2835-i2s-wm8960-hifi wm8960-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
- Passo 4. Teste: você ouvirá o que disser nos microfones (não se esqueça de conectar um fone de ouvido ou um alto-falante):
arecord -D "plughw:3,0" -f S16_LE -r 16000 -d 5 -t wav test.wav
aplay -D "plughw:3,0" test.wav
Nota: "plughw:3,0" é o número do dispositivo de gravação (ou reprodução); dependendo do seu sistema esse número pode ser diferente (por exemplo, no Raspberry Pi 0 será 0, já que ele não tem saída de áudio). Podemos encontrá-lo via "arecord -l" e "aplay -l".
3. Configure as definições de som e ajuste o volume com alsamixer
alsamixer é um programa de mixer gráfico para o Advanced Linux Sound Architecture (ALSA) usado para configurar definições de som e ajustar o volume.
pi@raspberrypi:~ $ alsamixer

As setas Esquerda e Direita são usadas para selecionar o canal ou dispositivo e as setas Para Cima e Para Baixo controlam o volume do dispositivo atualmente selecionado. Saia do programa com ALT+Q ou pressionando a tecla Esc. Mais informações
Use a tecla F6 para selecionar primeiro o dispositivo seeed-2mic-voicecard.
Visão geral de uso
Para executar os exemplos a seguir, clone o repositório https://github.com/respeaker/mic_hat.git no seu Raspberry Pi
git clone https://github.com/respeaker/mic_hat.git
cd mic_hat
Todos os scripts Python mencionados nos exemplos abaixo podem ser encontrados dentro deste repositório. Para instalar as dependências necessárias, a partir da pasta do repositório mic_hat, execute
sudo apt-get install portaudio19-dev libatlas-base-dev
pip3 install -r requirements.txt
LEDs APA102
Cada LED APA102 integrado possui um chip driver adicional. O chip driver cuida de receber a cor desejada por meio de suas linhas de entrada e manter essa cor até que um novo comando seja recebido.
python3 interfaces/pixels.py
Botão de Usuário
Há um botão de usuário integrado, que está conectado ao GPIO17. Agora vamos tentar detectá-lo com Python e RPi.GPIO.
Execute o seguinte código a partir da pasta do repositório mic_hat, que você clonou no Passo 4.
python3 interfaces/button.py
Ele deve exibir "on" quando você pressionar o botão:
python3 button.py
Saída semelhante a
pi@raspberrypi:~ $ python3 button.py
off
off
on
on
off
Gravar som com Python
Usamos a biblioteca Python PyAudio para gravar som com Python.
Primeiro, execute o seguinte script para obter o número de índice do dispositivo do 2 Mic Pi HAT:
python3 recording_examples/get_device_index.py
Você verá o ID do dispositivo como abaixo.
Input Device id 2 - seeed-2mic-voicecard: - (hw:1,0)
Para gravar o som, abra o arquivo recording_examples/record.py com nano ou outro editor de texto e altere RESPEAKER_INDEX = 2 para o número de índice do ReSpeaker no seu sistema. Em seguida, execute o script Python record.py para fazer uma gravação:
python3 recording_examples/record.py
Se quiser extrair os dados do canal 0 dentre 2 canais, veja o conteúdo de record_one_channel.py. Para outro canal X, altere [0::2] para [X::2].
python3 recording_examples/record_one_channel.py
Para reproduzir os samples gravados, você pode usar o utilitário de sistema aplay, por exemplo
aplay -f cd -Dhw:1 output.wav #for Stereo sound
aplay -D plughw:1,0 output_one_channel.wav #for Mono sound from one channel
Como alternativa, você pode usar o script recording_examples/play.py para reproduzir os arquivos .wav com PyAudio.
python3 recording_examples/play.py path-to-wav-file
Certifique-se de especificar o índice correto do dispositivo de saída em play.py – caso contrário o PyAudio irá travar!
Picovoice com ReSpeaker 2-Mic Pi HAT e Raspberry Pi
Passo 1. Siga o tutorial passo a passo acima do ReSpeaker 2-Mic Pi HAT com Raspberry Pi antes do que se segue.
Nota: Certifique-se de que os LEDs APA102 estejam funcionando corretamente no ReSpeaker 2-Mic Pi HAT com Raspberry Pi.
Passo 2. Digite o seguinte comando no terminal para instalar o demo Picovoice para o ReSpeaker 2-Mic Pi HAT.
pip3 install pvrespeakerdemo
Nota: Em uma instalação nova do Raspberry Pi OS, você pode notar o seguinte aviso ao instalar este demo: The script picovoice_respeaker_demo is installed in '/home/pi/.local/bin' which is not on PATH.
Isso significa que, para executar o demo, você precisa adicionar /home/pi/.local/bin ao PATH do seu sistema:
echo 'export PATH="$HOME/bin:$HOME/.local/bin:$PATH"' >> ~/.bashrc
Uso do Demo
O demo utiliza o ReSpeaker 2-Mic Pi HAT em um Raspberry Pi com a tecnologia Picovoice para controlar os LEDs. Este demo é acionado pela palavra de ativação "Picovoice" e ficará pronto para executar ações em seguida, como ligar e desligar os LEDs e mudar as cores dos LEDs.
Depois que a instalação for concluída, digite este comando no terminal para executar o demo:
picovoice_respeaker_demo
Comandos de voz
Aqui estão os comandos de voz para este demo:
- Picovoice
O demo gera a saída:
wake word
- Turn on the lights
Você deverá ver as luzes acesas e a seguinte mensagem no terminal:
{
is_understood : 'true',
intent : 'turnLights',
slots : {
'state' : 'on',
}
}
A lista de comandos é mostrada no terminal:
context:
expressions:
turnLights:
- "[switch, turn] $state:state (all) (the) [light, lights]"
- "[switch, turn] (all) (the) [light, lights] $state:state"
changeColor:
- "[change, set, switch] (all) (the) (light, lights) (color) (to) $color:color"
slots:
state:
- "off"
- "on"
color:
- "blue"
- "green"
- "orange"
- "pink"
- "purple"
- "red"
- "white"
- "yellow"
além disso, você pode tentar este comando para mudar a cor:
- Picovoice, set the lights to orange
Desligue as luzes com:
- Picovoice, turn off all lights
Demonstração em vídeo do Demo
Código-fonte do Demo
O demo é construído com o Picovoice SDK. O código-fonte do demo está disponível no GitHub em https://github.com/Picovoice/picovoice/tree/master/demo/respeaker.
Diferentes Palavras de Ativação
O Picovoice SDK inclui palavras de ativação de exemplo gratuitas licenciadas sob Apache 2.0, incluindo os principais assistentes de voz (por exemplo, "Hey Google", "Alexa") e algumas divertidas como "Computer" e "Jarvis".
Comandos de Voz Personalizados
Os comandos de iluminação são definidos por um contexto de Fala‑para‑Intenção (Speech-to-Intent) do Picovoice. Você pode criar e treinar contextos digitando a gramática permitida usando o Picovoice Console. Você pode testar suas alterações no navegador enquanto edita, usando o botão do microfone. Acesse o Picovoice Console (https://picovoice.ai/console/) e crie uma conta. Use o Rhino Speech-to-Intent editor para criar contextos e, em seguida, treiná‑los para o Raspberry Pi.

Exemplos de Múltiplas Palavras de Ativação
Porcupine
Porcupine é um mecanismo de palavra de ativação altamente preciso e leve. Ele permite criar aplicações com reconhecimento de voz sempre ativo aplicações. Ele é
- baseado em redes neurais profundas treinadas em ambientes do mundo real.
- compacto e computacionalmente eficiente. É perfeito para IoT.
- multiplataforma. Raspberry Pi, BeagleBone, Android, iOS, Linux (x86_64), macOS (x86_64), Windows (x86_64) e navegadores web são suportados. Além disso, clientes corporativos têm acesso ao SDK para ARM Cortex-M.
- escalável. Ele pode detectar vários comandos de voz sempre ativos sem aumentar o uso de recursos em tempo de execução.
- autoatendimento. Desenvolvedores podem treinar modelos de palavra de ativação personalizados usando o Picovoice Console.
Para demonstrar a capacidade do Picovoice, também preparamos alguns exemplos de múltiplas palavras de ativação usando o ReSpeaker 2-Mic Pi HAT com Raspberry Pi! Diferentes palavras de ativação podem ser configuradas para executar determinadas tarefas.
Este pacote contém uma demonstração de linha de comando para controlar os LEDs do ReSpeaker 2-Mic Pi HAT usando o Porcupine.
Introdução ao Multi Wake Word
Execute o seguinte comando no terminal para instalar o driver de demonstração:
pip3 install ppnrespeakerdemo
Uso do Multi Wake Word
Execute o seguinte no terminal após a instalação do driver:
porcupine_respeaker_demo
Aguarde a inicialização da demonstração e a impressão de [Listening] no terminal. Diga:
Picovoice
A demonstração exibe:
detected 'Picovoice'
As luzes agora estão definidas para green. Diga:
Alexa
As luzes agora estão definidas para yellow. Diga:
Terminator
para apagar as luzes.
Palavras de Ativação para Cores
Abaixo estão as cores associadas às palavras de ativação compatíveis para esta demonstração:
AlexaBumblebeeComputerHey GoogleHey SiriJarvisPicovoicePorcupineTerminator
Código-Fonte de Exemplo de Múltiplas Palavras de Ativação
Consulte o código-fonte completo deste exemplo aqui: https://github.com/Picovoice/porcupine/tree/master/demo/respeaker.
Detecção de Palavras‑Chave com ReSpeaker 2-Mic Pi HAT e Mycroft Precise
Mycroft Precise é um mecanismo de detecção de palavra‑chave completamente de código aberto. Embora tenha funcionalidades mais limitadas em comparação com o Picovoice, ele também possui uma licença mais permissiva (Apache 2.0), que permite modificação e redistribuição, incluindo fechada e comercial, desde que a licença seja preservada.
Para começar a usar o Mycroft Precise, instale a versão estável mais recente do fork do Mycroft Precise da Seeed:
sudo apt-get install libatlas-base-dev
pip3 install git+https://github.com/respeaker/mycroft_runner_simple.git
Nota: Em uma instalação nova do Raspberry Pi OS, você pode notar o seguinte aviso ao instalar esta demonstração: The script picovoice_respeaker_demo is installed in '/home/pi/.local/bin' which is not on PATH.
Isso significa que, para executar a demonstração, você precisa adicionar /home/pi/.local/bin ao PATH do seu sistema:
echo 'export PATH="$HOME/bin:$HOME/.local/bin:$PATH"' >> ~/.bashrc
Em seguida, você pode testar a instalação do Mycroft Precise simplesmente executando
mycroft-precise --model hey-mycroft
Se você quiser integrar o Mycroft Precise ao seu próprio projeto, consulte o arquivo README do repositório no Github para mais informações sobre a API.
Assistente Inteligente com ReSpeaker 2-Mic Pi HAT e Mycroft Core
Mycroft é um assistente de voz open source hackeável. Ele é semelhante em funcionalidade ao Amazon Alexa ou Google Assistant, mas possui uma licença mais permissiva (Apache 2.0), que permite modificação e redistribuição, incluindo fechada e comercial, desde que a licença seja preservada.
Esta seção está em desenvolvimento no momento, adicionaremos mais detalhes sobre o uso do Mycroft Core com o Respeaker
Introdução ao Picovoice com ReSpeaker 2-Mic Pi HAT e Raspberry Pi Zero
Passo 1. Instale os drivers e configure o dispositivo conforme descrito em Instalação e configuração do driver.
Depois, execute git clone no repositório do Picovoice no GitHub:
git clone --recurse-submodules https://github.com/Picovoice/picovoice.git
cd picovoice
Nota: Certifique‑se de que os LEDs APA102 estão funcionando corretamente no ReSpeaker 2-Mic Pi HAT com Raspberry Pi Zero.
Passo 2. Instale a biblioteca wiringpi digitando o seguinte no terminal.
sudo apt-get install wiringpi
Passo 3. A partir da raiz do repositório, digite o seguinte comando no terminal para instalar a demonstração Picovoice para o ReSpeaker 2-Mic Pi HAT.
gcc -std=c99 -O3 -o demo/respeaker-rpi0/picovoice_demo_mic \
-I sdk/c/include/ demo/respeaker-rpi0/picovoice_demo_mic.c \
-ldl -lasound -lwiringPi
Uso da Demonstração
A demonstração utiliza o ReSpeaker 2-Mic Pi HAT em um Raspberry Pi Zero com a tecnologia Picovoice para controlar os LEDs. Esta demonstração é acionada pela palavra de ativação "Picovoice" e ficará pronta para executar ações subsequentes, como ligar e desligar os LEDs e alterar as cores dos LEDs.
Depois que a instalação terminar, digite este comando a partir da raiz do repositório para executar a demonstração no terminal:
./demo/respeaker-rpi0/picovoice_demo_mic \
sdk/c/lib/raspberry-pi/arm11/libpicovoice.so \
resources/porcupine/lib/common/porcupine_params.pv \
resources/porcupine/resources/keyword_files/raspberry-pi/picovoice_raspberry-pi.ppn \
0.65 \
resources/rhino/lib/common/rhino_params.pv \
demo/respeaker/pvrespeakerdemo/respeaker_raspberry-pi.rhn \
0.5 \
plughw:CARD=seeed2micvoicec,DEV=0
Comandos de Voz
Aqui estão os comandos de voz para esta demonstração:
- Picovoice
A demonstração exibe:
wake word
- Turn on the lights
Você deverá ver as luzes acenderem e a seguinte mensagem no terminal:
{
is_understood : 'true',
intent : 'turnLights',
slots : {
'state' : 'on',
}
}
A lista de comandos é exibida no terminal:
context:
expressions:
turnLights:
- "[switch, turn] $state:state (all) (the) [light, lights]"
- "[switch, turn] (all) (the) [light, lights] $state:state"
changeColor:
- "[change, set, switch] (all) (the) (light, lights) (color) (to) $color:color"
slots:
state:
- "off"
- "on"
color:
- "blue"
- "green"
- "orange"
- "pink"
- "purple"
- "red"
- "white"
- "yellow"
além disso, você pode tentar este comando para mudar a cor:
- Picovoice, set the lights to orange
Desligue as luzes com:
- Picovoice, turn off all lights
Demonstração em Vídeo
Código-Fonte da Demonstração
A demonstração é construída com o Picovoice SDK. O código-fonte da demonstração está disponível no GitHub em https://github.com/Picovoice/picovoice/tree/master/demo/respeaker-rpi0.
Diferentes Palavras de Ativação
O Picovoice SDK inclui palavras de ativação de exemplo gratuitas licenciadas sob Apache 2.0, incluindo os principais assistentes de voz (por exemplo, "Hey Google", "Alexa") e algumas divertidas como "Computer" e "Jarvis".
Comandos de Voz Personalizados
Os comandos de iluminação são definidos por um contexto de Fala‑para‑Intenção (Speech-to-Intent) do Picovoice. Você pode criar e treinar contextos digitando a gramática permitida usando o Picovoice Console. Você pode testar suas alterações no navegador enquanto edita, usando o botão do microfone. Acesse o Picovoice Console (https://picovoice.ai/console/) e crie uma conta. Use o Rhino Speech-to-Intent editor para criar contextos e, em seguida, treiná‑los para o Raspberry Pi Zero.

Exemplos de Múltiplas Palavras de Ativação
Para demonstrar a capacidade do Picovoice, também preparamos alguns exemplos de múltiplas palavras de ativação usando o ReSpeaker 2-Mic Pi HAT com Raspberry Pi Zero! Diferentes palavras de ativação podem ser configuradas para executar determinadas tarefas.
Este pacote contém uma demonstração de linha de comando para controlar os LEDs do ReSpeaker 2-Mic Pi HAT usando o Porcupine.
Porcupine
Porcupine é um engine de palavra de ativação altamente preciso e leve. Ele possibilita criar aplicativos com voz sempre escutando. Ele é
- baseado em redes neurais profundas treinadas em ambientes do mundo real.
- compacto e computacionalmente eficiente. É perfeito para IoT.
- multiplataforma. Raspberry Pi, BeagleBone, Android, iOS, Linux (x86_64), macOS (x86_64), Windows (x86_64) e navegadores web são compatíveis. Além disso, clientes corporativos têm acesso ao SDK para ARM Cortex-M.
- escalável. Ele pode detectar vários comandos de voz sempre ativos sem aumento no tamanho de execução.
- autoatendimento. Desenvolvedores podem treinar modelos de palavra de ativação personalizados usando o Picovoice Console.
Introdução ao Multi Wake Word
Passo 1 Instale a biblioteca wiringpi (se ainda não tiver instalado) digitando o seguinte no terminal.
sudo apt-get install wiringpi
Em seguida, faça o git clone do repositório do Picovoice no GitHub:
git clone --recurse-submodules https://github.com/Picovoice/porcupine.git
cd picovoice
Passo 2. A partir da raiz do repositório, digite o seguinte comando no terminal para instalar a demonstração do Porcupine para o ReSpeaker 2-Mic Pi HAT.
gcc -std=c99 -O3 -o demo/respeaker-rpi0/porcupine_demo_mic \
-I include/ demo/respeaker-rpi0/porcupine_demo_mic.c \
-ldl -lasound -lwiringPi
Uso do Multi Wake Word
Execute o seguinte no terminal a partir da raiz do repositório:
./demo/respeaker-rpi0/porcupine_demo_mic \
lib/raspberry-pi/arm11/libpv_porcupine.so \
lib/common/porcupine_params.pv \
0.65 \
plughw:CARD=seeed2micvoicec,DEV=0 \
resources/keyword_files/raspberry-pi/alexa_raspberry-pi.ppn \
resources/keyword_files/raspberry-pi/computer_raspberry-pi.ppn \
resources/keyword_files/raspberry-pi/hey\ google_raspberry-pi.ppn \
resources/keyword_files/raspberry-pi/hey\ siri_raspberry-pi.ppn \
resources/keyword_files/raspberry-pi/jarvis_raspberry-pi.ppn \
resources/keyword_files/raspberry-pi/picovoice_raspberry-pi.ppn \
resources/keyword_files/raspberry-pi/porcupine_raspberry-pi.ppn \
resources/keyword_files/raspberry-pi/bumblebee_raspberry-pi.ppn \
resources/keyword_files/raspberry-pi/terminator_raspberry-pi.ppn
Aguarde a inicialização da demonstração e que seja impresso [Listening] no terminal. Diga:
Picovoice
A demonstração gera a seguinte saída:
detected 'Picovoice'
As luzes agora estão definidas para green. Diga:
Alexa
As luzes agora são configuradas para yellow. Diga:
Terminator
para desligar as luzes.
Palavras de Ativação para Cores
Abaixo estão as cores associadas às palavras de ativação compatíveis para esta demonstração:
AlexaBumblebeeComputerHey GoogleHey SiriJarvisPicovoicePorcupineTerminator
Código-fonte de Exemplo com Múltiplas Palavras de Ativação
Consulte o código-fonte completo deste exemplo aqui: https://github.com/Picovoice/porcupine/tree/master/demo/respeaker-rpi0.
Suporte Técnico Picovoice
Se você encontrar problemas técnicos ao usar o Picovoice, visite Picovoice para discussões.
FAQ
Q1: Erro #include "portaudio.h" ao executar "sudo pip install pyaudio".
A1: Execute o comando abaixo para resolver o problema.
sudo apt-get install portaudio19-dev
Q2: Como alterar a fonte de Mirrors do Raspbian?
A2: Consulte Raspbian Mirrors e siga as instruções abaixo para modificar a fonte no início.
pi@raspberrypi ~ $ sudo nano /etc/apt/sources.list
Por exemplo, sugerimos usar a fonte de Tsinghua para usuários na China. Portanto, modifique o sources.list como abaixo.
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main non-free contrib
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main non-free contrib