Pular para o conteúdo principal

reSpeaker USB 4-Mic Array XVF3000 v2.0

Estamos empolgados em apresentar formalmente o reSpeaker XVF3800 — uma atualização completa do reSpeaker XVF 3000. Com base na arquitetura de array de 4 microfones de seu antecessor, compatibilidade universal (Windows / macOS / Linux) e conveniência plug‑and‑play com firmware duplo (I2S / USB), o XVF3800 oferece um salto significativo tanto em fidelidade de áudio quanto em desempenho algorítmico.

Principais Destaques da Atualização

  • Algoritmos de Áudio com IA: Conjunto integrado com AEC (Acoustic Echo Cancellation), AGC (Automatic Gain Control), detecção de DoA (Direction of Arrival), beamforming, VAD (Voice Activity Detection), supressão de ruído e desreverberação — estabelecendo uma base sólida para aplicações avançadas de voz.
  • Captação de Voz em Campo Longe 360°: Captação de voz precisa dentro de um raio de 5 metros, atendendo facilmente sistemas de conferência, interação inteligente e cenários controlados por voz.
  • Modos de Operação Duplos: Troca flexível de firmware USB/I2S para atender a diferentes requisitos de desenvolvimento e implantação.
  • Detalhes e Especificações do Produto: ReSpeaker XVF3800 4-Mic Array Store Page
  • Guia de Início Rápido & Wiki: reSpeaker XVF3800 Getting Started Guide | Seeed Studio Wiki

O ReSpeaker Mic Array v2.0 é uma atualização do ReSpeaker Mic Array v1.0 original. Esta versão atualizada é baseada no XVF-3000 da XMOS, um chipset com desempenho significativamente superior ao XVSM-2000 usado anteriormente. Este novo chipset inclui muitos algoritmos de reconhecimento de voz para auxiliar no desempenho. O array pode ser empilhado (conectado) diretamente sobre o ReSpeaker Core original para melhorar significativamente o desempenho de interação por voz. Os microfones também foram aprimorados nesta versão, permitindo melhorias significativas de desempenho em relação à primeira geração do array de microfones com apenas 4 microfones.

O ReSpeaker Mic Array v2.0 suporta diretamente USB Audio Class 1.0 (UAC 1.0). Todos os principais Sistemas Operacionais, incluindo Windows, macOS e Linux, são compatíveis com UAC 1.0, permitindo que o mic array funcione como uma placa de som sem o ReSpeaker Core, ao mesmo tempo em que mantém algoritmos de voz, como DoA, BF e AEC nesses sistemas.

O ReSpeaker Mic Array v2.0 é uma ótima solução para quem deseja adicionar interface de voz em seus produtos existentes ou futuros. Ele também funciona bem como ponto de entrada para avaliação de interfaces de voz de nível superior. A placa permite certa flexibilidade para personalização sob solicitação.

O ReSpeaker Mic Array v2.0 possui duas versões de firmware disponíveis, uma incluindo algoritmos de fala e uma segunda para dados de voz brutos.

Versão

Versão do ProdutoAlteraçõesData de Lançamento
ReSpeaker Mic Array v1.0Inicial15 Ago, 2016
ReSpeaker Mic Array v2.0XVSM-2000 está EOL, muda o MCU para XVF-3000 e reduz os Mics de 7 para 4.25 Jan, 2018

Recursos

  • Captação de voz em campo longe
  • Suporta USB Audio Class 1.0 (UAC 1.0)
  • Array de quatro microfones
  • 12 indicadores RGB LED programáveis
  • Algoritmos e recursos de fala
    • Detecção de Atividade de Voz
    • Direção de Chegada
    • Beamforming
    • Supressão de Ruído
    • Desreverberação
    • Cancelamento de Eco Acústico

Especificação

  • XVF-3000 da XMOS
  • 4 microfones digitais de alto desempenho
  • Suporta Captação de Voz em Campo Longe
  • Algoritmo de fala em chip
  • 12 indicadores RGB LED programáveis
  • Microfones: ST MP34DT01TR-M
  • Sensibilidade: -26 dBFS (Omnidirecional)
  • Ponto de sobrecarga acústica: 120 dBSPL
  • SNR: 61 dB
  • Fonte de Alimentação: 5V DC pela Micro USB ou conector de expansão
  • Dimensões: 70mm (Diâmetro)
  • Saída de conector de áudio 3,5mm
  • Consumo de energia: 5V, 180mA com LED ligado e 170mA com LED desligado
  • Taxa Máxima de Amostragem:16Khz

