Skip to main content

Raspberry Pi の使い方

note

この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

caution

この Wiki は ReSpeaker 2-Mics Pi HAT v1 用に書かれています。v1 と v2 のデバイスを区別するには、ReSpeaker 2-Mics Pi HAT ハードウェアリビジョンの区別方法を参照してください。

ドライバーのインストールと設定

1. ReSpeaker 2-Mics Pi HAT を Raspberry Pi に接続する

ReSpeaker 2-Mics Pi HAT を Raspberry Pi に取り付けます。ReSpeaker 2-Mics Pi HAT を積み重ねる際にピンが正しく整列していることを確認してください。

Raspberry Pi の接続

connection picture1

Raspberry Pi Zero の接続

connection picture2

2. Raspberry Pi にドライバーをセットアップする

Raspberry Pi に最新の Raspberry Pi OSを実行していることを確認してください。 (2021.05.01 更新)

  • ステップ 1. Seeed voice card のソースコードを取得し、インストールして再起動します。
git clone https://github.com/HinTak/seeed-voicecard.git
cd seeed-voicecard
sudo ./install.sh
sudo reboot now
  • ステップ 2. aplay -larecord -l コマンドを使用して、サウンドカード名が seeed-voicecard ソースコードと一致していることを確認します。
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
  • ステップ 3. テストを行います。マイクに話しかけると、その音声が聞こえるはずです(イヤホンまたはスピーカーを忘れずに接続してください)。
arecord -D "plughw:3,0" -f S16_LE -r 16000 -d 5 -t wav test.wav
aplay -D "plughw:3,0" test.wav

注意: "plughw:3,0" は録音(または再生デバイス番号)です。システムによってこの番号は異なる場合があります(例えば Raspberry Pi 0 ではオーディオジャックがないため 0 になります)。"arecord -l" と "aplay -l" を使用して確認できます。

3. サウンド設定を構成し、alsamixer で音量を調整する

alsamixer は Advanced Linux Sound Architecture (ALSA) 用のグラフィカルミキサープログラムで、サウンド設定を構成し音量を調整するために使用されます。

pi@raspberrypi:~ $ alsamixer

左右の矢印キーでチャンネルまたはデバイスを選択し、上下の矢印キーで現在選択されているデバイスの音量を調整します。ALT+Q または Esc キーを押してプログラムを終了します。詳細情報

caution
最初に F6 を使用して seeed-2mic-voicecard デバイスを選択してください。

使用概要

以下の例を実行するには、https://github.com/respeaker/mic_hat.git リポジトリを Raspberry Pi にクローンしてください。

git clone https://github.com/respeaker/mic_hat.git
cd mic_hat

以下の例で言及されているすべての Python スクリプトは、このリポジトリ内にあります。必要な依存関係をインストールするには、mic_hat リポジトリフォルダ内で以下を実行してください。

sudo apt-get install portaudio19-dev libatlas-base-dev
pip3 install -r requirements.txt

APA102 LED

各オンボード APA102 LED には追加のドライバーチップがあります。このドライバーチップは、入力ラインを介して希望する色を受信し、その後新しいコマンドが受信されるまでその色を保持します。

python3 interfaces/pixels.py

ユーザーボタン

オンボードのユーザーボタンがあり、GPIO17 に接続されています。これを Python と RPi.GPIO を使用して検出してみましょう。

Step 4 でクローンした mic_hat フォルダリポジトリから以下のコードを実行してください。

python3 interfaces/button.py

ボタンを押すと「on」と表示されるはずです。

python3 button.py

以下のような出力が表示されます。

pi@raspberrypi:~ $ python3 button.py
off
off
on
on
off

Python で音声を録音する

Python で音声を録音するために PyAudio Python ライブラリ を使用します。

まず、以下のスクリプトを実行して 2 Mic Pi Hat のデバイスインデックス番号を取得します。

python3 recording_examples/get_device_index.py

以下のようにデバイス ID が表示されます。

Input Device id  2  -  seeed-2mic-voicecard: - (hw:1,0)

音声を録音するには、recording_examples/record.py ファイルを nano または他のテキストエディタで開き、RESPEAKER_INDEX = 2 をシステム上の ReSpeaker のインデックス番号に変更します。その後、Python スクリプト record.py を実行して録音を行います。

python3 recording_examples/record.py

2 チャンネルからチャンネル 0 のデータを抽出したい場合は、record_one_channel.py の内容を確認してください。他のチャンネル X の場合は [0::2][X::2] に変更してください。

python3 recording_examples/record_one_channel.py

録音したサンプルを再生するには、aplay システムユーティリティを使用することができます。例えば:

aplay -f cd -Dhw:1 output.wav # ステレオ音声の場合
aplay -D plughw:1,0 output_one_channel.wav # 1 チャンネルのモノラル音声の場合

