ラズベリーパイを搭載したトラックベルト駆動(キャタピラ)の走行車を組み立てした。次はメディア系の機能を搭載する。
本日のメニュー
- メディアプレーヤー omx
- 音声合成AI Jtalk
- 音楽プレーヤー aplay
- 百科事典 Wikipedia検索
- サーボモーター
準備[PCでラズパイにリモートデスクトップ接続]
Windows の DOS でラズパイから応答があることを検査する
C:\Users\kano> ping razpi01.local -4
192.168.1.41 からの応答: バイト数=32 時間 <1ms
192.168.1.41 からの応答: バイト数=32 時間 <1ms
192.168.1.41 からの応答: バイト数=32 時間 <1ms
ラズパイに接続する。リモートデスクトップのコマンド名は[mstsc.exe]
C:\Users\kano> mstsc /v:razpi01.local
自分のラズパイのユーザーIDとパスワードでログインします。
音楽プレーヤー[omxplayer]
RaspberryPi用軽量メディアプレーヤー(mp3音楽, mp4動画)
python ディレクトリに移動する
$ cd python
使い方:コマンドラインで音楽ファイルを鳴らすメディアプレーヤー。Linuxでコマンドを実行します(pythonではない)
$ omxplayer music.mp3 –o local --vol -500
使い方:インターネットのWEBサイトのファイルをダウンロードするコマンド。無料の音楽ファイルをダウンロードできる。
$ wget <URL>
omxplayerコマンドのオプション「–o local」はイヤホンジャックへOutputです
音声合成AI [Open JTalk]
日本の大学で開発された音声合成AI技術。テキストを音声に変換します。
使い方:ダブルコーテーションで囲った日本語を読み上げます。
$ ./jtalk.sh "がんばれ。みんな"
調べる:[jtalk.sh]はプログラムコードです。ファイルの中身を見てみましょう
$ cat jtalk.sh
#!/bin/bash
# ファイル名:jtalk.sh
# ファイルを指定
# chmod +x jtalk.sh # 実行権限をつけること
voice=/usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice
dic=/var/lib/mecab/dic/open-jtalk/naist-jdic
# パラメータを定義(一行で入力しますが表示の都合で改行しています)
option="-m $voice \
-s 30000 \
-p 150 \
-a 0.03 \
-u 0.0 \
-jm 1.0 \
-jf 1.0 \
-x $dic \
-ow output.wav“
# テキストを音声データに変換実行
echo "$1" | open_jtalk $option
# 音声をスピーカーで鳴らす。
aplay -q -D hw:0,0 output.wav
音楽プレーヤー [aplay]
使い方:[aplay]で音声wavファイルを鳴らす。鳴らないときはデバイス番号が違うかも
$ aplay -q -D hw:0,0 output.wav
使い方:[aplay]でデバイス番号を調べる
$ aplay -l
**** ハードウェアデバイス PLAYBACK のリスト ****
カード 0: Headphones [bcm2835 Headphones], デバイス 0: bcm2835 Headphones [bcm2835 Headphones]
サブデバイス: 8/8
サブデバイス #0: subdevice #0
サブデバイス #1: subdevice #1
音声合成AI [mei ボイス]
「めいちゃんの声」に変えてみます。めいちゃんとは、JTalkを開発した名古屋大学のデジタルサイネージにある女性キャラクターが話す声に使われているようです。タクミくんもいるとのこと。
使い方:「jtalk.sh」でなく 「jtalk_mei.sh」
$ ./jtalk_mei.sh "めいちゃんの声です“, “normal”
$ ./jtalk_mei.sh "めいちゃんの声です“, “angry”
$ ./jtalk_mei.sh "めいちゃんの声です“, “happy”
$ ./jtalk_mei.sh "めいちゃんの声です“, “sad”
コマンド「jtalk_mei.sh」の引数で normal や angry を受け取ったら、下記の音響モデルを切り替えています。
# 女性の声(メイちゃん)
if [ $2 == "normal" ]; then
voice=/usr/share/hts-voice/mei/mei_normal.htsvoice
elif [ $2 == "angry" ]; then
voice=/usr/share/hts-voice/mei/mei_angry.htsvoice
elif [ $2 == "happy" ]; then
voice=/usr/share/hts-voice/mei/mei_happy.htsvoice
elif [ $2 == "sad" ]; then
voice=/usr/share/hts-voice/mei/mei_sad.htsvoice
else
voice=/usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoicefi
百科事典 Wikipedia検索
インターネットのWikipediaで単語を調べる
使い方:python プログラムを作る。まず新しいファイルを作ります。
$ nano wiki.py
新しいファイルに下記コードを書きます。例として「ホバークラフト」という単語を調べます
import wikipedia
wikipedia.set_lang("ja")
result = wikipedia.page("ホバークラフト")
print(result.summary)
使い方:python プログラムを実行する
$ python wiki.py
毎回調べたい単語を、コードに記載するのは面倒だよね。コマンド入力で検索したいですね。サンプルコードを用意したので中を調べてください。
$ python wiki-speech.py “アップルパイ”
検索できましたか?
まとめ
これを使って何ができそうですか?
- メディアプレーヤー omx
- 音声合成AI Jtalk
- 音楽プレーヤー aplay
- 百科事典 Wikipedia検索
おまけ:サーボモーター復習
目標:ラズタンクを魔改造🦹 移動するだけじゃない。何かが動くんだ。
使い方:サーボモーターの動作テスト
$ python servo.py
真ん中(7.0)が初期値 → 左(12.0)に移動 → 右(2.0)に移動する
使い方:左右に少しずつ、ずーっと繰り返す
$ python servo1.py
使い方:キーボード操作で動かす
$ python servo2.py
[a]90 [s]++ [d]0 [f]-- [g]-90 [q]end
まだ使っていない空いているラズパイGPIOを選びます。ピン番号とGPIO番号を調べるコマンド
$ pinout