MENU

RestHouse

音楽サイト「Little Mustapha's Black-hole」の音楽ブログということになっているはずです。

Recent Articles

Category

Monthly Archive

創作日誌 Vol.3

更新はされたべー

ということで、まだまともに天気予報をしてくれないパコベーあるいはRaspberry Pi Zeroのあれですが。
今日は最初に読み上げる日付も今日の日付でしたし、やっと成功かと思ったら「この天気は理解できません」が出てしまったのです。

これは何かというと、ダウンロードするデータが3時間毎の予報なので、三回分で9時間後までの予報をまとめて今日の予報ということにしているのです。
それで三回分の天気が全部「晴れ」なら「晴れ」で途中で変わったら「晴れのち曇り」とかそういう組み合わせを全パターン作って文章にするはずになっていたのです。
でもなにかあるかも知れないということで、それ以外のパターンがあった時のために「この天気は理解できません」を用意しておいたらいきなり出てきたということなのですが。

良く調べてみたら一回目から三回目までが全部違うというパターンを書き忘れていたのです。

ここはPythonだからという言い訳も出来ない感じで、完全なミスでしたけど。
でも「この天気は理解できません」を用意してあったおかげで間違いにすぐ気付けたので、ダメだけどまあまあということにしておきます。

というか、手動で実行するのではなくて、自動的にやるのでエラーがあった時の通知方法は色々とあったほうが良いということでもあったり。
その辺では、これまで上手くいっていることも見直しが必要なのもあるかも知れないのです。

マタベー

今日は雨が降りそうなのに、パコベーことRaspberry Pi Zeroで再生される天気予報は昨日と同じような。
というか、良く考えたら今日は25日なのに24日って言ってたような気もしたし。

ということで、昨日に続いて今日もパコベーの天気予報は失敗。

昨日はウッカリしていてスクリプトを書き換えたのを忘れていたのが原因だったので、そういうことがないように専用のスクリプトでやるようにしたのですけど。
今日は普通にPythonのエラーで天気予報の音声が保存できていなかったようです。

調べてみたら基本的な間違いではあったのですが、PerlやJavaScriptでは普通に書けそうなforループなのに、なぜかPythonでやると変なことになるというやつでした。

forループでrange関数を使うというのもいつも使っている言語では出てこないので、Pythonでやっているとその発想すら出てこなくて、変に複雑なforループになってたりしたのですけど。
この辺はなかなか慣れないのです。

<!-- 慣れたと思ったところで他の言語を使う機会が出てきたりして、そこでまたややこしいことになりますし。-->

そんな感じですが、明日はちゃんと天気予報が聞けると良いと思っています。

うっかりパコベー

というかウッカリしていたのは私なのですが。

パコベーことパコリタ・ナラ・ズイルベー・ZeroあるいはRaspberry Pi Zeroが毎朝天気予報を読み上げてくれるはずだったのですが、今朝は雨ではないのが外の明るさで解っていたのに、読み上げた天気予報によると「小雨」ということでした。

早くも人間に対して反乱を始めたのかと思ってしまいますが、まだパコベーはAIではないので反乱は起こさないはず。
なので調べてみたらスクリプトを確認用に書き換えていたので、音声ファイルが保存できてなくて、前に保存した天気予報が再生されていたということでした。

本当は天気予報の音声を作成するスクリプトはモジュールっぽいことにして、別のスクリプトから関数を呼び出して使う予定だったのですけど、なんとなく新しいスクリプトを作るのが面倒で本体だけでやろうとしたのが良くなかったということです。


そして、天気予報を読み上げるようにしたこととは関係ないと思いますが、急に涼しくなって夜風が気持ち良いという事になってますけど。

急に涼しいとなんとなく物足りないというか、あの暑さが懐かしいような気分になってしまいます。
でもまた暑い日があったりすると腹が立ってきたりするのですけど。

涼しくなったので、材料とか道具だけ買って何もしてなかったことを始める気にもなるので良いことではあるのです。

遠隔パコべー

