ニートの言葉

元ニートがやってみたこと・その過程で学んだこと・考えたこと・技術メモあたりを主に書いています。情報革命が起きた後に訪れるであろう「一億総ニート時代」の生き方を考え中です。

世界一辛い「ブート・ジョロキア」を水耕栽培してみる その1

こんにちは、あんどう(@t_andou)です。

辛いものといえばハバネロだと思っていたのですが、2007年に世界一辛い唐辛子として認定されたブート・ジョロキアというものがあります。*1

今回、そのブート・ジョロキアを3本(3株?)買いました。

こちらのお店で購入しました。

www.rakuten.co.jp

育て方

さて、この子達をどうやって育てるかですが、土を使わない「水耕栽培」という育て方があります。

以前、水耕栽培でレタスを育てたことはありますが、レタスだとなんだか面白みに欠けるので、今回は世界一辛いと言われている「ブート・ジョロキア」の苗にしました。

水耕栽培の構想

こちらの記事を参考に水耕栽培のキットを作っていこうかと思います。→最初はホームハイポニカプクプクというキットにしました(理由は後述)

【超初心者向け】ベランダのゴーヤ水耕栽培で100個以上収穫を狙う人に書いた育て方まとめ | ベランダゴーヤ研究所

  • 発泡スチロールの入れ物を使う
  • 根っこに対して空気を送る・水流を作る
  • 液体肥料のハイポニカをあげる
  • 肥料の濃度を適切に保つ → ECメーターというのを作る
  • IoT化する

キットを買いました

前述の設備を自作すると5000~6000円くらいになるようで、初心者向けのホームハイポニカプクプクというキットと値段があまり変わらなかったので、まずはこちらを購入しました。

続く

*1:2019年現在ではさらに記録が更新されているようですが

24時間生放送をし続ける人工知能youtuberを作る その4「顔を作る」

↑今回の成果

こんにちは、あんどう(@t_andou)です。

24時間生放送をし続ける人工知能Youtuberを作る企画、第4回目の記事です。
前回はコメントを取得をして返信をしつづけるというものが完了しました。

今回は少しだけ見た目に手を加えていきます。

続きを読む

オープンソースの電子カルテOpenDolphinとORCAの連携メモ

こんにちは、あんどうです。

最近、お医者さんからの案件で電子カルテを触ってみる機会があったため、オープンソースの電子カルテ「OpenDolphin」とレセコン「ORCA」を試してみたのですが、連携する際に苦戦したので経緯や解決策をメモしておきます。

需要は少ないと思いますが、世の中にはもしかしたら同じ問題にぶつかる人もいらっしゃるかもしれないので、基本的には自分用のメモとして残しておきます。*1

やりたかったこと

ORCAで受付を行った際にOpenDolphinへデータの連携

環境

  • サーバー:ubuntu16.04
  • クライアント:Mac/Win/Linuxどれでも対応できるように
  • ORCA:サーバーにインストール(のちにDockerコンテナ化)
  • OpenDolphin:Dockerで設置

問題

ORCAで患者を登録し、受付が完了した際にOpneDolphinでデータが受信ができなかった。(閉塞となっていた)

原因

おそらく直接的な原因としては、公式で提供されているOpenDolphinのイメージでは5002番のポートが開いていなかったことによってORCA→OpenDolphinのデータ連携が出来ない状態になっていたようです。

解決策

GithubにあったOpenDolphinの設定を変えた上で自前でビルドすることで解決しました。

以下は経緯と手順のメモとなります。

経緯と手順のメモ

ORCA

  • ORCAのインストールはDockerでも公式でもOK
  • DBへのアクセス権は設定する必要がある(postgresql.conf と pg_hba.conf の編集)
  • 医者・患者のデータは登録しておく必要がある

