Skip to main content

ReSpeaker XVF3800 の使用開始

概要

ReSpeaker XVF3800 USB 4-Mic Array は、XMOS XVF3800 を搭載したプロフェッショナル 4 マイク円形アレイで、AEC、AGC、DoA、ビームフォーミング、VAD、ノイズ抑制、残響除去、360° 音声キャプチャ(最大 5m)、および高度な音声アプリケーション向けのデュアル動作モードを特徴としています。

pir

特徴

  • チップアップグレード : XVF3000 から XVF3800 へ

  • クアッドマイクロフォンアレイ : 円形パターンの 4 つの高性能マイクで、最大 5 メートルの 360° 遠距離音声キャプチャ

  • 高度なオーディオ処理 : XVF3800 による AEC、マルチビームフォーミング、残響除去、DoA 検出、動的ノイズ抑制、60dB AGC 範囲

  • 固有のデバイスシリアル番号 : 内蔵 SN により、マルチデバイス展開と高度なデバイス管理が可能

  • デュアル動作モード : PC への即座接続のための USB プラグアンドプレイモードと、組み込みシステムとの統合のための INT-Device(I2S)モード—ファームウェアを適宜切り替えることで USB または I2C コマンドで設定可能

  • オープンソース対応 : USB ホスト(Windows、macOS、Raspberry Pi OS)および I2S ホスト(XIAO シリーズ、ESP32、Arduino)で動作

  • 視覚的フィードバック : プログラマブル RGB LED とステータスインジケータがデバイス状態と音声アクティビティを表示

  • 同等以上のオーディオ品質 : 以前のモデルと比較して

ハードウェア概要

pir

主要コンポーネント

コンポーネント / 機能説明
メインオーディオプロセッサXMOS XVF3800、AEC、ビームフォーミング、ノイズ抑制などのオーディオ処理を担当。
マイクロフォンアレイ円形パターンのクアッドPDM MEMSマイクロフォン、**360°遠距離音声キャプチャ(5m)**をサポート。
オーディオコーデックTLV320AIC3104、オーディオ変換と出力を処理。
RGB LED12個のWS2812個別アドレス可能RGB LED、視覚的フィードバック用(ステータス、音声アクティビティなど)。
ミュートボタン押すとマイクロフォン入力をミュート/ミュート解除
ミュートインジケータLED点灯(通常は赤)してオーディオがミュートされていることを表示。
リセットボタンボード/システムのハードウェアリセット。
USB Type-Cポート電源とデータの両方に使用(USB Audio Class 2.0準拠)。
3.5mm AUXヘッドフォンジャックヘッドフォンまたはアクティブスピーカー用のオーディオ出力。
スピーカーコネクタJSTスピーカーインターフェース5W増幅スピーカーをサポート。
デバッグパッドXTAG4または他のプログラマー用のデバッグアクセス。
I2C & I2Sヘッダー外部デバイスとのI2CおよびI2S通信用の露出ヘッダー。
未使用IOパッド(XIAO)XIAOモジュールに接続された追加のI/Oはんだパッド。
I2S & I2C通信これらのプロトコルを使用してRaspberry Pi、PCなどの外部ホストへの接続をサポート。
USB & INT-デバイスモードデュアルモード動作:プラグアンドプレイUSBまたはI2S経由の内部INTデバイスモード。
ユニークシリアル番号識別とマルチデバイス管理用の内蔵デバイスSN
オープンソース互換性Arduino、Raspberry Pi、PC/Macで動作し、XIAOシリーズと互換性あり。
高度なオーディオ機能AEC、ビームフォーミング、残響除去、DoA検出、DNNベースのノイズ抑制、60dB AGC。
視覚的フィードバックRGB LEDパターンステータスインジケータによるデバイス状態とオーディオアクティビティの表示。
オーディオ品質従来のXVF3000ベース設計と同等またはそれ以上。
note

ReSpeaker XVF3800は2つのバリエーションで提供されています—XIAOなしのものと、XIAO ESP32S3をオンボードで搭載したものです。XIAOなしのバージョンは、デフォルトのUSBファームウェアで動作します。XIAO統合バージョンを使用するには、INT-Device (I2S) モード用にビルドされたファームウェアをフラッシュする必要があります。詳細なセットアップ手順については、公式wikiガイドを参照してください。

XIAO ESP32S3 サポート

  • 複数の出力オプションを持つステレオI2S入力/出力;XVF3800パラメータの設定と管理のためのI2Cインターフェース。
  • IOピンによるXIAOリセット
  • インターフェースとはんだパッド

ピン配置

pir

pir

GPIO 概要

reSpeaker XVF3800は、外部制御用に3つの入力ピン(GPI)と5つの出力ピン(GPO)を公開しています。これらを使用してボタンの状態を読み取ったり、ミュートLED、アンプ、LEDなどのハードウェアを制御したりできます。