Visão Geral de Hardware

  • XMOS XVF-3000: Integra algoritmos DSP avançados que incluem Acoustic Echo Cancellation (AEC), beamforming, desreverberação, supressão de ruído e controle de ganho.

  • Microfone Digital: O MP34DT01-M é um microfone digital MEMS omnidirecional, ultracompacto e de baixo consumo, construído com um elemento de detecção capacitiva e uma interface CI.

  • RGB LED: LED RGB de três cores.

  • Porta USB: Fornece energia e controla o mic array.

  • Conector de Fone de Ouvido 3,5mm: Saída de áudio. Podemos conectar caixas de som ativas ou fones de ouvido a esta porta.

  • WM8960: O WM8960 é um codec estéreo de baixo consumo com drivers de alto-falante Classe D para fornecer 1 W por canal em cargas de 8 W.

Diagrama do Sistema

Mapa de Pinos

Dimensões

Aplicações

  • Captação de Voz via USB
  • Alto-falante Inteligente
  • Sistemas de Assistente de Voz Inteligente
  • Gravadores de Voz
  • Sistema de Conferência por Voz
  • Equipamento de Comunicação para Reuniões
  • Robô de Interação por Voz
  • Assistente de Voz Automotivo
  • Outros Cenários de Interface por Voz

Primeiros Passos

nota

ReSpeaker Mic Array v2.0 é compatível com sistemas Windows, Mac, Linux e Android. Os scripts abaixo foram testados em Python2.7.

Para Android, nós o testamos com emteria.OS(Android 7.1) no Raspberry. Conectamos o mic array v2.0 à porta USB do Raspberry Pi e selecionamos o ReSpeaker mic array v2.0 como dispositivo de áudio. Aqui está a tela de gravação de áudio.

Aqui está a tela de reprodução de áudio. Conectamos o alto-falante ao conector de áudio 3,5mm do ReSpeaker mic array v2.0 e ouvimos o que gravamos.

Atualizar Firmware

Existem 2 firmwares. Um inclui dados de 1 canal, enquanto o outro inclui dados de 6 canais (firmware de fábrica). Aqui está a tabela com as diferenças.

FirmwareCanaisObservação
1_channel_firmware.bin1Áudio processado para ASR
6_channels_firmware.bin6Canal 0: áudio processado para ASR
Canal 1: dados brutos do mic1
Canal 2: dados brutos do mic2
Canal 3: dados brutos do mic3
Canal 4: dados brutos do mic4
Canal 5: reprodução mesclada

Para Linux: O Mic array suporta USB DFU. Desenvolvemos um script em Python dfu.py para atualizar o firmware via USB.

sudo apt-get update
sudo pip install pyusb click
git clone https://github.com/respeaker/usb_4_mic_array.git
cd usb_4_mic_array
sudo python dfu.py --download 6_channels_firmware.bin # The 6 channels version

# if you want to use 1 channel,then the command should be like:

sudo python dfu.py --download 1_channel_firmware.bin

Aqui está o resultado do download do firmware.

Para Windows/Mac: Não sugerimos usar máquina virtual Windows/Mac e Linux para atualizar o firmware.

Demonstração Pronta para Uso

Aqui está o exemplo de Acoustic Echo Cancellation com firmware de 6 canais.

  • Passo 1. Conecte o cabo USB ao PC e o conector de áudio ao alto-falante.

  • Passo 2. Selecione o mic array v2.0 como dispositivo de saída no PC.
  • Passo 3. Inicie o Audacity para gravar.
  • Passo 4. Toque música primeiro no PC e depois fale.
  • Passo 5. Veremos a tela do Audacity como abaixo. Clique em Solo para ouvir o áudio de cada canal.

Canal0 Áudio (processado por algoritmos):

Canal1 Áudio (dados brutos do Mic1):