Open Dolphin

  • こちらの参考ページでは操作している端末のIPを指定しているため、公式のDockerイメージだとクライアント経由で通信することになってそう(未調査)
  • サーバー間で通信するためにはport5002で受け付けるようにcustom.propertiesの操作が必要になる
  • しかし、公式のDockerイメージではcustom.propertiesは読み込み専用になっており、操作不可だったためDockerイメージから手を加える必要がある
  • ところが、Githubに置いてあるDockerfileはそのままだとビルドに失敗する
  • エラーを見ていくと、OpenDolphinのビルド時に使っていたFROMイメージ(jboss/wildfly)のバージョンがずれていることが原因のよう
  • そこで、jdkやwildflyのバージョンを下げた(バージョンを下げるのは気乗りしないが、今回はモックアップ作成のために動かすことが目的なのでOK)
  • また、custom.propertiesのコードを変更し、bindIPを0.0.0.0にした(ここはdockerのコンテナに割り当てたIPで良いはず)
  • ここまでで5002で受付はOK。ドルフィン側のDBに登録されていることも確認。しかし、患者のデータはドルフィンのUIに出てこなかった
  • ドルフィンDBを確認したところ、ドルフィンの医療機関コードは1.3.6.1.4.1.9414.70.1に固定であるのに対し 公式のgithubにあるドルフィンイメージ内のcustom.propertiesでは1.3.6.1.4.1.9414.2.1となっていた
  • そこで、このIDを1.3.6.1.4.1.9414.70.1に合わせたところ、動作した

修正後のDockerfileはこんな感じです。
gist.github.com

以上です。

まとめ

OpenDolphinのGithubは4ヶ月前にも更新されているけれど、DockerImageの方はメンテナンスされてないのが問題だったみたい。 今回はバージョンを下げて対応したけれど、本来であれば最新のソースが動くコンテナイメージを作るべき。

参考にしたページ

ゼミの飛翔: ORCAとOpenDolphin

ORCA Project: 日医標準レセプトソフト Ubuntu 16.04 LTS(Xenial Xerus)のインストールドキュメント(HTML版)

受付から送って受付情報が閉塞で表示される - OpenDolphin - シンプルな電カル OpenDolphin の導入を支援します

GitHub - dolphin-dev/OpenDolphin: Open Source EHR Application

*1:お問い合わせいただきましても返答出来かねますのでご了承ください

24時間生放送をし続ける人工知能youtuberを作る その3「コメント取得・会話」

こんにちは、あんどう(@t_andou)です。

24時間生放送をし続ける人工知能Youtuberを作る企画、第3回目の記事です。
前回はコメントを取得しようとして失敗しましたので、その続きです。

今回も技術よりの記事になります。

前回の記事

blog.takuya-andou.com

今回やること

前回失敗に終わったコメント取得をし続けるものを作ります。

やり方はいくつか案がありましたが、Selenium/Chrome/Pythonを使うことにします。

作り方

1.こちらのページを参考にselenium+chrome+Pythonの環境を構築

2.Pythonのスクリプトを書く(下記のような処理にしています)

  1. chromeを起動
  2. Youtubeへアクセスし、チャット部分のURL(iframe)を取得
  3. チャットにアクセスし、毎秒新しいコメントが無いかをチェック
  4. 新しいコメントがあったらprintする

完成

一晩放置して稼働させてみたところ、無事動きました。


24時間生放送をする人工知能を作る「一晩放置するテスト放送」

ソース

githubにソースをあげました。使い方はREADMEに書いています。

github.com

参考にしたページ

Docker上でSeleniumとHeadless ChromeとPython3を動かす - Qiita

次回

今回まであまり人工知能っぽくない内容になりましたが、次回から人工知能らしい内容(顔の変換・声の変換あたり)に触れていきたいと思います。 

24時間生放送をし続ける人工知能youtuberを作る その2「コメント取得・会話」

こんにちは、あんどう(@t_andou)です。

24時間生放送をし続ける人工知能Youtuberを作る企画、第2回目の記事です。
前回は概要を書きましたが、今回から実際に作っていきます。

今回はちょっとだけ技術よりの記事になります。

前回の記事

blog.takuya-andou.com

今回やること

前回の終わりにも記載しましたが

・YoutubeLiveで投稿されたコメントを取得
・コメントに対して反応をするものを組み込む
・画面上に表示するようにする

この三つをやっていきます。

作り方

作り方を載せておきます。

ソース

githubにソースをあげました。使い方はREADMEを読んで下さい。

github.com

参考にしたページ

この辺りのページを参考にしました。

YoutubeLiveで投稿されたコメントを取得