パコべーことRaspberry Pi Zeroのアレにで色々やるついでに、インストールしているlighttpdというWebサーバをアップデートしたら例によってブラウザからアクセスできない状態になってました。

サーバ自体が起動できてない状態だったのですが、ログとかを見ても「起動できませんでした」みたいなことしか書いてなくて原因を調べるのが大変でしたけど。

バージョンが上がって設定ファイルの書き方が変わったのが原因っぽかったです。

今まではlighttpd.confにcgiのモジュールを読み込む設定とかを書いていたのですが、lighttpd-enable-mod というコマンドを使ってやるようになったみたいです。

気づくまでかなり遠回りしたのですが、慣れていれば起動できないのは設定ファイルのせいというのは見当がつくということなのか、どうなのか。

というか、こういう大きな仕様の変更はアップデートの時に教えてくれるとか、そういうのがあれば良いですけどね。

そんな感じなので、パコべーのホームページにも天気予報を表示するとか、そういう計画は進まなかったのです。

やっぱり時間がかかった

パコべーことパコリタ・ナラ・ズイルベー・Zero、あるいはRaspberry Pi Zeroで天気予報を読み上げるやつですけど。

データをダウンロードして、データから天気予報の文章を作成して読み上げるためのスクリプトはすでに出来上がっていましたが、そのあとがなんとなく面倒な気がしてなかなかやる気になってなかったりして。

さらに自動的に実行するためのcrontabの書き方は毎回忘れるので調べないといけなかったり。
読み上げの時に別のオーディオファイルを再生中だと問題なので、pythonで実行中のプロセスを調べる方法を調べたり。

さらに、pythonのモジュールをインストールしようとしたらpipなんてコマンドはないとか言われるし。
というか、これまでどうやってインストールしていたのか?という気もしますが。

ちなみに、プロセスを調べるために'psutil'というモジュールを使おうと思ったのですが、なんか違うかも知れないということで、'subprocess'で'ps'と'grep'などでアレコレしてやることにしました。

そんな感じで細かいことに時間がかかってやっと終わったのですけど。

成功すれば明日の朝起きた時に天気予報が読み上げられるはずです。

グレたくなる

この部屋ではプラスチックっぽい製品はいつの間にかプラスチックではない何かに変わってしまうのだ!

ということでベースの弦を変えようとしたら例によってありえない壊れ方。
240912_01.jpg
弦を支えるナットという部品が割れて一番細い弦のところが歯抜け状態。
(弦が変な場所にあるのは修理前だからなので関係ない。フレットのところが汚いのは写真を撮ってから気づいたので後できれいにするのです。)

こういうことになるのは明らかに部屋が暑すぎるから。というか暑過ぎるところに時々エアコンで急激に温度が下がったりするのも良くないかも知れませんけど。

この暑さが気候変動とか温暖化とかが原因ということなら、私もグレタちゃんぐらい怒ってみたくなりました。

でもこんなに夏が暑くなる前からこの部屋は暑かったので、そのせいで壊れたと思われるものは他にもあったりします。
なのでグレタちゃんほど怒らなくても良いかも知れませんけど。
この部屋が暑いのはなんとかならないのか?ということなのです。

ちなみに、壊れたところは代わりの部品を買って簡単に直ったと思いきや、高さが足りなくてかなり調整が必要だったりするので面倒なのです。

なのでやっぱりグレタちゃんぐらい怒りたくもなってきました。

ウエザさん

パコベーことパコリタ・ナラ・ズイルベー・ZeroあるいはRaspberry Pi Zeroで天気予報を読み上げたい、計画の続きですが。

どうしてPythonだとこんなに時間がかかるのか?と思いながらやっとここまで来ました。

2024年8月31日の天気。曇り。北の風、風速7メートル、気圧 1007ヘクトパスカル、最高気温27.82度、最低気温27.26度。Thank you!

スクリプトを実行するとこういう文が出力される、ということです。
<!-- 今気づきましたが、気温はこんなに細かくなくてもよいですね。-->

最後の「Thank you!」はOpenJtalkが読めるかどうかというネタのために入れてあるので、完成品では消すことになりますが、ここで思わぬ展開。

