2016年8月5日金曜日

Raspberry Pi 2+Raspbianをお話できるようにしました

Raspberry Piの処理結果を得る方法は色々考えられます。
その中から今回は音声合成を使った音の出力をしたいと思います。
準備
今回はRaspberry Pi 2を使います。
Raspberry Pi 2は、音声出力の方法としてHDMIとステレオミニジャックの2種類あります。
スピーカー内蔵モニタならHDMIを、音声のみならステレオミニジャックにスピーカーを接続すると良いでしょう。

ステレオミニジャックを使う場合、出力レベル(音量)がとても低く、イヤホンを使ってやっと聞ける程度です。
大きい音を出したい場合は、相応のスピーカーとアンプが別途必要になります。
接続したのは、100円ショップで購入したモノラルスピーカーx2台でステレオ化したモノとヘッドホンアンプ FiiO E5です。
家にあったものを流用しただけなので、新たに購入されるならアンプ内蔵のモノが安く売られてるのでそちらのほうが良いでしょう。
音声合成ソフト Open JTalk Ver.1.07をインストール
OSは標準的なRaspbianを使っています。
Open JTalkは、入力された文字を元に音声ファイル(wavファイル)を作る音声合成ソフトです。
インストールするパッケージ3つ
  • open-jtalk(Open JTalk本体)
  • open-jtalk-mecab-naist-jdic(辞書)
  • hts-voice-nitech-jp-atr503-m001(音声データ)