メモ帳 | Youtube LiveStreaming APIで配信のコメントを取得する

【 メモ 】YoutubeLiveのコメント取得 ( Python ) : エンジニア速報

コメントに対して反応をするものを組み込む

まずは簡単に使えそうなリクルートさんの対話APIを使ってみました

TalkAPI|PRODUCT|A3RT

docomoさんの方が履歴に沿った対話を出来るようですので、いずれは変えるかもしれないです。

画面上に表示するようにする

ここに関してはOBSを利用しターミナルの画面をキャプチャして映しました。

完成(でも失敗)

動くところまでは出来ました。しかし、後述する原因で30分程度で停止してしまいました。

Youtubeの公式サイトでアーカイブ動画を見ると生放送時のチャットの様子が見えます。

youtu.be

失敗した原因

YoutubeDataAPIで1日に叩ける上限が10,000回?なのに対して、0.5秒おきに叩いていたのですぐに使い切ってしまったようです。

これでは24時間放送を続けるというのは難しいので、何か対策を考えないといけないです。

対策案

メモ程度に今の考えを載せておきます。

案1:コメビュとうまく連携出来ないかを考える

vip-jikkyo.net

案2:seleniumを使う

チャット部分の変化を監視し続けてコメントを取り出せないか。
技術的には可能そうなので、これから進めてみるのが無難か。

案3:Youtube以外でコメントを受け付ける

そもそもコメントの受付はYoutubeの外で行うようにすれば良いのでは?と言う考え。

でも、出来ればYoutube内で完結させたいため最終手段としたい。

次回

引き続きコメント取得をして反応する部分を作ります。 → 作りました

blog.takuya-andou.com

 

 

24時間生放送をし続ける人工知能youtuberを作る その1

こんにちは、あんどう(@t_andou)です。

少し前ですが、こんなニュースが話題になっていました。
詳細は深追いしていませんが、ニュースキャスターの人物モデルをコンピューターで再現して音声も読み上げさせているようです。

japan.cnet.com

また、政治やエロ方面で問題になっていましたが、deepfakesと言う「顔をすごくリアルに入れ替えることができる技術」も話題になっています。
japanese.engadget.com

去年は3Dモデルを使った『Vtuber』が流行りましたが、今後はこう言ったリアルなアバター?がいろんな方面で出てくるんでしょうね。

と言うことで、今回からその基礎になるようなものを作ってみたいと思います。*1
とは言え、ただリアルな見た目・リアルな声のYoutuberだとしたら、実写で良いのでは?と突っ込まれそうですので、 生身だと出来ないこと…具体的には『24時間生放送をする人工知能Youtuber』を最初の完成形として目指したいと思います。

完成形のイメージ

すごくザックリとこんなイメージです

・視聴者からコメントが来たらそれに対して返答をする
・表情や声は出来るだけ実際の人物っぽく
・BGMも人工知能で生成したものを使う
・24時間放送し続ける

将来的にはニュースとかお笑いなどの要素を取り入れていけたら面白いかもしれないですが、そこまで先のことは考えずにやってみます 

どうやって作るのか

こんな流れでイメージしていますが、壁にぶつかった場合はやり方を変えて行くこともあると思います。

その辺りは臨機応変に進めていきますので、ご了承ください。

次回

・YoutubeLiveで投稿されたコメントを取得
・コメントに対して反応をするものを組み込む
・画面上に表示するようにする

この辺りまで作っていきたいと思います

→書きました 

blog.takuya-andou.com

 

チャンネル登録お願いします

このチャンネルで放送しますので、良ければチャンネル登録をよろしくお願いいたします。

www.youtube.com

*1:出来るかどうかは分からないですが、とりあえず挑戦していくスタンス

サービスを作りたい人のための「あんどう開発室(仮)」を作りました

こんにちは、あんどう(@t_andou)です。

この度、サービスを自分で作りたい人のためのコミュニティあんどう開発室(仮)」を作りましたのでご紹介させてください。(参加無料です)

この記事の内容

  • あんどう開発室(仮)を作りました
  • 概要
    • どんなもの?
    • 何をするの?
    • 入るのに条件はある?
    • 向いてる人
  • 参加するには
  • 最後に
続きを読む