または、recording_examples/play.py スクリプトを使用して PyAudio で .wav ファイルを再生することもできます。

python3 recording_examples/play.py path-to-wav-file

play.py 内で正しい出力デバイスインデックスを指定してください。そうしないと PyAudio がフリーズします!

ReSpeaker 2-Mic Pi HAT と Raspberry Pi で Picovoice を使用する

ステップ 1. 以下の ReSpeaker 2-Mic Pi HAT と Raspberry Pi のステップバイステップチュートリアル に従ってください。

注意: ReSpeaker 2-Mic Pi HAT の APA102 LED が Raspberry Pi 上で正常に動作していることを確認してください。

ステップ 2. ターミナルで以下のコマンドを入力して ReSpeaker 2-Mic Pi HAT 用 Picovoice デモをインストール してください。

pip3 install pvrespeakerdemo

注意: 新しい Raspberry Pi OS インストールでは、このデモをインストールする際に以下の警告が表示される場合があります: The script picovoice_respeaker_demo is installed in '/home/pi/.local/bin' which is not on PATH.

この場合、デモを実行するには /home/pi/.local/bin をシステム PATH に追加する必要があります。

echo 'export PATH="$HOME/bin:$HOME/.local/bin:$PATH"' >> ~/.bashrc

デモの使用方法

このデモは、Raspberry Pi 上の ReSpeaker 2-Mic Pi HAT を利用して Picovoice 技術で LED を制御します。このデモはウェイクワード "Picovoice" によってトリガーされ、LED のオン/オフや色の変更などの後続のアクションを実行する準備が整います。

インストールが完了したら、ターミナルで以下のコマンドを入力してデモを実行してください。

picovoice_respeaker_demo

音声コマンド

このデモの音声コマンドは以下の通りです:

  • Picovoice

デモは以下を出力します:

wake word
  • Turn on the lights

ライトが点灯し、ターミナルに以下のメッセージが表示されるはずです:

{
is_understood : 'true',
intent : 'turnLights',
slots : {
'state' : 'on',
}
}

ターミナルにコマンド一覧が表示されます:

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"

また、以下のコマンドで色を変更することができます:

  • Picovoice, set the lights to orange

ライトを消すには以下のコマンドを使用します:

  • Picovoice, turn off all lights

デモ動画の実演

デモのソースコード

このデモは Picovoice SDK を使用して構築されています。デモのソースコードは GitHub の https://github.com/Picovoice/picovoice/tree/master/demo/respeaker にあります。

異なるウェイクワード

Picovoice SDK には、Apache 2.0 ライセンスの無料サンプルウェイクワードが含まれています。これには、主要な音声アシスタント(例: "Hey Google", "Alexa")や "Computer", "Jarvis" のような楽しいものが含まれています。

カスタム音声コマンド