ピン名方向機能
X1D09入力 (RO)ミュートボタンステータス(リリース時にハイ)
X1D13入力 (RO)フローティング
X1D34入力 (RO)フローティング
X0D11出力 (RW)フローティング
X0D30出力 (RW)ミュートLED + マイクミュート制御(ハイ = ミュート)
X0D31出力 (RW)アンプ有効化(ロー = 有効)
X0D33出力 (RW)WS2812 LED電源制御(ハイ = オン)
X0D39出力 (RW)フローティング

はじめに

ハードウェアの準備

  • USB Type-C ケーブル
  • ホストコンピュータまたは Raspberry Pi

ソフトウェアの準備

開封後の使用方法

DOA (Direction of Arrival)

音声の入力方向に従って LED アレイが動作する様子を体験できます。

ミュートボタン

pir

ReSpeaker のミュートボタンは、マイクアレイからの音声キャプチャを一時的に無効にするために使用されます。 ミュートボタンを押すと何が起こりますか?

  • マイクがミュートされます — 外部の音声はキャプチャまたは処理されなくなります。
  • 赤色 LED が点灯してミュートモードがアクティブであることを示します。
  • これは、ReSpeaker がコンピュータやホストデバイスにオーディオ入力を送信しないことを意味します。

Audacity で試してみる

pir

リセットボタン

リセット(RST)ボタンは XVF3800 のハードウェアリセットを提供します。押すと、チップが再起動し、完全な電源サイクルと同様に、システムを最初から再初期化します。

pir

スピーカー接続

ここでは、オーディオ出力の好みに応じて、3.5mm AUX ヘッドフォンジャックまたはオンボード JST スピーカーインターフェースのいずれかを使用してスピーカーを接続する方法を確認できます。

pir

pir

セーフモード

セーフモードは ReSpeaker XVF3800 の特別なリカバリモードで、USB DFU または I2C 経由でファームウェアをフラッシュできます(Raspberry Pi や ESP32 などのデバイス用)。以前に I2S ファームウェアをフラッシュして USB ファームウェアに戻したい場合は、セーフモードに入り、USB DFU を使用して USB ファームウェアを再フラッシュできます。

note

ReSpeaker XVF3800 の各タイプのファームウェアは、異なる更新方法をサポートしています:

  • USB ファームウェアUSB DFU のみをサポートしており、USB 接続を使用してデバイスを更新できます。ただし、I2C DFU はサポートしていません

  • I2S ファームウェアはその逆で、I2C DFU をサポートしており、I2C インターフェース経由でファームウェアを更新できますが、USB DFU はサポートしていません

  • Factory パーティションに保存されているセーフモードファームウェアは最も柔軟性があります。USB DFU と I2C DFU の両方をサポートしています。

セーフモードを使用するタイミング

  • ファームウェアが正常に動作していない場合(例:USB が検出されない、LED が期待通りに点灯しない)。
  • 新しいファームウェアを再フラッシュする必要があるが、現在のファームウェアが応答しない場合。
  • 誤って間違ったものをフラッシュしてしまい、復旧したい場合。

セーフモードに入る方法

  • デバイスを完全に電源オフします。
  • ミュートボタンを押し続けます。
  • ミュートボタンを押し続けながら、電源を再接続します。
  • 赤色 LED が点滅し始めます — これでデバイスがセーフモードに入ったことが確認できます。
  • これで、デバイスは Factory パーティションに保存されているセーフモードファームウェアを実行します。

ファームウェアの更新

USB ケーブルを使用して reSpeaker XVF3800 を PC に接続します。XMOS のファームウェアをフラッシュするには、XMOS USB-C ポート(3.5mm ジャックポートの近く)を使用する必要があることに注意してください。

DFU Util のインストール

dfu-util は、USB 経由でデバイスファームウェアアップグレードを行うためのコマンドラインツールです。

  • dfu-util-0.11-binaries.tar.xz をダウンロードして展開します(例:D:\dfu-util-0.11-binaries\win64\
    ダウンロードリンク

  • dfu-util.exe へのパスをシステムの Path 変数に追加します:
    マイコンピュータ > プロパティ > 詳細設定 > 環境変数 > Path

  • コマンドプロンプトcmd)を開いてインストールを確認します:

dfu-util -V

pir

  • ReSpeaker XVF3800を接続し、デバイスの検出を確認します:
dfu-util -l

pir

