Miho's Memory

組込みとアートとまぜまぜ

人工知能を使ってみる ~Google API & docomo雑談会話 & Open JTalk~ さん

に のつづきの さん

音声入力をやってみよう (^^♪

RasPi に マイク や イヤホン を刺しておいてね!

こんな感じ ^^# くまを置いておくとうまくいくよ(嘘w

f:id:MihoN:20170315211214j:plain

ここからは ターミナル 画面にコマンド入力で進みます.
そして本の通りで一部うまくいかなかったので,そこんとこは
あーしてみたり,こーしてみたりしました(笑)
ひとりごと:
    NOOBS のダウンロード時期も違うし,Raspbian のバージョンだって
    違うだろうし.
    だから微妙に環境は違うだろうからしかたないんだよね ^^
    でもこの本の Python プログラムは動いてるからとってもいい感じ♪

で,今回のあーしてみたり,こーしてみたりだけど,
画面コピーとってなくてメモだけ残してたので
ここでもメモで進みます.
それ以外はなるだけ ターミナル 画面をつけますよ!

# ここからは ターミナル 画面で操作だよ(^^♪

マイクが USBデバイス として認識されてるかチェック!
ターミナル 画面で lsusb って打ちます

f:id:MihoN:20170315213140p:plain

 C-Media ってのが見えればオッケー☆⌒d(´∀`)ノ

 さてさて,今回使用する音声データフォーマットですが,

FLAC

ってのを使います.

音声入力コマンド

sox ライブラリの rec コマンド

を使います.

ってことで 音声処理ライブラリ sox のインストールをしましょ♪

f:id:MihoN:20170315225934p:plain

インストールできたかな?

次は音声入出力のカード番号を確認します.
RasPi では,1つの音声入出力機器を1枚の『カード』として管理をするようです.
そこで,今回刺したマイクのカード番号を確認してみましょう.
マイクのカード番号は音声入力の際に必要です ^^#

f:id:MihoN:20170315230533p:plain

今回の音声の入力は『カード1』のようです.

次に,音声出力(再生)のための音声出力機器のカード番号を確認しましょう♪

f:id:MihoN:20170315231430p:plain

今回 RasPi 3.5mm ミニジャックの音声出力は『カード0』のようです.

マイクとイヤホンの状況はわかったので 音声入力音量の設定 をやりましょう(本)
amixer -c1 sset Mic,1 16 は『カード1の音声入力の音量を最大に』
16は音声入力の最大を示すらしい...

f:id:MihoN:20170315232419p:plain

でもこのコマンドを実行するが,以下のような内容が表示され音量を変えることができない がーんw(みほはね.できなかったw).

amixer : Unable to find simple control 'Mic',1


そこであきらめずやった手順が ここから
※ amixer ... がうまく動いた人はそのままでいいよ

1. USB マイクの優先度をあげてみよう!

現在の状況はこう

f:id:MihoN:20170315233459p:plain

USB マイクの優先度をあげてみる
そのために /etc/modprobe.d/alsa-base.comf ファイルの中身を書き換えよう!
ん? alsa-base.conf ファイルが存在しないww
そこで,vi コマンド( sudo vi alsa-base.conf )で
/etc/modprobe.d/ の下に,新規ファイル( alsa-base.conf )をつくって
3行ほど内容を記述した.

それがこれ

f:id:MihoN:20170315234536p:plain

※ cat コマンドはファイルの中身を見るコマンド

2. RasPi を リブート/再起動

3. USBマイクの優先度を確認してみる

1. のときは snd_usb_audio は下にあったけど,
今は上になって,順番が入れ替わっているはず

4. 音声入力のカード番号の確認

arecord -l コマンドを実行する.
ずっと上でやっったときは,音声入力カード番号は 1 やった.
でも今は 0 になっているはず.

5. 音声入力音量の設定に再チャレンジ

ターミナルで amixer sset Mic 16 -c 0 を実行
※ カード番号 0 だから -c のうしろのも 0

すると

Mono : Capture 16 [26%] [-0.13db] [on]

になった!
だけど 26% は低すぎる.100% にしたいので,ターミナルから

amixer sset Mic 62 -c 0

を実行.
すると

Mono : Capture 62 [100%] [22.50db] [on]

になった!!

6. /etc/modporobe.d の下に作った alsa-base.conf を削除する

これから本に付属のサンプルプログラムをとりあえず動かそうと考えてる.
そのとき,プログラムの中身は確認してないけど,カード番号とかが
書かれてたらその都度書き換えないかんしいややな.
音量調整はできたことやし,USBマイクの優先度を本と同じにしとこ!
ということで,

/etc/modprobe.d の下に作った alsa-base.conf を削除した ^^

7. USBマイクの優先度の確認

cat /proc/asound/modules
を実行すると 1. のときのように snd_usb_audio は 1 になり,
arecord -l
を実行すると,ずっと上で確認したように『カード1』に戻った

f:id:MihoN:20170316001032p:plain

8. 音声入力音量の設定

amixer sset Mic 62 -c 1
をやってみた

f:id:MihoN:20170316001222p:plain

実行できる.
もしかして...
本は
amixer -c1 sset Mic,1 16
で,みほは
amixer sset Mic 62 -c 1
もしかして...
1-7 の手順をやんなくても,音声入力音量の設定のときに
amixer sset Mic 62 -c 1 でやってたら動いてたのかな...
でもいまとなってはそれはわからない ^^;

ここまで

 

一件落着したので次は 再生音量の設定

f:id:MihoN:20170316005632p:plain

イヤホン3.5mmを強制的に出力先に設定

f:id:MihoN:20170316005828p:plain

ここからは FLAC 音声ファイル(本のサンプル)がある前提

FLACファイルの再生

f:id:MihoN:20170316010114p:plain

 聞こえる ^^#

マイクからの音声録音

f:id:MihoN:20170316010418p:plain

録音したのを聞いてみよう

f:id:MihoN:20170316010534p:plain

ということで,ここまでで FLAC 音声ファイルの再生と
マイクからの録音ができるようになりました ^^*
次は Google API を使って 音声認識 ^^
次回からは自分のメモ書き blog になりそうw

ばいばーい(^^♪