照明コマンドは、PicovoiceのSpeech-to-Intent contextによって定義されています。Picovoice Consoleを使用して、許可される文法を入力することでコンテキストを設計およびトレーニングできます。編集中にマイクボタンを使用してブラウザ内で変更をテストすることができます。Picovoice Console (https://picovoice.ai/console/) にアクセスしてアカウントを作成してください。Rhino Speech-to-Intent editorを使用してコンテキストを作成し、それをRaspberry Pi用にトレーニングします。

複数のウェイクワード例

Porcupine

Porcupineは非常に高精度で軽量なウェイクワードエンジンです。これにより、常時リスニングの音声対応アプリケーションを構築することが可能です。Porcupineの特徴は以下の通りです:

  • 実環境でトレーニングされた深層ニューラルネットワークを使用。
  • コンパクトで計算効率が高く、IoTに最適。
  • クロスプラットフォーム対応。Raspberry Pi、BeagleBone、Android、iOS、Linux (x86_64)、macOS (x86_64)、Windows (x86_64)、およびウェブブラウザをサポート。さらに、企業顧客にはARM Cortex-M SDKへのアクセスが提供されます。
  • スケーラブル。複数の常時リスニング音声コマンドを追加のランタイム負荷なしで検出可能。
  • セルフサービス。開発者はPicovoice Consoleを使用してカスタムウェイクワードモデルをトレーニング可能。

Picovoiceの能力を示すために、Raspberry PiとReSpeaker 2-Mic Pi HATを使用した複数のウェイクワード例も準備しました!異なるウェイクワードを設定して特定のタスクを実行できます。

このパッケージには、Porcupineを使用してReSpeaker 2-Mic Pi HATのLEDを制御するコマンドラインデモが含まれています。

複数ウェイクワードの開始方法

以下のコマンドをターミナルで実行してデモドライバーをインストールしてください:

pip3 install ppnrespeakerdemo

複数ウェイクワードの使用方法

ドライバーをインストールした後、以下をターミナルで実行してください:

porcupine_respeaker_demo

デモが初期化され、ターミナルに[Listening]と表示されるのを待ちます。その後、以下を話してください:

Picovoice

デモは以下を出力します:

detected 'Picovoice'

ライトがに設定されます。次に以下を話してください:

Alexa

ライトが黄色に設定されます。以下を話してください:

Terminator

ライトを消灯します。

ウェイクワードと色の対応

以下は、このデモでサポートされるウェイクワードに対応する色です:

  • #ffff33 Alexa
  • #ff8000 Bumblebee
  • #ffffff Computer
  • #ff0000 Hey Google
  • #800080 Hey Siri
  • #ff3399 Jarvis
  • #00ff00 Picovoice
  • #0000ff Porcupine
  • #000000 Terminator

複数ウェイクワード例のソースコード

この例の完全なソースコードはこちらをご覧ください:https://github.com/Picovoice/porcupine/tree/master/demo/respeaker.

ReSpeaker 2-Mic Pi HAT と Mycroft Precise を使用したキーワード検出

Mycroft Precise は完全にオープンソースのキーワード検出エンジンです。Picovoice と比較すると機能は限定されていますが、より許容的なライセンス(Apache 2.0)を持ち、ライセンスを保持する限り、改変や再配布(クローズドソースや商業利用を含む)が可能です。

Mycroft Precise を始めるには、Seeed の Mycroft Precise フォークの最新安定版をインストールしてください:

sudo apt-get install libatlas-base-dev
pip3 install git+https://github.com/respeaker/mycroft_runner_simple.git

注意: 新しい Raspberry Pi OS のインストールでは、このデモをインストールする際に以下の警告が表示される場合があります: スクリプト picovoice_respeaker_demo は '/home/pi/.local/bin' にインストールされていますが、PATH に含まれていません。

この場合、デモを実行するには、/home/pi/.local/bin をシステム PATH に追加する必要があります:

echo 'export PATH="$HOME/bin:$HOME/.local/bin:$PATH"' >> ~/.bashrc

その後、以下のコマンドを実行して Mycroft Precise のインストールをテストできます:

mycroft-precise --model hey-mycroft

Mycroft Precise を独自のプロジェクトに統合したい場合は、GitHub リポジトリの README ファイルを参照して API に関する詳細情報を確認してください。

ReSpeaker 2-Mic Pi HAT と Mycroft Core を使用したインテリジェントアシスタント

Mycroft はハッカブルなオープンソースの音声アシスタントです。Amazon Alexa や Google Assistant に似た機能を持っていますが、より許容的なライセンス(Apache 2.0)を持ち、ライセンスを保持する限り、改変や再配布(クローズドソースや商業利用を含む)が可能です。

このセクションは現在開発中です。ReSpeaker と Mycroft Core の使用に関する詳細を追加予定です。

ReSpeaker 2-Mic Pi HAT と Raspberry Pi Zero を使用した Picovoice の始め方

ステップ 1. ドライバーのインストールと設定で説明されているように、ドライバーをインストールしてデバイスを設定します。

次に、Picovoice の GitHub リポジトリをクローンします:

git clone --recurse-submodules https://github.com/Picovoice/picovoice.git
cd picovoice

注意: ReSpeaker 2-Mic Pi HAT の APA102 LED が Raspberry Pi Zero 上で正常に動作していることを確認してください。

ステップ 2. ターミナルで以下のコマンドを入力して wiringpi ライブラリをインストールします。

sudo apt-get install wiringpi

ステップ 3. リポジトリのルートから、以下のコマンドをターミナルで入力して ReSpeaker 2-Mic Pi HAT 用 Picovoice デモをインストールします。

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

デモの使用方法

このデモは、Raspberry Pi Zero 上の ReSpeaker 2-Mic Pi HAT を使用して Picovoice 技術で LED を制御します。このデモはウェイクワード "Picovoice" によってトリガーされ、LED のオン/オフや色の変更などの後続のアクションを実行する準備が整います。

インストールが完了したら、リポジトリのルートから以下のコマンドを入力してターミナルでデモを実行します:

./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

音声コマンド

このデモで使用できる音声コマンドは以下の通りです:

  • Picovoice

デモは以下を出力します:

wake word
  • Turn on the lights

ライトが点灯し、ターミナルに以下のメッセージが表示されます:

{
is_understood : 'true',
intent : 'turnLights',
slots : {
'state' : 'on',
}
}

コマンドのリストはターミナルに以下のように表示されます:

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"

また、以下のコマンドを試して色を変更できます:

  • Picovoice, set the lights to orange

ライトを消すには以下のコマンドを使用します:

  • Picovoice, turn off all lights

デモ動画の紹介

デモのソースコード

このデモは Picovoice SDK を使用して構築されています。デモのソースコードは GitHub で以下のリンクから入手できます:https://github.com/Picovoice/picovoice/tree/master/demo/respeaker-rpi0

異なるウェイクワード

Picovoice SDK には、Apache 2.0 ライセンスの下で提供される無料のサンプルウェイクワードが含まれています。これには、主要な音声アシスタント(例: "Hey Google", "Alexa")や "Computer", "Jarvis" のような楽しいものが含まれます。

カスタム音声コマンド

照明コマンドは Picovoice の Speech-to-Intent context によって定義されています。Picovoice Console を使用して許可される文法を入力することで、コンテキストを設計およびトレーニングできます。編集中にマイクボタンを使用してブラウザ内で変更をテストできます。Picovoice Console (https://picovoice.ai/console/) にアクセスしてアカウントを作成してください。Rhino Speech-to-Intent editor を使用してコンテキストを作成し、それを Raspberry Pi Zero 用にトレーニングしてください。

複数のウェイクワード例

Picovoiceの機能を実証するために、Raspberry Pi ZeroとReSpeaker 2-Mic Pi HATを使用した複数のウェイクワードの例も準備しました!異なるウェイクワードを設定して特定のタスクを実行することができます。

このパッケージには、Porcupineを使用してReSpeaker 2-Mic Pi HATのLEDを制御するコマンドラインデモが含まれています。

Porcupine

Porcupineは非常に高精度で軽量なウェイクワードエンジンです。常時リスニングの音声対応アプリケーションを構築することを可能にします。Porcupineの特徴は以下の通りです:

  • 実環境でトレーニングされた深層ニューラルネットワークを使用。
  • コンパクトで計算効率が高く、IoTに最適。
  • クロスプラットフォーム対応。Raspberry Pi、BeagleBone、Android、iOS、Linux (x86_64)、macOS (x86_64)、Windows (x86_64)、およびウェブブラウザをサポート。さらに、企業顧客にはARM Cortex-M SDKへのアクセスが提供されます。
  • スケーラブル。複数の常時リスニング音声コマンドを追加のランタイム負荷なしで検出可能。
  • セルフサービス。開発者はPicovoice Consoleを使用してカスタムウェイクワードモデルをトレーニング可能。

複数ウェイクワードの開始方法

ステップ1 まず、以下のコマンドをターミナルで入力してwiringpiライブラリをインストールします(まだインストールしていない場合)。

sudo apt-get install wiringpi

次に、PicovoiceのGitHubリポジトリをクローンします:

git clone --recurse-submodules https://github.com/Picovoice/porcupine.git
cd picovoice

ステップ2. リポジトリのルートから、以下のコマンドをターミナルで入力してReSpeaker 2-Mic Pi HAT用のPorcupineデモをインストールします。

gcc -std=c99 -O3 -o demo/respeaker-rpi0/porcupine_demo_mic \
-I include/ demo/respeaker-rpi0/porcupine_demo_mic.c \
-ldl -lasound -lwiringPi

複数ウェイクワードの使用方法

リポジトリのルートから以下をターミナルで実行します:

./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

デモが初期化され、ターミナルに[Listening]と表示されるのを待ちます。そして以下を発話してください:

Picovoice

デモは以下を出力します:

detected 'Picovoice'

ライトがに設定されます。次に以下を発話してください:

Alexa

ライトが黄色に設定されます。以下を発話してください:

Terminator

ライトを消灯します。

ウェイクワードと色の対応

このデモでサポートされているウェイクワードに対応する色は以下の通りです:

  • #ffff33 Alexa
  • #ff8000 Bumblebee
  • #ffffff Computer
  • #ff0000 Hey Google
  • #800080 Hey Siri
  • #ff3399 Jarvis
  • #00ff00 Picovoice
  • #0000ff Porcupine
  • #000000 Terminator

複数ウェイクワードの例のソースコード

この例の完全なソースコードは以下で確認できます:https://github.com/Picovoice/porcupine/tree/master/demo/respeaker-rpi0

Picovoice技術サポート

Picovoiceの使用中に技術的な問題が発生した場合は、Picovoiceを訪問してディスカッションをご覧ください。

FAQ

Q1: "sudo pip install pyaudio" を実行した際に #include "portaudio.h" エラーが発生します。

A1: 以下のコマンドを実行して問題を解決してください。

sudo apt-get install portaudio19-dev

Q2: Raspbian のミラーソースを変更する方法は?

A2: Raspbian Mirrors を参照し、以下の手順に従って最初にソースを変更してください。

pi@raspberrypi ~ $ sudo nano /etc/apt/sources.list

例えば、中国のユーザーには Tsinghua のソースを使用することをお勧めします。そのため、sources.list を以下のように変更してください。

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
Loading Comments...