reSpeaker 4-Mic Linear Array Kit

El kit lineal ReSpeaker 4-Mic de Seeed es una placa de expansión, también conocida como HAT, diseñada para Raspberry Pi. Es un kit de matriz lineal de micrófonos, viene con cuatro micrófonos y está diseñado para aplicaciones de IA y voz. Esto significa que puedes construir un producto de voz más potente y flexible con Raspberry Pi que pueda integrar Amazon Alexa Voice Service, Google Assistant, etc.
ReSpeaker 4-Mic Linear Array Kit para Raspberry Pi consta de dos placas, una es el HAT de accesorio de voz y la otra es la matriz lineal de cuatro micrófonos.
ReSpeaker 4-Mic Linear Array Kit para Raspberry Pi admite 8 canales de entrada y 8 canales de salida en Raspberry Pi OS. Los primeros 6 canales de entrada son para la grabación del micrófono (solo los primeros 4 canales de entrada capturan datos válidos), los otros 2 canales de entrada son canales de eco de la reproducción. Los primeros 2 canales de salida son para la salida de sonido, los otros 6 canales de salida son ficticios.
Características
- 2 chips ADC y 1 chip DAC
- 8 canales de entrada y 8 canales de salida
- Matriz de cuatro micrófonos
- Compatibilidad con Grove
- Compatible con Raspberry Pi (compatible con Raspberry Pi Zero y Zero W, Raspberry Pi B+, Raspberry Pi 2 B, Raspberry Pi 3 B, Raspberry Pi 3 B+, Raspberry Pi 3 A+ y Raspberry Pi 4)
- Salida de voz para auriculares y altavoz
Especificación
- 2 x X-Power AC108 ADC
- 4 x micrófonos analógicos de alto rendimiento
- 1 x X-Power AC101 DAC
- Salida de voz:
- Conector de audio para auriculares de 3,5 mm
- Conector para altavoz
- Compatible con cabeceras de 40 pines de Raspberry Pi
- Micrófonos: MSM321A3729H9BP
- Sensibilidad: -22 dBFS (Omnidireccional)
- SNR: 59 dB
- Frecuencia de muestreo máxima: 48Khz
Ideas de aplicación
- Altavoz inteligente
- Sistemas de asistente de voz inteligente
- Grabadoras de voz
- Sistema de conferencias de voz
- Equipos de comunicación para reuniones
- Robot de interacción por voz
- Asistente de voz para automóvil
- Otros escenarios que necesitan comandos de voz
Descripción general del hardware
Diagrama del sistema
Interfaz

Después de conectar, asegúrate de usar un multímetro para determinar si la conducción del circuito es como se indica en la figura anterior.
Dibujo de ensamblaje

Primeros pasos
Conectar ReSpeaker 4-Mic Array a Raspberry Pi
Paso 1. Conecta el ReSpeaker Voice Accessory HAT con el ReSpeaker 4-Mic linear Array mediante el cable plano
Paso 2. Inserta el ReSpeaker Voice Accessory HAT en la Raspberry Pi a través del GPIO de 40 pines
Paso 3. Conecta los auriculares al conector de audio para auriculares de 3,5 mm o conecta el altavoz al conector para altavoz JST 2.0
Paso 4. Conecta la Raspberry Pi con el PC mediante el cable micro-USB