Canal5 Áudio (dados de reprodução):

Aqui está o vídeo sobre DOA e AEC.

Instalar o Driver de Controle de DFU e LED

  • Windows: Gravação e reprodução de áudio funcionam bem por padrão. O driver libusb-win32 só é necessário para controlar LEDs e parâmetros DSP no Windows. Usamos uma ferramenta prática - Zadig para instalar o driver libusb-win32 tanto para SEEED DFU quanto para SEEED Control (o ReSpeaker Mic Array tem 2 dispositivos no Gerenciador de Dispositivos do Windows).

cuidado

Certifique-se de que libusb-win32 esteja selecionado, não WinUSB ou libusbK.

  • MAC: Nenhum driver é necessário.
  • Linux: Nenhum driver é necessário.

Ajuste Fino

Para Linux/Mac/Windows: Podemos configurar alguns parâmetros de algoritmos integrados.

  • Obtenha a lista completa de parâmetros, para mais informações, consulte o FAQ.
git clone https://github.com/respeaker/usb_4_mic_array.git
cd usb_4_mic_array
python tuning.py -p
  • Exemplo nº 1, podemos desligar o Controle Automático de Ganho (AGC):
python tuning.py AGCONOFF 0
  • Exemplo nº 2, podemos verificar o ângulo de DOA.
pi@raspberrypi:~/usb_4_mic_array $ sudo python tuning.py DOAANGLE
DOAANGLE: 180

Controlar os LEDs

Podemos controlar os LEDs do ReSpeaker Mic Array V2 através de USB. O dispositivo USB possui uma Interface de Classe Específica do Fabricante que pode ser usada para enviar dados por meio de Transferência de Controle USB. Referenciamos a biblioteca python pyusb e criamos a biblioteca python usb_pixel_ring.

O comando de controle de LED é enviado por usb.core.Device.ctrl_transfer() do pyusb, com seus parâmetros conforme abaixo:

ctrl_transfer(usb.util.CTRL_OUT | usb.util.CTRL_TYPE_VENDOR | usb.util.CTRL_RECIPIENT_DEVICE, 0, command, 0x1C, data, TIMEOUT)

Aqui estão as APIs do usb_pixel_ring.

ComandoDadosAPIObservação
0[0]pixel_ring.trace()modo trace, mudança dos LEDs depende de VAD* e DOA*
1[red, green, blue, 0]pixel_ring.mono()modo mono, define todos os LEDs RGB para uma única cor, por exemplo Vermelho(0xFF0000), Verde(0x00FF00), Azul(0x0000FF)
2[0]pixel_ring.listen()modo listen, semelhante ao modo trace, mas não desliga os LEDs
3[0]pixel_ring.speak()modo de espera
4[0]pixel_ring.think()modo speak
5[0]pixel_ring.spin()modo spin
6[r, g, b, 0] * 12pixel_ring.custimize()modo personalizado, define cada LED para sua própria cor
0x20[brightness]pixel_ring.set_brightness()define o brilho, faixa: 0x00~0x1F
0x21[r1, g1, b1, 0, r2, g2, b2, 0]pixel_ring.set_color_palette()define a paleta de cores, por exemplo, pixel_ring.set_color_palette(0xff0000, 0x00ff00) junto com pixel_ring.think()
0x22[vad_led]pixel_ring.set_vad_led()define o LED central: 0 - desligado, 1 - ligado, outros - depende de VAD
0x23[volume]pixel_ring.set_volume()mostra o volume, faixa: 0 ~ 12
0x24[pattern]pixel_ring.change_pattern()define o padrão, 0 - padrão Google Home, outros - padrão Echo

Para Linux: Aqui está o exemplo para controlar os LEDs. Siga os comandos abaixo para executar a demonstração.

git clone https://github.com/respeaker/pixel_ring.git
cd pixel_ring
sudo python setup.py install
sudo python examples/usb_mic_array.py

Aqui está o código do usb_mic_array.py.

import time
from pixel_ring import pixel_ring


if __name__ == '__main__':
pixel_ring.change_pattern('echo')
while True:

