【RaspberryPi】PythonでSnowboyを利用して「GPIOを使用」と「設定した音声再生」を行う

前回はSnowboyを使って中二魂全開DXでない日輪刀を作りましたが、そのあたりの処理に関してはあまり触れていませんでした。 なので、久しぶりにpythonのコードについて記述していこうと思います。

記述は本家のSnowboyのサイトを参考にしています。

【参考】 snowboy.kitt.ai

【関連】 uepon.hatenadiary.com

uepon.hatenadiary.com

続きを読む

【RaspberryPi】Hot Word検出SnowboyでオリジナルのHot Wordを検知してみる(後編:オリジナルモデル作成)

サブタイトル:ハロウィンなんだし、おじさんも鬼殺隊に入って「全集中」したいんじゃ!

先日書いたエントリーの続きになります。前回のエントリでは、SnowboyRaspberryPi上から動作設定を行うというものでしたが、今回はHotwordの音声認識を自分好みのものに変更してみようと思います。これで、自由な呼びかけができるようになります。

参考

uepon.hatenadiary.com

続きを読む

【RaspberryPi】Hot Word検出SnowboyでオリジナルのHot Wordを検知してみる(前編:設定)

今回は、以前のエントリでも挑戦してみたいと思っていた、音声のホットワードを検知するSnowboyをインストールして、トリガー検知を行ってみたいと思います。

f:id:ueponx:20201026022104p:plain

使用するSnowboyは以下のような説明になっていました。

Snowboy is an highly customizable hotword detection engine that is embedded real-time and is always listening (even when off-line) compatible with Raspberry Pi, (Ubuntu) Linux, and Mac OS X.

日本語訳すると…

Snowboyは高度にカスタマイズ可能なホットワード検出エンジンであり、リアルタイムに組み込まれ、Raspberry Pi、(UbuntuLinux、およびMac OS Xと互換性があります(オフラインの場合でも)。

snowboy.kitt.ai

ホットワードとは、Google Homeでいえば「OK、Google」、Alexaでいえば「Alexa」というアレです。Snowboyを使用するとこのホットワードを任意のものに変換することでできるようにできます。あとオフラインでの認識ができるので、ネットワークを使わない分、高速に動作させることもできます。しかもRaspberryPiでも動作できるのでライトウエイトな実装でもあります。

以下のエントリーを参考にさせていただきました。リリースの時期が結構古いので動作環境も変わっているので、ちょっと注意が必要かもしれません。

qiita.com

nyabot.hatenablog.com

続きを読む

【RaspberryPi】Amazon Echoを使った音声認識でNode-REDの処理を行う

以前のエントリーの続きになります。今回はAmazon Echo音声認識を使用してNode-REDの処理を行います。

Node-REDAmazon Echoを使用するノードは実は80番ポートでしか待機ができないようになっています(昔は別ポートでもできたみたいな感じ?)そのため、ポート80を別のプロセスで使用していると使用できないという状況のようです。そのため、もし80番ポートを使用しているプロセスが既にあるようであれば、そちらの使用ポートを変更することが妥当かと思います。(最近はhttpsでなければ公開できないことが多いですが、ローカルのプログラムでは割とhttpをつかっていることもあるのでそのための対応と思ってください。)

以下のエントリも参考にさせていただいております。

参考

AmazonEchoからRaspberryPiのコマンドを実行する(node-red-contrib-amazon-echo): パソコン鳥のブログ

uepon.hatenadiary.com

f:id:ueponx:20200817221506p:plain

そこで、以前行ったネットワークインターフェースに複数のIPアドレスを設定し、さらにポートフォワードを行うことで対応を行っていきます。ポート80番が使用できるのであればこんな方法を使用する必要はないです。

続きを読む

古いPCのSSDを最近の激安SSDへ換装する

古いPCをつかうことがあったので使用するかどうか考えていました。Windows7世代のPCではありましたが、実際に動作させてみるともっさりとした動きでした。さすがに古いPCでもあったのでHDDが搭載されているので動作が遅いのであろうと思ったのですが、調べてみるとSSDが搭載。それにしたは遅すぎるよな~というところからはじまる今回のエントリーとなります。

標準搭載のストレージの情報とスピードを計測してみる

本体の型番は‘‘‘MB-B500E‘‘‘(Windows10/15.6inch/1366×768/Celeron/4GBメモリ/SSD120GB)でした。2016年にマウスコンピューターから発売されていたようです。

f:id:ueponx:20201006235604p:plain

ストレージの情報を取得するのは CrystalDiskInfoCrystalDiskMarkの2つで行っています。このあたりは大定番だと思いますのでリンクのみのご紹介にします。

CrystalDiskInfo crystalmark.info

CrystalDiskMark crystalmark.info

実際に情報の取得を行うとこんな感じでした。

f:id:ueponx:20201006224505j:plain

f:id:ueponx:20201006224523j:plain

総容量が120GBなのはかなり微妙な雰囲気ですが、Celeronだしなあと思うとこのレベルでもいいような気がします。(64GBでは心元ありませんが、それ以上であればなんとな触れなくもないかなという印象です)

CrystalDiskInfoのリードエラーレートの最大値、最小値がやばいのかなっていう値でした(この時点では勘違いしていたのですが、値の意味は後からわかります) でも書き込み系のベンチマークがかなり遅いですね。世代的なものなのでしょうか?

割と使用には厳しい状況だったので、SSDの換装を行うことにしていきます。

続きを読む
/* -----codeの行番号----- */