2018.04.27この記事は約11分で読めます。pHATを使って、単純な音楽再生機を作りました。コンセプトは、子供や機械に音痴な女性でも電源を入れてボタン1つで音楽を聴けるデバイスです。ボタン1つなのであまり多くは制御できません。SDカード内の曲を再生するため大量の曲を聴くにも適しませんし、基本は勝手に再生するデバイスとなります。系の利点かも知れません。機能は充分ですし、音もなかなかですよ。セットアップRaspbianOS(今回は2018-04-18-raspbian-stretch-lite)をインストールしました。バージョンアップしたばかりですね。Raspbianのインストールに関して、初期設定などは過去の記事をご参考にしてください。pHATは何にもなりません。動かすのに必要なライブラリや設定変更をしてくれるソフトウェアをPimoroniからダウンロードし実行させます。Wのデバイスにアクセスします。Macからだとターミナルアプリケーションで行います。pHAT専用ソフトウェアは以下、GitHubで公開されています。pimoroni/speaker-phathttps://github.com/pimoroni/speaker-phatSSHで接続したターミナルから以下のコマンド一発です。bash途中、Yes/Noの選択が数回出てきます。基本はYESで構いません。テストダウンロードしたディレクトリ(通常は)ホームディレクトリにPimoroniというディレクトリがあります。その中にtestディレクトリがあり(~/Pimoroni/speakerphat/test)再生できる音声とシェルスクリプトがあります。test.wavtest.shでLEDと音声のテストができます。Daemonの略でサーバサイドのアプリケーションです。再生にはクライアントアプリケーションが必要です。PCで音楽を再生するのはただのプレイヤーですね。音楽を管理するものと再生させるものが別と考えていいです。pHAT自体で再生させますが、スマホや他のPCデバイスから再生を指示するイメージですね。そのためMPDとクライアントアプリケーションを同居させます。mpc参考https://www.musicpd.orgmpdが総称としてのMPDと同じなので解りづらいですね・・・。初心者は特にそう疑問に思うでしょう。ソフトウェアの方は小文字のmpdで表現されます。mpcは同じ開発(と言ったらいいか?)で、コマンドラインで利用するクライアントアプリケーションです。他にもクライアントアプリケーションはたくさんあって、Windows用であったり、iOS、Androidなど多様です。実際に今回も外から制御できます。緊急用にスマホで操作できると便利です。設定のconfが全てです。それで制御できるようになります。逆に言えばconfファイルで決まるということですね。http://deviceplus.jp/hobby/raspberrypi_entry_014/confファイルはnanoなどで開き、編集していきます。長いので、上から順に探してください。"/home/pi/music"ここはデフォルトでも構いません。ホームディレクトリの方が作業し易いので変更しました。"audio"コメントを外して(先頭の#を消す)audioと編集します。"localhost"コメントを付けて(#を先頭に追加)してコメントアウト(非設定)します。これで外からもアクセスできます。今回の趣旨とは別ですが不便なので。"yes"ライブラリの自動更新設定。"3"ライブラリをスキャン更新する階層の深さです。入れ子のディレクトリで3つまでということです。phatならこれでいいと思います。“software”にすることで音量を制御できます。これ以外の部分は好みで変更してください。基本はこれだけでOKだと思います。sambaインストール外から音楽ファイルを転送できるようにsambaをインストールしておきます。/etc/samba/smb.conf共有名[pi]で以下のように追記します。nmbd.servicesambaだけではなく他のサービスも現在はsystemctlでリスタートしますね。合成音声の追加せっかくスピーカーが付いているpHATなので、任意の言葉を喋らせようと思います。音声合成のソフト?サービス?は無償・有料で様々増えてきました。JTalkを使います。Piというのもあります。AquesTalkPiの方よりOpenJTalkの方がPythonで扱うには適しているなと感じただけですので、お好みでどうぞ。open-jtalkOpenJtalkはパッケージになっていて使いやすいですね。以下で男性の声をインストールできます。hts-voice-nitech-jp-atr503-m001音声を使って喋らせるにはコマンドで指定するのですが、長くて煩わしいです。そこでシェルコマンドにしてそれを利用します。jvoice-m.shとします。jvoice-m.sh以下の内容で保存します。$TMPこの.shに実行権を与えます。jvoice.sh実際の利用は以下の書式をコマンドで実行します。こんにちはjvoice-m.shがある同じディレクトリでのコマンドなので、別の場所なら絶対アドレスで記載してください。これなら短い指定で済みます。これをうまく利用するには別途、Pythonなどの実行ファイルで短いプログラムを組むと楽です。簡単な形式なら.shのシェルスクリプトでもOKです。女性の声も追加します。http://downloads.sourceforge.net/project/mmdagent/MMDAgent_Example/MMDAgent_Example-1.7/MMDAgent_Example-1.7.zip記事執筆時点で最新verは1.7でした。MMDAgent_Example-1.7.zip圧縮ファイルを解凍して、以下のように/usr/share/hts-voice/へコピーします。/usr/share/hts-voice/先程の男性の声と同じようにシェルスクリプトにします。変更する箇所は男性の声を指定していた部分を女性の物にアドレスを変更します。jvoice.shこれを新規で保存します。$TMP実行は以下のコマンドです。おはよう男性用のmを外したファイル名にしてあります。jvoice.shこれらを使い、ボタンのON/OFFのタイミングで喋らせようと思います。以前から増えたちょっと良い物300円みたいなコーナーにありました。build-essential次に、参考サイトで知ったbluebuttonというプログラムをそのまま利用します。bluebuttonなんか、gemというコマンドはrubyのパッケージ管理らしく(?)先にrubyもインストールします。300円Bluetoothボタンとペアリングするため対話式bluetoothctlを実行します。bluetoothctl[bluetooth]#に変わります。availableと出る場合、管理者権限での実行にしていないからだと思います。ここでだいぶハマった・・・。sudoを付けてbluetoothctlは実行してください!初歩的なことでした・・・。Shutter3このように出ていればOK。適当な時間でctrl+Cで中断します。コマンドを叩けば出てくると思います。(Bluetoothボタンの電源スイッチを確認してください)FF:FF:3F:F6:48:42がMACアドレスです。このMACアドレスをコピーしてペアリングで指定してください。順番にコマンドしていきます。FF:FF:3F:F6:48:42なぜかconnctしてからでないとpairできませんでした。最後にtrustすれば再起動後やデバイスのON/OFFをしても繋がります。このようになっていればOKです。quit最後はquitまたはexitで抜けます。次の記事でシェルスクリプトまたはPythonプログラムでボタン押下の挙動と合成音声の再生をしてみます。できることスポンサーリンクこのサイトを運営している人ラズパイダ学べる楽しむ便利になる。小さいくせにヤケにパワフル。知らない人に伝えたい。作ってみた!外箱を工作したケースを作ってみる[Pimoroniスピーカーキット編]スポンサーリンクラズパイダの新着記事をメールで購読メールアドレスを記入して購読すれば、更新をメールで受信できます。337人の購読者に加わりましょうメールアドレスラズパイダを購読するTwitter、フォーラム、メールで購読それぞれ更新情報をお伝えしています。前フォーラムforumニュースと話題newstopicsインストールと設定settingラズパイ本体についてRaspberryPi作ってみた!framework学ぶlearnサイト運営raspida.comサイトマップSitemapこの部分はインラインフレームを使用してます。対応のブラウザでご覧ください。この部分はインラインフレームを使用してます。対応のブラウザでご覧ください。Reserved.メニューフォーラムインストールと設定ニュースと話題ラズパイ本体について作ってみた!学ぶホーム検索トップサイドバーこの部分はインラインフレームを使用してます。対応のブラウザでご覧ください。この部分はインラインフレームを使用してます。対応のブラウザでご覧ください。LibreELEC9.0で作るAmazonプライム・ビデオプレイヤー2019.02.082020.02.02スポンサーリンク。