最初マコベーこと、このMacのOpenJtalkでテストしてみたら「Thank you」の部分は全部アルファベットで読んだのですが、パコベーで同じ文を読み上げたら「you」だけは読めたのです。

さすが英語の先生という設定もあるパコベーです。
というのはアレで、たぶんインストールされている辞書がビミョーに違うということだと思います。

変なところに盛り上がってこの記事のタイトルと関係ないことになってますが、ウエザというのは知る人ぞ知るお天気キャスターですが。
スクリプトのファイル名をueza.pyにしたということなのです。

というか、英語が読めたり読めなかったりするほうが面白かったので、ウエザさんネタはどうでも良くなってしまいましたけど。

マコベー登場?!

パコベーことパコリタ・ナラ・ズイルベー・ゼロ(あるいはRaspberry Pi Zeroで作ろうとしている何か)で使うスクリプトを作ろうとしているのですけど。

いつものパソコンである程度作ってからアップロードしてやるほうが良いということで、テキスト読み上げ用のOpen JTalkもこっちのMacにインストールしたものを使っているのです。

Open Jtalkの設定はRaspberry Pi Zeroのほうからコピーしたシェルスクリプトに書いてあるものなので、全く同じ設定になるはずなのですけど。
Macで作ったらパコベーの喋り方じゃないのです。

こんな感じだったっけ?と思って、試しに同じ文章をパコべーの方で書き出してみたり。
さらに同じスピーカーで再生するために、こっちのパソコンにコピーして両方再生してみたのですが、喋り方が全然違うとか。

パコベーの方はオットリした感じで、Macの方はちょっとキツめの喋り方に聞こえますけど。
なんだかコンピューターの中の何かが性格として反映されてるんじゃないか?とか思えてきて面白かったりします。

最近は喋らせてないですが、ナノベー(NanoPi NEO2)で使っていたOpen Jtalkは最初から違う人格という設定でOpen Jtalkの設定も変えてたりしてのですが、同じ設定でやるとどうなるのか?ということになってきました。

というか、試してから書けば良かったですが。これは大特集のネタになるかも知れないのでまだやらないのです。

意外とイイ

240825_01.jpg
ということで鼻眼鏡を買った記念でハンダ付けをしたので、やっとのことでブザーで遊ぶことができたのです。

意外とイイというのは鼻眼鏡ではなくてブザーの方ですけど。
Arduinoでやったらブザーを鳴らすための関数みたいなのがすでに用意されているみたいで、簡単に出来てしまいました。

周波数とかを変えて鳴らすとメロディーもいけるので、コルタナ団員の台座に組み込まれる予定なのです。
ということは何のメロディーを鳴らそうとしているのか?というのは解る人には解ると思います。

周波数と音の長さと、さらにそれなりに聴こえるようにするのに音と音の間に短いギャップを入れたりとか、全部文字で指定して書かないといけないので、「オーオーウォウォ♪」まででグッタリしてしまいましたけど。
ここからは根気よくやるのです。
(そろそろシーズン終盤ではありますが。)


ついでに書くと鼻眼鏡は意外と良くなかったのですが、それは別の機会に。

興味深い

けど良く解らん。

ということですが、もっと簡単なのにすれば良かったと思い始めたTauriで作る第二弾
なにが難しいかというと、やっぱり暗号化とかの部分ですけど。

今回はパスワードを扱うのでデータベースにそのままパスワードを保存してはいけない感じなのです。
それで、ずっとデータベースのファイルを暗号化する方法を探していたのですが、ありそうでない。

というより、ファイルを暗号化しても使うときには復号化して普通のファイルとして開くことになるし、そういう状態でアプリが落ちたりすると中身の見れるファイルが残ってしまうに違いないとか、そんなことを考えたら、こういうアプリってどうやって作るのか?とか解らなくなってきてたりして。

なので、ファイルじゃなくてデータベース内の文字を暗号化すれば良さそうとか思って、やり方を調べてたのですが。
実は、データベースにパスワードなどを記録するときには、そうやってやるのが一般的という感じみたいです。