以下のエラーが発生した場合:
Cannot open DFU device 2886:001a ... (LIBUSB_ERROR_NOT_SUPPORTED)
下記のドライバーインストール手順を実行してください。

  • Zadigをインストール
    • Zadigを開く → Options > List All Devices
    • reSpeaker 3800またはreSpeaker XVF3800 4-Mic Arrayを選択
    • WinUSBドライバーをインストール
    • デバイスの電源を入れ直す
    • dfu-util -lを再実行して検出を確認する

ファームウェアの書き込み

ファームウェアをここからダウンロードしてください。XMOS XVF 3800

  • 以下のコマンドを実行してファームウェアを書き込みます

dfu-util -R -e -a 1 -D /path/to/dfu_firmware.bin
  • Linuxでは、sudoで実行してください
sudo dfu-util -R -e -a 1 -D /path/to/dfu_firmware.bin
  • -R オプションは、フラッシュ後に自動的にボードを再起動します。

pir

  • dfu-util -l コマンドで再度ファームウェアバージョンを確認し、新しいファームウェアがフラッシュされていることを確認してください

録音と再生

Audacity のセットアップ(Windows)

  1. Audacity を開く
  2. Audio Setup > Audio Settings に移動

pir

  1. 以下のように設定:
    • Host: Windows WASAPI
    • Recording Device: reSpeaker 3800
    • Channels: 2 (Stereo)
    • Sample Rate: 16000 HzProjectDefault Sample Rate の両方)
    • Sample Format: 24-bit

pir

  1. OK をクリック
  2. 準備完了 — 録音を開始してください!

pir

reSpeaker XVF3800の制御方法

reSpeaker XVF3800には、ユーザーがデバイスの動作を設定し、パラメータデータを設定または読み取り、デバイスにパラメータデータを保存できる制御インターフェースが搭載されています。ユーザーはUSBまたはI2Cインターフェース経由でデバイスを制御できます。reSpeaker XVF3800の制御インターフェースに簡単に接続するため、サンプルホストアプリケーションxvf_host(Linux、macOS、Raspberry Pi OS用)またはxvf_host.exe(Windows用)が提供されています。

こちらからダウンロード

note

xvf_host経由での制御についてさらに詳しく知りたい場合は、この記事をお読みください。

Windowsユーザー

  • ReSpeaker XVF3800がUSB経由で接続されていることを確認
  • xvf_host.exeを以下のようなフォルダに解凍:
C:\Tools\xvf_host\

インストールの確認

cd C:\Tools\xvf_host
xvf_host.exe --help

デバイス接続の確認

xvf_host.exe VERSION

期待される出力:

Device (USB)::device_init() -- Found device VID: 10374 PID: 26 interface: 3
VERSION 2 0 2

LED制御

コマンド説明
led_effectxvf_host.exe led_effect 10=オフ, 1=ブリーズ, 2=レインボー, 3=ソリッド, 4=DoA
led_colorxvf_host.exe led_color 0xff880016進数カラーを設定(オレンジ)
led_speedxvf_host.exe led_speed 1エフェクト速度を設定
led_brightnessxvf_host.exe led_brightness 255明度を設定
led_gammifyxvf_host.exe led_gammify 1ガンマ補正を有効化
led_doa_colorxvf_host.exe led_doa_color 0x0000ff 0xff0000DoAベース/方向カラーを設定

🟠 例(ブリーズオレンジ):

xvf_host.exe led_effect 1
xvf_host.exe led_color 0xff8800
xvf_host.exe led_speed 1
xvf_host.exe led_brightness 255

設定

xvf_host.exe save_configuration 1
xvf_host.exe clear_configuration 1

GPIO制御

入力の読み取り:

xvf_host.exe GPI_READ_VALUES

出力例: GPI_READ_VALUES 1 0 0

この例では、戻り値 1 0 0 は、Pin X1D09 がハイレベル、Pin X1D13 がローレベル、Pin X1D34 がローレベルであることを意味します。

出力の読み取り:

xvf_host.exe GPO_READ_VALUES

出力例: GPO_READ_VALUES 0 1 1 0 0

この例では、戻り値 0 0 0 1 0 は、Pin X0D11 がローレベル、Pin X0D30 がローレベル、Pin X0D31 がハイレベル、Pin X0D33 がハイレベル、Pin X0D39 がローレベルであることを意味します。

出力設定:

xvf_host.exe GPO_WRITE_VALUE 30 1  # Turn ON mute LED
xvf_host.exe GPO_WRITE_VALUE 30 0 # Turn OFF mute LED

到達方向 (DoA)

  • DoA は誰かが話している方向を教えてくれます。
  • ReSpeaker XVF3800 の LED リング はライトを使って方向を表示します。
  • xvf_host ツールを使って DoA 値を読み取ることもできます。

DoA 値を確認するコマンド

xvf_host.exe AEC_AZIMUTH_VALUES

出力例