コマンドラインから下記をコピペしてインストールします。
$ sudo apt-get install open-jtalk open-jtalk-mecab-naist-jdic hts-voice-nitech-jp-atr503-m001
試しに実行
コマンドラインから下記をコピペして実行します。
$ echo "本日は晴天なり" | open_jtalk -m /usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice -x /var/lib/mecab/dic/open-jtalk/naist-jdic -ow test.wav
すると、実行した直下にtest.wavというファイルが出来ているはずです。
出来たファイルをパソコンで再生しても良いですし、Raspberry Piで再生する場合は下記のようにすると再生できます。
$ aplay test.wav
もし、再生した音量が小さい場合は調整してみてください。
$ amixer cset numid=1 100%
100%の部分を減らすと音量が下がり、増やすと音量が上がります。
視覚的に調整したい場合は下記コマンドでも出来ます
$ alsamixer
音声合成ファイル作成と再生をするシェルスクリプトを作る
コマンドラインで任意のテキストをお話させるシェルスクリプトを作ります。
スクリプト名はなんでも良いのですが、便宜上jsayとします。 エディタを起動します。
$ nano jsay
起動できたら下記のコードをコピペします。
#!/bin/bash
tempfile=`tempfile`
echo "$1" | open_jtalk -m /usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice -x /var/lib/mecab/dic/open-jtalk/naist-jdic -ow $tempfile
aplay -q $tempfile
rm $tempfile
コピペできたら、CTRL+X→Yで保存終了。
出来たシェルスクリプトに実行パーミッションを付加します。
$ chmod +x jsay
できたら試しに実行してみます。
$ jsay 本日は晴天なり
もし、お話させる文字列にスペースが入っていたりする場合はダブルコーテーション(")で括ってあげれば渡す事が出来ます。
女性の声に変えてみる
今度は女性の声で喋らせてみたいと思います。
MMDAgentのmeiという ボイスデータを使わせていただきます

まず、MMDAgentのサイトからSourceForge上に掲載されてるzipファイルをダウンロードします。
$ wget http://tenet.dl.sourceforge.net/project/mmdagent/MMDAgent_Example/MMDAgent_Example-1.6/MMDAgent_Example-1.6.zip
ダウンロードが完了したら 解凍します。
$ unzip MMDAgent_Example-1.6.zip
解凍したディレクトリMMDAgent_Example-1.6直下にある/Voice/meiディレクトリをまるごとrootオーナー/usr/share/hts-voiceにコピーします。
$ sudo cp -r ./MMDAgent_Example-1.6/Voice/mei /usr/share/hts-voice
jsayシェルスクリプトの-mオプションを変更します。
$ nano jsay
修正箇所は下記の赤字の箇所の部分
#!/bin/bash
tempfile=`tempfile`
echo "$1" | open_jtalk -m /usr/share/hts-voice/mei/mei_normal.htsvoice -x /var/lib/mecab/dic/open-jtalk/naist-jdic -ow $tempfile
aplay -q $tempfile
rm $tempfile
CTRL+X→Yで保存終了。
なお、実行パーミッションは変わらないのでそのままで大丈夫です。
できたら再び 試してみます。
$ jsay 本日は晴天なり
女性の声に変わりましたか?
meiの音声ファイルは今回変更したmei_normal.htsvoiceの他に、mei_angry.htsvoicemei_bashful.htsvoicemei_happy.htsvoicemei_sad.htsvoice などが あります。
-mの箇所を適宜変更して 聴き比べてみると良いでしょう。
気圧温度湿度センサー BME280の取得情報を 報告 させてみる
以前このブログで紹介した気圧温度湿度センサー BOSCH BME280で記録している情報をOpen JTalkで報告させてみました。



やり方は、センサーから読み取った 数字を喋らせたい定型文に埋め込み、それをjsayを使って喋らせています。
この要領で色々な活用方法が出来るでしょう。
音声合成ソフト Open JTalk Ver.1.07の 音量調整の難点
今回インストールしたOpen JTalk Ver.1.07 は古いバージョンで、最新はVer.1.09です。
単に喋らせるならば Ver.1.07でも問題なく使用できます。
それに対し、最新版のVer1.09には音量が調整できる-gオプションが追加になっています。
このオプションがあると他のアプリとの音量バランスの調整が可能になるため、 例えばBGM を再生中に強調した発声をさせてお知らせするような事が可能になります。
ただ、Ver.1.09は今回の インストールで使ったaptにはパッケージ登録されていないため 、自前で必要なファイルを用意してコンパイルしインストールする必要があります。

次回は、この手順について 書きたいと思います。

2016年7月9日土曜日

カリフォルニア・レーズン協会 キャンペーンプレゼント当選!

ピンポーン♪

予定外の何かが届きました。
何だろ?
ご当選おめでとうございます
箱を開けてみると、最初に飛び込んできたのは1枚のお手紙でした。

カリフォルニア・レーズン協会

そういえば、以前購入した商品にシールが貼られていて、そのキャンペーンプレゼントに応募した記憶がありました。
カリフォルニア・レーズン協会とは、1961年にPR活動のために日本に設立された組織。
カリフォルニア・レーズンを知って、みんなでおいしく食べましょうという協会みたいです。
箱の中にパンフレットが1枚入っていて豆知識やレシピが紹介されていました。
当たったのは佐賀県有田焼のお皿
当たったのはお皿でした。しかも佐賀県の有田焼。
株式会社 華山のお皿のようです。
華⼭萬右衛⾨窯 有⽥焼400周年限定ペアボウル
佐賀県有田焼創業400周年の記念に作られた限定ペアボウル。
レーズンなのになぜ有田焼?と不思議だったのですが、開けてみたらわかりました

ぶどうの絵皿

古くから港の名にちなんで伊万里焼の名で輸出されてきた有田焼。
そのため、世界にも知られた日本の誇る銘品です。
裏印はオリジナルの証
有田焼創業400周年に参加してる窯元なので裏印はあるだろうと思っていたのですが、まさかのカリフォルニア・レーズン協会のロゴも一緒に刻まれてました。

まさにオリジナルの証

世界に誇る有田焼を日米合作で仕上げた作品。
すばらしい!
カリフォルニア・レーズン美味しい!
このブログを書きながら天の恵み・アメリカの恵み カリフォルニア・レーズンを頂いております。
ほんと美味しい\(^o^)/

私、レーズンは子供の頃から大好物の1つだったりします。
山梨が田舎なので普通のぶどうを食べる機会が多かったのですが、それでもレーズンは別腹。
そのまま食べるのはもちろん、レーズンを使ったお菓子やパンも大好きでいた。
踊るズンちゃん

最後に、カリフォルニア・レーズン協会のマスコットキャラ ズンちゃんのCMを見ながらお別れしたいと思います。

最後までお読みいただきありがとうございました。
カリフォルニア・レーズン協会様、プレゼントありがとうございました。

2016年7月7日木曜日

Raspberry Pi Zeroを使っていて気がついた事

2台目のRaspberry PiとなるZeroが届いて色々イジリ倒してるのですが、Raspbianを操作してる限りではRaspberry Pi 2との差をあまり感じません。
やはりサイズの小ささと価格が最大の魅力ですね♪
RaspbianからApache HTTP Serverが消えたわけ
Raspberry Pi 2で使っているRaspbianを最新バージョンのイメージファイルでクリーンインストールしなおし、そこに差分を当てる形でリフレッシュしました。
その作業で旧バージョンと異なる部分があったのですが、その中でも一番気になったのが

Apache HTTP Serverが入っていない

Apache HTTP Serverのドキュメントデフォルトディレクトリが/var/wwwから/var/www/htmlに変更されたり、セキュリティが見直されて動いていたものが動かなくなったりという事がありました。
また、大抵のサイトで解説してるapt-get update→apt-get upgradeというパッケージを最新状態にするコマンドもインストールされるライブラリの不整合で動かなくなる不具合があったので、環境が安定するまでアップデートを行わずに静観していました。
それが、OSのクリーンインストールではじめてデフォルト環境の変更を知ったので疑問に感じていたのです。

その疑問が解けたのがRaspberry Pi Zeroでした。
Raspberry Pi ZeroにはLANに繋ぐ手段が標準で付いていません。これはRaspberry Piシリーズの中でこの機種とCompute Moduleのみ。
Compute Moduleは用途が特殊なので例外として、低価格で入門用としても最適なRaspberry Pi Zeroの登場でハードウェア環境に合わせてOSのデフォルトインストール済パッケージも見直されたのだろうと、Raspberry Pi Zeroを触りだしてから気が付きました。
USB3.0 有線LANアダプタでも使える
Raspberry Pi Zeroに搭載されているUSBはUSB2.0です。
今回、Raspberry Pi Zeroで使ったアダプタはLogitec LAN-GTJU32という1000BASE-T対応のUSB3.0用を使いました。
普段はLenovo G580 26897JJで使っているのですが、使えたらラッキー程度で試しに接続してみたら特別な設定をする事なく使えました。
USB3.0の論理速度は5Gbps、USB2.0の論理速度は0.48Gbps。
100BASE-Tの論理速度は0.1Gbps、1000BASE-Tの論理速度は1Gbps。
早い話、USB2.0なら1000BASE-Tのほうが理論上は通信速度が速い事になります。
それじゃ実際どうなのか?ということで、Raspberry Pi 2+内蔵有線LANとRaspberry Pi Zero+Logitec LAN-GTJU32で、speedtest-cliを使って測定してみました。



シングルコアあたりの処理能力はほぼ同じRaspberry Pi ZeroとRaspberry Pi 2。
通信速度差はLANアダプタの差と思って良いでしょう。
Raspberry Pi 2は内蔵LANが100BASE-Tのため実測値として妥当な数字です。
一方、Raspberry Pi Zeroは1000BASE-TのアダプタをUSB2.0接続にしてるため最大論理値は480Mbpsとなります。
バックグラウンドで他のプロセスが実行されたシングルコアCPUにも関わらず、DLが100Mbpsを超えたのは大健闘でしょう。

スマホにもUSB3.1+USB TypeCコネクタの流れがきている今日このごろ。
Raspberry Piは、そんなスマホの発展によって成長した技術に支えられて低価格が実現したコンピュータです。
最新のRaspberry Pi 3は64ビットCPUや無線LAN&Bluetoothが搭載され益々スマホに近いスペックになっています。
今後の発展がとても楽しみです。

2016年7月5日火曜日

Twitter for Androidの通知が来ない時の対処方法

仕方ないなぁ、もぉ_(¦3 」∠)_
Twitterアプリ側の設定
1.Twitter for Androidを開いた状態で、左上の丸い自分のプロフィール画像をタップ


2.通知をタップ


3.モバイル通知をタップ


4.右上のスライドスイッチが灰色の場合はタップして色を付ける


5.@ツイートと画像タグをタップ


6.誰からでもをタップ



これでも通知が来なかったらOSの設定を見直す。
Twitterアプリ側の設定
Android 5.0以上の場合のやり方。
ソレ以下の場合は・・・困ったね∠( ゚д゚)/

1.音と通知をタップ


2.下の方にアプリの通知があるのでそれタップ。


3.インストールされてるアプリ一覧が出るのでTwitterを探してタップ


4.画面参考にこんな感じで設定する。


最後に
この設定方法はNexus 5+Android 6.0.1で作ったので、表示が全然違う場合があります。
それでも、大体の設定の流れは同じなので探せば見つかるはず!
それでもダメなら携帯電話会社のショップに持ち込んで聞いてみてください。
Twitterアプリはメジャーアプリなので、手取り足取り腰取り教えてくれるハズです。

Android 4かそれより古い場合はちょっと厄介かも?
Androidの最初の画面から
設定→アプリ→[アプリの一覧]→Twitter 探し出してそれをタップ。
通知を表示というチェックボタンがあるので、それをチェック。
もし無かったらお手上げです∠( ゚д゚)/
そんな腐れスマホは窓から投げ捨ててください。私が拾いに伺います(笑)