2016/01/30

キッチンタイマーを作ってみる 6

Raspberry Piのハードウェア設定が終わったので、本来の目的のキッチンタイマー作りに戻ります。
基本的な部分は出来ていて、あとは動作のフィードバック通知のためスピーカーから音を出すところで止まっていたのでその続き。
普通にビープ音を出すだけでは芸が無いので、ここはやっぱり音声でフィードバックさせるようにします。

Raspberry Piで音声合成するのにあたってメジャーな物が2つあるそうです。
まずはOpen JTalkというものを試してみる。
こちらのサイトの説明に従いapt-getでインストール、紹介されているスクリプトで喋らせようとしましたが、なんか"mgc.pdfが〜"とか出てうまくいかない。
次にこちらのサイトを参考にソースからコンパイル、インストールしてみて試してみる。
今度はうまく音声が出ましたが、ターミナルでコマンドを入力してから音声が出るまでちょっとタイムラグがあるな〜という感想。

次に AquesTalk Pi というものを試してみる。
Open JTalkに比べてインストールは簡単、例に従ってターミナルからのコマンド入力で音声出力をしようと試してみる。

  • AquesTalkPi "test" | aplay
・・・エラーがでる。色々試していて、結局自分のミスでインストールしたディレクトリに移動していたので頭に"./"を入れなくてもいいかな〜と思っていてコマンド入力していたためのミスでした。
例の通り入力したらちゃんと音声が出力されました。
  • ./AquesTalkPi "test" | aplay

2つの音声合成を試して、音質的にはOpen JTalkのほうが好みでしたが、タイムラグがあるのが難点。
これに比べAquesTalk Piはほぼタイムラグが無く音声が出てきます。今回の自分の用途ではすぐに音声が出て欲しいのでAquesTalk Piを使うことにします。

ターミナルからは上記の方法で音声が出力するので、Phtyonから出力する方法を調べる。
こちらもぐぐって、下記の用にすると出力出来るとの事。

  • import os
  • os.system('インストールしたディレクトリ/AquesTalkPi "んー' + u_msg + '" | aplay&')
u_msgは喋らせる内容を入れた文字列。普通のスピーカーに繋いでいる場合はこれだけでいいはずですが、自分はBluetoothスピーカーに接続。このためか音声の最初が途切れ気味です。
これの対策のため頭に"んー"と追加しています。

無事音声も出るようになったので、キッチンタイマーの仕上げにかかります

2016/01/24

Raspberry Piに挑戦-バックアップ

Bluetoothスピーカーの接続でうまくいかず最初からインストールし直して検証作業をすることがつづいたので、環境をまるごとバックアップする方法を勉強。
Raspberry PiはSDカードにOS、ソフトウェアが全部入っているので、変に細かい作業をするよりSDカードを丸ごとバックアップするのが簡単だそうです。
自分はOSXを使っているのでその方法を。

まずはSDカードがどこに割り当てられているか確認。
ターミナルを開き、次のコマンドで確認します。

  • sudo diskutil list
"df -h"でも確認できるそうですが、自分は上のコマンドの方が結果が分かりやすかったです。
で、SDカードは"/dev/disk2"に割り当てられているのを確認。

次はまずSDカードの中身を読みだしてイメージファイルにする。"of="の後がイメージファイルの保存先、ファイル名なので自分の環境に合わせて適宜修正。
読み込んでいる時間が結構長く画面に何も変化が無いので心配になりますが、終わるまでひたすら待ちます。16GBで42分ぐらいかかりました。

  • sudo dd if=/dev/disk2 of=./RPI_backup.img

次は書き込み方法。SDカードを差し込んだあと一旦アンマウントして、その後ddコマンドで書き込みます。
書き込みもやっぱり時間がかかりますが、ひたすら待ちます。16GBのSDカードで15分ほどかかりました。

  • diskutil umountDisk /dev/disk2
  • sudo dd if=./RPI_backup.img of=/dev/rdisk2 bs=1m

これでいつでもリストア出来るようになりました。
さてまた色々試していこう。

今回は下記サイトを参考にさせていただきました。
からあげさんのサイト
eye4brainさんのサイト

Raspberry Piに挑戦-Bluetoothスピーカーの接続

前回Raspberry PiのバージョンがJessieというものに変わりBluetoothキーボードの接続について書きましたが、続いてBluetoothスピーカー。
とりあえず自分がやったことを書いていきます。あ、接続したスピーカーはAnkerの小型スピーカー、A7910です。

まずはbluetoothオーディオに必要らしいものをインストール。

  • sudo apt-get install pulseaudio-module-bluetooth
  • sudo apt-get install pavucontrol

続いて"sudo service bluetooth restart"といれてbluetoothサービスの再起動をすれば良いはずですが、今なら単純にシステムを再起動でも良いかと。

再起動したらターミナルを開き

  • bluetoothctl -a
  • power on
  • pairable on
  • scan on
ここでBluetooth機器の検索を始めアドレスと機器名がどんどん表示されていきますので、目的の機器のアドレスをメモるかコピーしておきます。
続いてペアリングに入ります。#は接続したい機器の英数字を入力してください。
  • pair ##:##:##:##:##:##
ペアリングがうまくいくと「Pairing successful」と表示されるので続けて下記を入力。
  • paired-devices
これでペアリングされたか確認。続けて下記を入力。接続する機器、信頼される機器として登録、となっているようです。
  • connect ##:##:##:##:##:##
  • trust ##:##:##:##:##:##
・・・これでたぶんうまくいくはずです。あとは「quit」と入力すると元のターミナル画面に戻ります。
ターミナル画面に戻ったら
  • aplay /usr/share/sounds/alsa/Front_Center.wav
などで音が鳴るか確認しておきます。
bluetoothスピーカーからでる音量の調整はデスクトップの右上にあるスピーカーアイコンでは調整できない(はず)なので、メニューの中に「サウンドとビデオ」「PulseAudio音量調整」が追加されていますので、ここからBluetoothスピーカーの音量調整を行います。