Device (USB)::device_init() -- Found device VID: 10374 PID: 26 interface: 3
AEC_AZIMUTH_VALUES 0.91378 (52.36 deg) 0.00000 (0.00 deg) 1.57080 (90.00 deg) 0.91378 (52.36 deg)
  • Focused beam 1: 最初の固定リスニング方向
  • Focused beam 2: 2番目の固定リスニング方向
  • Free running beam: 常にスキャニング方向
  • Auto selected beam: 最適な音声のために選択された最終ビーム(DoA表示に使用)

音声表示

  • Speech Energyは音声信号の強さを示します — 音声ボリュームメーターのようなものです。
  • 誰かが話しているかどうか、どの程度大きく/近くにいるかを検出するために使用されます。
  • ノイズ、エコー、距離がエネルギー値に影響を与える可能性があります。

Speech Energyをチェックするコマンド:

xvf_host.exe AEC_SPENERGY_VALUES

出力例

Device (USB)::device_init() -- Found device VID: 10374 PID: 26 interface: 3
AEC_SPENERGY_VALUES 2080656 0 2083455 2080656
  • Focused beam 1: 第1ビームのエネルギー
  • Focused beam 2: 第2ビームのエネルギー
  • Free running beam: スキャニングビームのエネルギー
  • Auto selected beam: 最終出力用に選択されたビームのエネルギー

オーディオ出力チャンネル

  • XVF3800は2つのオーディオチャンネルを提供します:
    • 左チャンネル: クリーンな後処理済みオーディオ
    • 右チャンネル: ASRビームまたはエコー/リファレンスデータ

これらのチャンネルを再ルーティングして、異なるソースを出力することができます。

コマンド例

左チャンネルを増幅マイク0に設定

xvf_host.exe AUDIO_MGR_OP_L 3 0

右チャンネルをFar End(リファレンス)データに設定

xvf_host.exe AUDIO_MGR_OP_R 5 0

出力例:

Device (USB)::device_init() -- Found device VID: 10374 PID: 26 interface: 3

チューニングパラメータ(音質を向上させる!)

  • これらの設定はエコーキャンセレーションノイズ抑制ゲインなどの改善に役立ちます。
  • デフォルト設定では十分でない場合に使用してください。

一般的なパラメータ:

パラメータ意味
AUDIO_MGR_REF_GAINスピーカー入力ゲイン(エコー信号)
AUDIO_MGR_MIC_GAINマイク入力ゲイン(マイクの聞こえる音量)
AUDIO_MGR_SYS_DELAYマイクとスピーカー信号間の遅延
PP_AGCMAXGAIN最大自動ゲイン制御レベル
AEC_ASROUTGAINASRビーム出力のゲイン

より詳細なドキュメントと高度なコマンドについては、公式GitHubリポジトリをご覧ください:
ReSpeaker XVF3800 Host Control README


ReSpeaker XVF3800のPythonサンプル

USBまたはI2C経由でデバイスを制御するためのPythonサンプルを用意しています。

note

Pythonスクリプトでxvf_hostを使用した制御についてさらに詳しく知りたい場合は、この記事をお読みください。

Windows向け

git clone https://github.com/KasunThushara/reSpeakerXVF.git
cd reSpeakerXVF
python test.py

Pythonがインストールされており、ReSpeaker XVF3800がUSB経由で接続されていることを確認してください。

test.py ファイルは以下のように探索できます。これは参考用です。

import subprocess
import sys
import time

# Path to your xvf_host binary
XVF_HOST_PATH = "./xvf_host" # Change this if xvf_host is in a different location

def run_command(*args):
"""Run a command using the xvf_host tool."""
command = ["sudo", XVF_HOST_PATH] + list(map(str, args))
try:
print(f"Running: {' '.join(command)}")
result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=True, text=True)
print("Output:\n", result.stdout)
except subprocess.CalledProcessError as e:
print("Error:\n", e.stderr)
sys.exit(1)

if __name__ == "__main__":
# Example: Get device version
run_command("VERSION")
time.sleep(0.005)

# Example: Set LED to breath mode with orange color
run_command("led_effect", 1)
time.sleep(0.005)
run_command("led_color", "0xff8800")
time.sleep(0.005)
run_command("led_speed", 1)
time.sleep(0.005)
run_command("led_brightness", 255)
time.sleep(0.005)

# Example: Save current configuration
#run_command("save_configuration", 1)

# Uncomment to clear config
run_command("clear_configuration", 1)
time.sleep(0.005)

pir

技術サポート & 製品ディスカッション

私たちの製品をお選びいただき、ありがとうございます!私たちは、お客様の製品体験が可能な限りスムーズになるよう、さまざまなサポートを提供いたします。異なる好みやニーズに対応するため、複数のコミュニケーションチャンネルをご用意しています。

Loading Comments...