try:
pixel_ring.wakeup()
time.sleep(3)
pixel_ring.think()
time.sleep(3)
pixel_ring.speak()
time.sleep(6)
pixel_ring.off()
time.sleep(3)
except KeyboardInterrupt:
break


pixel_ring.off()
time.sleep(1)

Para Windows/Mac: Aqui está o exemplo para controlar os LEDs.

  • Etapa 1. Baixar pixel_ring.
git clone https://github.com/respeaker/pixel_ring.git
cd pixel_ring/pixel_ring
  • Etapa 2. Crie um led_control.py com o código abaixo e execute 'python led_control.py'
from usb_pixel_ring_v2 import PixelRing
import usb.core
import usb.util
import time

dev = usb.core.find(idVendor=0x2886, idProduct=0x0018)
print dev
if dev:
pixel_ring = PixelRing(dev)

while True:
try:
pixel_ring.wakeup(180)
time.sleep(3)
pixel_ring.listen()
time.sleep(3)
pixel_ring.think()
time.sleep(3)
pixel_ring.set_volume(8)
time.sleep(3)
pixel_ring.off()
time.sleep(3)
except KeyboardInterrupt:
break

pixel_ring.off()
nota

Se você vir "None" impresso na tela, reinstale o driver libusb-win32.

DOA (Direction of Arrival)

Para Windows/Mac/Linux: Aqui está o exemplo para visualizar o DOA. O LED Verde é o indicador da direção da voz. Para o ângulo, consulte a visão geral de hardware.

  • Etapa 1. Baixar o usb_4_mic_array.
git clone https://github.com/respeaker/usb_4_mic_array.git
cd usb_4_mic_array
  • Etapa 2. Crie um DOA.py com o código abaixo dentro da pasta usb_4_mic_array e execute 'python DOA.py'
from tuning import Tuning
import usb.core
import usb.util
import time

dev = usb.core.find(idVendor=0x2886, idProduct=0x0018)

if dev:
Mic_tuning = Tuning(dev)
print Mic_tuning.direction
while True:
try:
print Mic_tuning.direction
time.sleep(1)
except KeyboardInterrupt:
break
  • Etapa 3. Veremos o DOA como abaixo.
pi@raspberrypi:~/usb_4_mic_array $ sudo python doa.py 
184
183
175
105
104
104
103

VAD (Voice Activity Detection)

Para Windows/Mac/Linux: Aqui está o exemplo para visualizar o VAD. O LED Vermelho é o indicador do VAD.

  • Etapa 1. Baixar o usb_4_mic_array.
git clone https://github.com/respeaker/usb_4_mic_array.git
cd usb_4_mic_array
  • Etapa 2. Crie um VAD.py com o código abaixo dentro da pasta usb_4_mic_array e execute 'python VAD.py'
from tuning import Tuning
import usb.core
import usb.util
import time

dev = usb.core.find(idVendor=0x2886, idProduct=0x0018)
#print dev
if dev:
Mic_tuning = Tuning(dev)
print Mic_tuning.is_voice()
while True:
try:
print Mic_tuning.is_voice()
time.sleep(1)
except KeyboardInterrupt:
break
  • Etapa 3. Veremos o DOA como abaixo.
pi@raspberrypi:~/usb_4_mic_array $ sudo python VAD.py 
0
0
0
1
0
1
0
nota

Para o limite de VAD, também podemos usar o GAMMAVAD_SR para configurar. Consulte Tuning para mais detalhes.

Extrair Voz

Usamos a biblioteca python PyAudio para extrair voz através de USB.

Para Linux: Podemos usar os comandos abaixo para gravar ou reproduzir a voz.

arecord -D plughw:1,0 -f cd test.wav # record, please use the arecord -l to check the card and hardware first
aplay -D plughw:1,0 -f cd test.wav # play, please use the aplay -l to check the card and hardware first
arecord -D plughw:1,0 -f cd |aplay -D plughw:1,0 -f cd # record and play at the same time

Também podemos usar script em python para extrair voz.

  • Etapa 1, precisamos executar o seguinte script para obter o número de índice de dispositivo do Mic Array:
sudo pip install pyaudio
cd ~
nano get_index.py
import pyaudio

p = pyaudio.PyAudio()
info = p.get_host_api_info_by_index(0)
numdevices = info.get('deviceCount')