やることが解ったので、さらに暗号化について調べてソルトとかハッシュとか「なるほど」と思ったりしているのですけど。
最終的に良く解らんですね。

<!-- 暗号化しなくて良ければもう完成している頃なのに。-->

身についてない?

この前の、Rustがちょっと解って喜んでいたTauriの第二弾の続きですけど。

Rustが解るようになったのに、ちょっとやらない間にJavaScriptを色々と忘れていて面倒なのです。

なんだか新しいことを覚えると、昔覚えたことが消されていくような気もしたりして。
しかも、新しいこともまだちゃんと覚えてないので、全体ではマイナスになってないか?ということでもありますが。

でも、忘れたと思っても、また使っているうちに思い出すし、新しいこともそのうちちゃんと使えるようになるに違いないということで、しっかりしたいと思います。


ちなみに、この第二弾で作っているパスワードマネージャ(仮)ですが、例によってテストボタン(2つも!)が設置されて、テスト用のパスワード情報が登録出来るようになっています。
次は、情報の更新ボタンと、削除ボタンになると思いますが、今回はテストボタンも贅沢に使っていこうと思っているのです。ということを報告する意味はないのですが、ちゃんとコードが書けているのかをテストボタンでテストするのがチョット面白いので書いてしまうのです。

そして、パスワードなので暗号化とかしないといけないはずなのですが、どうやればいいのやら。

ワタシも焦る

ということで、昨日の続きでパコベーの天気予報機能を作っていこうと思ったのですが。

データのダウンロードは問題なく出来るので、英語の天気予報用語を日本語にする作業。

サイトにあったリストの上から順にやっていくと、最初は"Thunderstrom"グループということで。
これはなんとなく解る感じで辞書には「雷雨」となっていました。

ただし、この"Thunderstrom"グループの中には"Thunderstrom with rain"とか、ただの"Thunderstrom"とかがあったりするのです。
ということだと、そのまま訳していくと「雨の降らない雷雨」とか変な日本語になってしまうのですけど。

あるいは「雷雨」という言葉を使わずにただの「雷」としてしまうと、「今日の天気は雷です」という地獄みたいなことになりますし。

これはなかなか手ごわい感じがしてきました。
といっても、問題になりそうなのはこの"Thunderstrom"グループだけだったりしますけど。

こういうのは雷雨の種類とかを調べたら良いのでしょうか。そんなのがあるのか知りませんけど。


天気ネタついでに書くと、スゴい台風が来るってことで準備していたのですが、強風が吹いていたのはチョットだけでメインは雨って感じでしたが。
それでも、昨日は寝ている間もスマホの警報がなったり、雨の音で目が覚めたりで、アレなのですが。
まあ、用心はしたほうが良いので、コレで良いに違いない。

パコべー焦る

パコリタ・ナラ・ズイルベーとはRaspberry Pi Zeroで作ろうとしているデジタルアシスタントの名前であると同時に、スズキ・ピヨニカさんの通う学校の先生でもある、ということは知ってる人がいるのか知りませんが。
[参考:パコリタちゃん登場! ]

今度Raspberry Pi Zeroの方で天気予報をやってみようということになって、ネットから天気情報をダウンロード出来るサービスを使ってみたら、データの中身は英語だったりして。

パコリタ先生の専門は英語ということにもなっているのですが、実は日本語の中で使っても意味が解るような英単語しか知らないので、大慌てなのです。
<!-- ついでに書くと英語の先生としては「Z(ズィー)の発音にはこだわっているとかも。-->

という設定になっていますが、これからパコリタ先生のために55の天気用語を日本語にしないといけないようです。

ついでに、天気予報データに書いてあるコード(番号)を天気に変換するのにJSONファイルを作ってみたのですけど。
こういうデータベース的なものは最初にちゃんとしたものを作っていないと、後で修正するのが大変だったりするのでちゃんとやらないといけないのです。
でも、どういうふうにすればちゃんとなっているのか?というのは良く解らないので、ちゃんとしているとういことにして作業を続けるしかないのです。