ラズパイ3で音声入力して認識・合成(1)


現状USBマイクしか現実的な選択肢はないようですね。

こういうのを使ってみました。

ヘッドセット (ELECOMのHS-EP13USV)のマイクのみ使用

 

必要ないかもしれませんが、一応アプリをインストールしておきます。

$sudo apt-get update
$sudo apt-get upgrade
$sudo rpi-update
$sudo apt-get install alsa-base alsa-utils alsa-tools

ちなみに、RaspbianのバージョンはStretch(Debian 9)

 

 

USBマイクをセットすれば、何もしなくてもデバイスの認識はされるようです。

 

録音に使用できるデバイス一覧の確認

$arecord -l

カード番号とデバイス番号を確認

 

マイクの音量を確認する(カード 1の場合 -c 1を指定)

$ amixer sget Mic -c 1

0~496の範囲

マイクの音量を設定する
$ amixer sset Mic 400 -c 1

 

録音する

$arecord -D plughw:<カード番号>,<デバイス番号> test.wav

例えば
$arecord -D plughw:1,0 test.wav

ノイズが入るようなら以下をテスト

$ arecord -D plughw:1,0 -f cd -r 16000 test.wav

or

$arecord -D plughw:1,0 -f cd -r 44100 test.wav

 

 

再生する

$aplay test.wav

ヘッドセットのスピーカーからは聞けません。ラズパイ側のミニジャックから音は拾ってください。

 

エラーが出る場合

arecord: main:788: audio open error: デバイスもしくはリソースがビジー状態です

$pkill -9 arecord

 


マイクから入力した音をそのままスピーカーから出力

音を飛ばす簡単な方法

入力した音をパイプでスピーカーにスルー

arecord -f S16_LE -r 44100 -D hw:<カード番号> | aplay

例えば

$arecord -f S16_LE -r 44100 -D hw:1 | aplay

 

標準入出力の変更で話が済むのがUNIX系のいいところ?

 

ELECOMのBluetoothモノラルスピーカーに音を飛ばしてみましたが、問題なしでした。

こういう構成だとスピーカーからの出力は若干ですが遅延します、ほんのちょっとですが。

Bluetoothトランスミッターには十分な電力供給が必要です。この図ではUSBから取っていますが

不足する場合は音が出ないことがあります。外部電源からの供給も考慮する必要があります。

この製品のスピーカー側には内蔵バッテリーがあります、充電が十分なら8時間持つそうです。

 

100均のBluetoothスピーカーの場合

 


音声認識・合成

ラズパイ3+Juliusで音声認識

ラズパイ3+OpenJTalkで音声合成

あるいは

クラウドサービスを使ってみる

ラズパイ3で音声入力して認識・合成(2)

ラズパイ3でGoogle Assistant を使ってみる(メモ)

 


 

Be the first to comment

Leave a Reply

Your email address will not be published.


*