for i in range(0, numdevices):
if (p.get_device_info_by_host_api_device_index(0, i).get('maxInputChannels')) > 0:
print "Input Device id ", i, " - ", p.get_device_info_by_host_api_device_index(0, i).get('name')
  • Etapa 3, pressione Ctrl + X para sair e pressione Y para salvar.

  • Etapa 4, execute 'sudo python get_index.py' e veremos o ID do dispositivo como abaixo.

Input Device id  2  -  ReSpeaker 4 Mic Array (UAC1.0): USB Audio (hw:1,0)
  • Etapa 5, altere RESPEAKER_INDEX = 2 para o número de índice. Execute o script python record.py para gravar um discurso.
import pyaudio
import wave

RESPEAKER_RATE = 16000
RESPEAKER_CHANNELS = 6 # change base on firmwares, 1_channel_firmware.bin as 1 or 6_channels_firmware.bin as 6
RESPEAKER_WIDTH = 2
# run getDeviceInfo.py to get index
RESPEAKER_INDEX = 2 # refer to input device id
CHUNK = 1024
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "output.wav"

p = pyaudio.PyAudio()

stream = p.open(
rate=RESPEAKER_RATE,
format=p.get_format_from_width(RESPEAKER_WIDTH),
channels=RESPEAKER_CHANNELS,
input=True,
input_device_index=RESPEAKER_INDEX,)

print("* recording")

frames = []