Software
Paso 1. Instalar seeed-voicecard
Obtén el código fuente de la tarjeta de voz de Seeed e instala todos los controladores del kernel de Linux.
sudo apt-get update
git clone https://github.com/HinTak/seeed-voicecard.git
cd seeed-voicecard
sudo ./install.sh
sudo reboot
Paso 2. Comprobar la tarjeta de sonido
Escribe el siguiente comando para comprobar el dispositivo de grabación.
pi@raspberrypi:~ $ arecord -L
Debería ser algo como:
pi@raspberrypi:~ $ arecord -L
null
Discard all samples (playback) or generate zero samples (capture)
default
Playback/recording through the PulseAudio sound server
ac108
dmixer
ac101
sysdefault:CARD=seeed8micvoicec
seeed-8mic-voicecard,
Default Audio Device
dmix:CARD=seeed8micvoicec,DEV=0
seeed-8mic-voicecard,
Direct sample mixing device
dsnoop:CARD=seeed8micvoicec,DEV=0
seeed-8mic-voicecard,
Direct sample snooping device
hw:CARD=seeed8micvoicec,DEV=0
seeed-8mic-voicecard,
Direct hardware device without any conversions
plughw:CARD=seeed8micvoicec,DEV=0
seeed-8mic-voicecard,
Hardware device with all software conversions
Usa el siguiente comando para comprobar el dispositivo de reproducción.
pi@raspberrypi:~ $ aplay -L
Debería ser algo como:
pi@raspberrypi:~ $ aplay -L
null
Discard all samples (playback) or generate zero samples (capture)
default
Playback/recording through the PulseAudio sound server
ac108
dmixer
ac101
sysdefault:CARD=ALSA
bcm2835 ALSA, bcm2835 ALSA
Default Audio Device
dmix:CARD=ALSA,DEV=0
bcm2835 ALSA, bcm2835 ALSA
Direct sample mixing device
dmix:CARD=ALSA,DEV=1
bcm2835 ALSA, bcm2835 IEC958/HDMI
Direct sample mixing device
dsnoop:CARD=ALSA,DEV=0
bcm2835 ALSA, bcm2835 ALSA
Direct sample snooping device
dsnoop:CARD=ALSA,DEV=1
bcm2835 ALSA, bcm2835 IEC958/HDMI
Direct sample snooping device
hw:CARD=ALSA,DEV=0
bcm2835 ALSA, bcm2835 ALSA
Direct hardware device without any conversions
hw:CARD=ALSA,DEV=1
bcm2835 ALSA, bcm2835 IEC958/HDMI
Direct hardware device without any conversions
plughw:CARD=ALSA,DEV=0
bcm2835 ALSA, bcm2835 ALSA
Hardware device with all software conversions
plughw:CARD=ALSA,DEV=1
bcm2835 ALSA, bcm2835 IEC958/HDMI
Hardware device with all software conversions
sysdefault:CARD=seeed8micvoicec
seeed-8mic-voicecard,
Default Audio Device
dmix:CARD=seeed8micvoicec,DEV=0
seeed-8mic-voicecard,
Direct sample mixing device
dsnoop:CARD=seeed8micvoicec,DEV=0
seeed-8mic-voicecard,
Direct sample snooping device
hw:CARD=seeed8micvoicec,DEV=0
seeed-8mic-voicecard,
Direct hardware device without any conversions
plughw:CARD=seeed8micvoicec,DEV=0
seeed-8mic-voicecard,
Hardware device with all software conversions
Paso 3. Grabar y reproducir
Puedes grabar y luego reproducir, o puedes grabar y reproducir al mismo tiempo.
#It will capture sound on AC108 and save as a.wav
arecord -Dac108 -f S32_LE -r 16000 -c 8 a.wav
#Take care of that the captured mic audio is on the first 6 channels
#It will play sound file a.wav on AC101
aplay -D ac101 a.wav
#Do not use -D plughw:1,0 directly except your wave file is single channel only.
Límite para desarrolladores que usan el 4-Mic Linear Array Kit para capturar y reproducir al mismo tiempo:
-1. la captura debe iniciarse primero, de lo contrario los canales de captura posiblemente estarán desordenados.
-2. los canales de salida de reproducción deben rellenarse con datos de 8 canales iguales o datos de 4 canales estéreo iguales, de lo contrario es posible que el altavoz o los auriculares no emitan nada.
-3. Si quieres reproducir y grabar al mismo tiempo, el archivo de música de aplay debe ser mono, o no podrás usar este comando para reproducir.
También puedes reproducir y grabar con Audacity.
Debes abrir Audacity mediante VNC o simplemente puedes usar un monitor para abrirlo
sudo apt update
sudo apt install audacity
audacity // run audacity

Descripción general de uso
Para ejecutar los siguientes ejemplos, clona el repositorio 4mics_hat repository en tu Raspberry Pi
git clone https://github.com/respeaker/4mics_hat.git
Todos los scripts de Python mencionados en los ejemplos a continuación se pueden encontrar dentro de este repositorio. Para instalar las dependencias necesarias, desde la carpeta del repositorio mic_hat, ejecuta
sudo apt-get install portaudio19-dev libatlas-base-dev
pip3 install -r requirements.txt
Grabar sonido con Python
Usamos la biblioteca de Python PyAudio para grabar sonido con Python.
Primero, ejecuta el siguiente script para obtener el número de índice de dispositivo de 2 Mic pi hat:
python3 recording_examples/get_device_index.py
Verás el ID del dispositivo como se muestra a continuación.
Input Device id 2 - seeed-8mic-voicecard: - (hw:1,0)
Para grabar el sonido, abre el archivo recording_examples/record.py con nano u otro editor de texto y cambia RESPEAKER_INDEX = 2 al número de índice de ReSpeaker en tu sistema. Luego ejecuta el script de Python record.py para hacer una grabación:
python3 recording_examples/record.py
- Paso 6. Si quieres extraer los datos del canal 0 de los 8 canales, echa un vistazo al contenido de
record_one_channel.py. Para otro canal X, cambia [0::8] a [X::8].
python3 recording_examples/record_one_channel.py
Para reproducir las muestras grabadas puedes usar la utilidad del sistema aplay, por ejemplo
aplay -f cd -Dhw:0 output.wav #for Stereo sound
aplay -D plughw:0,0 output_one_channel.wav #for Mono sound from one channel
Preguntas frecuentes
P1: Solo hay 4 micrófonos en la matriz de micrófonos, ¿cómo puede haber 8 canales?
R1: Hay 2 AC108 en esta matriz, y cada chip AC108 tiene 4 canales de salida. Así que en total hay 8 canales aquí, 4 de los cuales son para el micrófono, dos canales para la reproducción y los otros 2 canales no se usan.
P2: Si Raspberry puede detectar ReSpeaker 2-mics hat, pero no puede detectar ReSpeaker 4-mics linear array?
R2: Haz clic en raspberry -> Preferences -> Raspberry Pi Configuration, luego selecciona la pestaña Interfaces y asegúrate de que 1-Wire esté en Disabled.
Recursos
- [PDF] Hoja de datos AC101
- [PDF] Hoja de datos AC108
- [Driver] Controlador Seeed-Voice
- [Algorithms] Algoritmos que incluyen DOA, VAD, NS
- [Voice Engine] Proyecto Voice Engine, proporciona bloques de construcción para crear objetos habilitados para voz
- [Algorithms] AEC
- [Mechanical Drawing] Dibujo 2D
Proyectos
Mojing Mojing - A Smart Mirror with ReSpeaker!: Un espejo inteligente con control mediante interfaz de voz a través de ReSpeaker. También lo conectamos con Wio Link para controlar otros objetos. Basado en Raspberry Pi.
Soporte técnico y debate sobre el producto
Gracias por elegir nuestros productos. Estamos aquí para ofrecerte diferentes tipos de soporte y garantizar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para adaptarnos a distintas preferencias y necesidades.