for i in range(0, int(RESPEAKER_RATE / CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
frames.append(data)

print("* done recording")

stream.stop_stream()
stream.close()
p.terminate()

wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
wf.setnchannels(RESPEAKER_CHANNELS)
wf.setsampwidth(p.get_sample_size(p.get_format_from_width(RESPEAKER_WIDTH)))
wf.setframerate(RESPEAKER_RATE)
wf.writeframes(b''.join(frames))
wf.close()
  • Etapa 6. Se você quiser extrair os dados do canal 0 de 6 canais, siga o código abaixo. Para outro canal X, altere [0::6] para [X::6].
import pyaudio
import wave
import numpy as np

RESPEAKER_RATE = 16000
RESPEAKER_CHANNELS = 6 # change base on firmwares, 1_channel_firmware.bin as 1 or 6_channels_firmware.bin as 6
RESPEAKER_WIDTH = 2
# run getDeviceInfo.py to get index
RESPEAKER_INDEX = 3 # refer to input device id
CHUNK = 1024
RECORD_SECONDS = 3
WAVE_OUTPUT_FILENAME = "output.wav"

p = pyaudio.PyAudio()

stream = p.open(
rate=RESPEAKER_RATE,
format=p.get_format_from_width(RESPEAKER_WIDTH),
channels=RESPEAKER_CHANNELS,
input=True,
input_device_index=RESPEAKER_INDEX,)

print("* recording")

frames = []

for i in range(0, int(RESPEAKER_RATE / CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
# extract channel 0 data from 6 channels, if you want to extract channel 1, please change to [1::6]
a = np.fromstring(data,dtype=np.int16)[0::6]
frames.append(a.tostring())

print("* done recording")

stream.stop_stream()
stream.close()
p.terminate()

wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
wf.setnchannels(1)
wf.setsampwidth(p.get_sample_size(p.get_format_from_width(RESPEAKER_WIDTH)))
wf.setframerate(RESPEAKER_RATE)
wf.writeframes(b''.join(frames))
wf.close()

Para Windows:

  • Etapa 1. Executamos o comando abaixo para instalar o pyaudio.
 pip install pyaudio
  • Etapa 2. Use get_index.py para obter o índice do dispositivo.
C:\Users\XXX\Desktop>python get_index.py
Input Device id 0 - Microsoft Sound Mapper - Input
Input Device id 1 - ReSpeaker 4 Mic Array (UAC1.0)
Input Device id 2 - Internal Microphone (Conexant I)
  • Etapa 3. Modifique o índice do dispositivo e os canais de record.py e então extraia a voz.
C:\Users\XXX\Desktop>python record.py
* recording
* done recording
cuidado

Se virmos "Error: %1 is not a valid Win32 application.", instale a versão Win32 do Python.

Para MAC:

  • Etapa 1. Executamos o comando abaixo para instalar o pyaudio.
 pip install pyaudio
  • Etapa 2. Use get_index.py para obter o índice do dispositivo.
MacBook-Air:Desktop XXX$ python get_index.py 
Input Device id 0 - Built-in Microphone
Input Device id 2 - ReSpeaker 4 Mic Array (UAC1.0)
  • Etapa 3. Modifique o índice do dispositivo e os canais de record.py e então extraia a voz.
MacBook-Air:Desktop XXX$ python record.py 
2018-03-24 14:53:02.400 Python[2360:16629] 14:53:02.399 WARNING: 140: This application, or a library it uses, is using the deprecated Carbon Component Manager for hosting Audio Units. Support for this will be removed in a future release. Also, this makes the host incompatible with version 3 audio units. Please transition to the API's in AudioComponent.h.
* recording
* done recording

FAQ

Q1: Parâmetros dos algoritmos integrados

pi@raspberrypi:~/usb_4_mic_array $ python tuning.py -p
name type max min r/w info
-------------------------------
AECFREEZEONOFF int 1 0 rw Adaptive Echo Canceler updates inhibit.
0 = Adaptation enabled
1 = Freeze adaptation, filter only
AECNORM float 16 0.25 rw Limit on norm of AEC filter coefficients
AECPATHCHANGE int 1 0 ro AEC Path Change Detection.
0 = false (no path change detected)
1 = true (path change detected)
AECSILENCELEVEL float 1 1e-09 rw Threshold for signal detection in AEC [-inf .. 0] dBov (Default: -80dBov = 10log10(1x10-8))
AECSILENCEMODE int 1 0 ro AEC far-end silence detection status.
0 = false (signal detected)
1 = true (silence detected)
AGCDESIREDLEVEL float 0.99 1e-08 rw Target power level of the output signal.
[−inf .. 0] dBov (default: −23dBov = 10log10(0.005))
AGCGAIN float 1000 1 rw Current AGC gain factor.
[0 .. 60] dB (default: 0.0dB = 20log10(1.0))
AGCMAXGAIN float 1000 1 rw Maximum AGC gain factor.
[0 .. 60] dB (default 30dB = 20log10(31.6))
AGCONOFF int 1 0 rw Automatic Gain Control.
0 = OFF
1 = ON
AGCTIME float 1 0.1 rw Ramps-up / down time-constant in seconds.
CNIONOFF int 1 0 rw Comfort Noise Insertion.
0 = OFF
1 = ON
DOAANGLE int 359 0 ro DOA angle. Current value. Orientation depends on build configuration.
ECHOONOFF int 1 0 rw Echo suppression.
0 = OFF
1 = ON
FREEZEONOFF int 1 0 rw Adaptive beamformer updates.
0 = Adaptation enabled
1 = Freeze adaptation, filter only
FSBPATHCHANGE int 1 0 ro FSB Path Change Detection.
0 = false (no path change detected)
1 = true (path change detected)
FSBUPDATED int 1 0 ro FSB Update Decision.
0 = false (FSB was not updated)
1 = true (FSB was updated)
GAMMAVAD_SR float 1000 0 rw Set the threshold for voice activity detection.
[−inf .. 60] dB (default: 3.5dB 20log10(1.5))
GAMMA_E float 3 0 rw Over-subtraction factor of echo (direct and early components). min .. max attenuation
GAMMA_ENL float 5 0 rw Over-subtraction factor of non-linear echo. min .. max attenuation
GAMMA_ETAIL float 3 0 rw Over-subtraction factor of echo (tail components). min .. max attenuation
GAMMA_NN float 3 0 rw Over-subtraction factor of non- stationary noise. min .. max attenuation
GAMMA_NN_SR float 3 0 rw Over-subtraction factor of non-stationary noise for ASR.
[0.0 .. 3.0] (default: 1.1)
GAMMA_NS float 3 0 rw Over-subtraction factor of stationary noise. min .. max attenuation
GAMMA_NS_SR float 3 0 rw Over-subtraction factor of stationary noise for ASR.
[0.0 .. 3.0] (default: 1.0)
HPFONOFF int 3 0 rw High-pass Filter on microphone signals.
0 = OFF
1 = ON - 70 Hz cut-off
2 = ON - 125 Hz cut-off
3 = ON - 180 Hz cut-off
MIN_NN float 1 0 rw Gain-floor for non-stationary noise suppression.
[−inf .. 0] dB (default: −10dB = 20log10(0.3))
MIN_NN_SR float 1 0 rw Gain-floor for non-stationary noise suppression for ASR.
[−inf .. 0] dB (default: −10dB = 20log10(0.3))
MIN_NS float 1 0 rw Gain-floor for stationary noise suppression.
[−inf .. 0] dB (default: −16dB = 20log10(0.15))
MIN_NS_SR float 1 0 rw Gain-floor for stationary noise suppression for ASR.
[−inf .. 0] dB (default: −16dB = 20log10(0.15))
NLAEC_MODE int 2 0 rw Non-Linear AEC training mode.
0 = OFF
1 = ON - phase 1
2 = ON - phase 2
NLATTENONOFF int 1 0 rw Non-Linear echo attenuation.
0 = OFF
1 = ON
NONSTATNOISEONOFF int 1 0 rw Non-stationary noise suppression.
0 = OFF
1 = ON
NONSTATNOISEONOFF_SR int 1 0 rw Non-stationary noise suppression for ASR.
0 = OFF
1 = ON
RT60 float 0.9 0.25 ro Current RT60 estimate in seconds
RT60ONOFF int 1 0 rw RT60 Estimation for AES. 0 = OFF 1 = ON
SPEECHDETECTED int 1 0 ro Speech detection status.
0 = false (no speech detected)
1 = true (speech detected)
STATNOISEONOFF int 1 0 rw Stationary noise suppression.
0 = OFF
1 = ON
STATNOISEONOFF_SR int 1 0 rw Stationary noise suppression for ASR.
0 = OFF
1 = ON
TRANSIENTONOFF int 1 0 rw Transient echo suppression.
0 = OFF
1 = ON
VOICEACTIVITY int 1 0 ro VAD voice activity status.
0 = false (no voice activity)
1 = true (voice activity)

Q2: ImportError: No module named usb.core

A2: Execute sudo pip install pyusb para instalar o pyusb.

pi@raspberrypi:~/usb_4_mic_array $ sudo python tuning.py DOAANGLE
Traceback (most recent call last):
File "tuning.py", line 5, in <module>
import usb.core
ImportError: No module named usb.core
pi@raspberrypi:~/usb_4_mic_array $ sudo pip install pyusb
Collecting pyusb
Downloading pyusb-1.0.2.tar.gz (54kB)
100% |████████████████████████████████| 61kB 101kB/s
Building wheels for collected packages: pyusb
Running setup.py bdist_wheel for pyusb ... done
Stored in directory: /root/.cache/pip/wheels/8b/7f/fe/baf08bc0dac02ba17f3c9120f5dd1cf74aec4c54463bc85cf9
Successfully built pyusb
Installing collected packages: pyusb
Successfully installed pyusb-1.0.2
pi@raspberrypi:~/usb_4_mic_array $ sudo python tuning.py DOAANGLE
DOAANGLE: 180

Q3: Vocês têm um exemplo para aplicação alexa no Raspberry?

A3: Sim, podemos conectar o mic array v2.0 à porta usb do Raspberry e seguir o Raspberry Pi Quick Start Guide with Script para fazer a interação por voz com a alexa.

Q4: Vocês têm um exemplo para o Mic array v2.0 com sistema ROS?

A4: Sim, agradecemos ao Yuki por compartilhar o pacote para integrar o ReSpeaker Mic Array v2 com o middleware ROS (Robot Operating System).

Q5: Como habilitar a porta de áudio de 3,5 mm para receber o sinal juntamente com a porta usb?

A5: Faça o download do novo firmware e grave o XMOS seguindo as instruções de How to update firmware.

Recursos

Suporte Técnico e Discussão de Produto

Obrigado por escolher nossos produtos! Estamos aqui para fornecer diferentes formas de suporte para garantir que sua experiência com nossos produtos seja o mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

Loading Comments...