投稿

CSS animationをChatGPTとGoogle Bardに作らせてみる

イメージ
ベトナム語文法変換スクリプトに生成イラストを付与するようになってから、自分のiPhone13 miniの縦画面だとセリフが小さくて読みづらいなと感じていた。 なので、タップすると画面いっぱいに拡大する機能を実装しようと思った。 それで検索して調べると色々な手法があるようだった。 普通、プログラムの世界では車輪の再発明はしないという原則があり、既に存在しているプログラムがあるなら一から作らずに使わせてもらい、手間を減らすのが一般的である。 しかし、JavascriptもCSSも再学習中の私にとっては練習の一環なので既存のスクリプトを流用はせず、ロジックを確認して自分で実装するのが良いと判断して実装。 CSSのclassで拡大時のclass、zoomを別途用意してJavascriptでclassを書き換える。 この方針として実装。ちょっと悩んだところもあったが無事実装完了。 タップして拡大するだけでなく、再度タップすると縮小する処理も実装完了。 ここまで来て、拡大、縮小時にアニメーションで徐々に拡大、徐々に縮小するようにしたいと思った。 またちょっと調べるとCSSのアニメーション処理にはtransitionとanimationがあるらしい事がわかる。 どちらで実装するのが良いかはちょっとわからなかった。 そこでふと思った。ChatGPTに聞いてみようと。      以下のCSS class right_sideからzoomにjavascriptで切り替えます その際にcss animationで50%から100%に1秒で変化させたいです css animationを追加してほしい      .right_side{ width:50%; float:right;       }       .zoom{ width:100%; float:right;       } するとChatGPTからは以下の返答 ChatGPT        .right_side{ width:50%; float:right;   tra...

生成AIはアシスタントみたいなもの

イメージ
 自作のスクリプトにイラストを付け加えてみると華やかでわかりやすいと感じたので過去のスクリプトにもイラストを付与してみることにした。 「ベトナム語文法変換09」は「〜しないで」なのでお母さんが男の子に「お菓子を食べないで」という感じの絵にする事にした。 Niji journeyに"お母さんが子供に命令している 子供はお菓子を食べようとしている --niji 5 --style cute" と命令文を与える するとだいぶ想定外の絵が出力された その後、似たような命令文をちょっとずつ変えながら5回出力させてみたが、どれも希望とだいぶ違う絵が出力されていた。 6回失敗したらさすがに命令文を変えなければならないなと思い変更 「お菓子」は抽象的すぎて結果にバラ付きが出ると思い「クッキー」と具体的な名称に変更、さらに食べようとしているも抽象的な感じなので「手を伸ばしている」に変更 命令文"男の子はクッキーに手を伸ばしている お母さんは食べないでと言っている" お、だいぶイメージに近づいてきた やはり具体的な命令が良いようだ 手を伸ばすで子供の描画が良くなってきた。 お母さんが微妙だったり居なかったりしているのでお母さんの部分をもっと具体的にしよう。 命令文"男の子クッキーに手を伸ばしている お母さん後ろに立って話しかけている" お、右上が狙ったイメージにかなり近い! これで良いんじゃないかと思ったけど、男の子の指が4本だった 右上をベースにバリエーションを作成してみる ・・・どれも指が6本だったり4本だったり不自然 この後4回繰り返したのだけど、どれも駄目だった どうもNiji journeyもMidjourneyも指が苦手らしい。 正解に近づいているのに指がどうにも不自然である これだけ繰り返して駄目だとこれ以上繰り返しても駄目だろう。 と、言うことで私は生成を諦めた。 まぁ、私は絵を描けないわけではないので、自分の手で描き変えてしまう方向に方針転換した。 iPad proでMedibang Paintを起動し、まともそうだけど子供の左手が4本指の画像を読み込ませる 上位レイヤーを追加してApplePencilでちゃちゃっと指の位置をずらし指を5本に書き換えた。 するとこの様に子供の指は5本になりイラストとして掲載可...

画像生成AIを試す Midjourney Niji journey DALL-E

イメージ
 最近は生成AIの話題が絶えない。 以前からChatGPTやGoogle Bardをちょこちょこ試してはいたが本格的に実用する段階には至っていなかった。 しかしそろそろ実用出来るレベルになっておいたほうが良いだろうと思い、色々と調査しつつ検証を進めることとした。 ChatGPTはプラグインによる強化が可能となったのでこれを機にプラグインを利用できるChatGPT-4(plus)を契約して試してみることにした。 そこで見つけたプラグイン、Photorealisticを使ってみた。 これはChatGPTに簡単な日本語の命令をするだけで画像生成AIであるMidjourneyに送る英語の命令文を作ってくれるものであった。 たが、ちょっと思ったほど適切な画像は生成されなかった。 ほぼ同じタイミングでChatGPTと同じOpneAIの画像生成サービスDALL-Eも試した。 DALL-Eへの命令もChatGPT(プラグイン無し)に依頼してみた 「DALL-Eに以下の絵を描かせてほしい  洋風の椅子に座って向かい合う二人の可愛らしい少女  二人の間には丸いテーブル  テーブルの上にはオセロ  部屋は明るく外から光が刺している」 結果はこれ "Please generate an image of two adorable young girls sitting on a Western-style chair, facing each other. There should be a round table between them, and on the table, there should be a game of Othello. The room should be bright with sunlight streaming in from the outside." それでDALL-Eが作った画像はこれ まぁ、かなり想定外の画像が生成されている その上、とにかくディテールが荒く見るに堪えない。 では、どうせなのでその命令文でMidjourneyとNiji journeyにも生成させてみた。 Midjourney ん! だいぶいい! 丸いテーブルも再現されているし絵として観られるレベル 次はniji journey おおっ! アニメ絵に特化したnij...

学習用ベトナム語文法変換スクリプト 04〜08

 毎週Beba先生から教えてもらう文法を忘れないために教えてもらった文法を一つずつシンプルなスクリプトを作成。 ベトナム語文法変換04▪否定の文末詞"đâu" 主語 + không + 動詞 + 目的語 + đâu.~ではないよ!/~じゃないよ! ベトナム語文法変換05▪文末詞"rồi mà" 主語+動詞+目的語+ rồi mà! 〜したじゃん!〜したのに!〜したってば! 百人一首 表示するだけ ベトナム語文法変換06▪về (1)主語+動詞+về + 名詞. ~について、関して、 (2)主語+動詞+目的語+ về+名詞 ~へ(戻るイメージ) ベトナム語文法変換07▪hầu hết/như (肯定) Hầu hết/như  +主語 + ( đều )+動詞+目的語.ほとんどの~  共に (否定)主語 +  hầu như không  +動詞+目的語.ほとんど~ない 早押し百人一首 作成中 ベトナム語 文法変換08▪文末詞" ha/nha " ~  ha!  ~ね!~だね! 共感してほしいときに使う ~  nha!  ~ね! (相手に言っておこう、相手に認識させとこう) 特に説明するまでもないかな。 百人一首関連はプログラムの練習として作っているもの。 ベトナム語変換スクリプトもプログラムの練習を兼ねつつベトナム語の構造を理解するという趣旨。 最近習った文法から作っていて、番号は作った順で習った順じゃないので、これから過去に習った文法を作っていく予定。 Javascriptを練習中という事で、特別な事は何一つしていないのでプログラムの説明をする必要はないと思う。 基本的に実用性は無く、あくまで学習用で文法を確認するプログラムとなっている。 08 文末詞 ha! / nha! については様々な場面で使われるのでデフォルトを全て「無し」として自由に文末詞と組み合わせることが出来るようにした。 興味があったら自由に使っていただきたい。

学習用ベトナム語文法変換スクリプト02,03 hay không? /hay chưa? để làm gì?

イメージ
 前回、試しに日本語からベトナム語に変換する単純なプログラムを作ってみた。 ほとんど反応はなかったが、 Beba先生 は評価してくれたので気を良くしてさらに2つ作ってみた。 ベトナム語文法変換02 hay không? / hay chưa? 〜しますか? / 〜もうしましたか? ベトナム語文法変換03 主語+動詞+目的語+ để làm gì? 何のために(何をするために)〜? どちらも前回同様に一つの文法にしか対応していない。 また、組み合わせを間違えると変なベトナム語が生成される。(ワイン、遊ぶ とか、テレビゲーム、食べる など) あくまでベトナム語文法学習用プログラムなので実用性を求めてはいない。 ベトナム語文法変換02 hay không? / hay chưa? 〜しますか? / 〜もうしましたか? Beba先生に教えてもらった文法の通りに 「〜しますか/それともしませんか hay không?」と「もう〜しましたか?/それともまだですか? hay chưa」の文に対応している。 二重動詞の望むを選ぶとmuốnが追加されて「〜したいですか/それともしたくないですか?」に変化する。 望むを選んだ状態で「もう〜しましたか」 のhay chưaを選んでしまうと変な感じになる。 ベトナム語文法変換03 主語+動詞+目的語+ để làm gì? 何のために(何をするために)〜? これは〜何のために để làm gì の質問と、それに対する返答を両方選択して質問と返答を自動生成する様に作ってみた。 目的語と動詞の組み合わせが変だと当然変なベトナム語が生成されるし、質問と返答の内容がバラバラだと変な会話になる。 「石鹸」「取る」 「顔」「洗う」 なら hỏi Bạn lấy xà bông để làm gì? trả lời Mình lấy xà bông để rửa mặt. となる。 ちなみに 「イタリア」「来る」 「お金」「洗う」 だと hỏi Bạn đến Ý để làm gì? trả lời Mình đến Ý để rửa tiền. と、rửa tiền は資金洗浄なのでちょっと物騒な感じになる。 まとめ 前回同様、教えてもらった文法を頭に叩き込むために文法の仕組みをスクリプトで作ってみた。 Javascriptの練習でもあるの...

日本語からベトナム語に変換する【なんてことない】プログラムを作ってみた

イメージ
ちょっと前にJavascriptの再学習を始めて、学習のための練習用に干支を表示するプログラムを作った。始めはただ日本語で干支を表示していたが、そのままでは面白くないので日本とベトナムの干支を同時表示するように変更した。 日本とベトナムの干支は異なるので両方を同時に表示することで違いがはっきりわかるようにした。 それがこれ→    日越干支確認 Xác nhận can chi Việt và Nhật    15年以上前、数値を入力すると自動的にベトナム語の読みを表示する関数を作ったことがあった。 当時、ベトナム語の数字の読みを練習していて自動で表示されたら便利じゃないかと思って作ったのだが、動作するようになった頃には仕組みを理解していて関数を使わなくとも読めるようになっていた。 これに気を良くした私は普通の文法もプログラムで組めないかと考えたが、数値ほど単純ではなく、作ることは出来なかった。 そして今、毎週Beba先生から教えてもらう新しい構文を一つずつ日本語からベトナム語に変換するプログラムを作ったらどうだろうと思った。 手始めに作ったのがこれ →  ベトナム語 文法変換01 主語、動詞、目的語などを選ぶとそれに合わせたベトナム語を表示するように組んでみた。 ポイントは一つの文法にしか対応していないこと。 だから状況判断的な部分はほとんどなくてシンプルにその文法を勉強するだけの内容になっている。 このようにして、一つの文法を一つずつプログラムを組めば頭の中に日本語とベトナム語の文法が叩き込まれていくのじゃないかということを期待している。 つまりこのプログラムは文法の違いを確認するためのものというよりは、作っている過程で作った私が文法を理解するためのものであり、出来上がった時点で目的は達成されている(はず) なので、プログラム自体には大した意味はない気もする。 けど、せっかく作ったので公開しておこうと思う。 興味があれば自由に使っていただきたい。

ChatGPTにベトナム語を翻訳させてみた

 Máy bay của chúng ta sẽ đến Sài Gòn lúc 8 giờ tối. みんなの自動翻訳(汎用) 私たちの飛行機は午後8時にサイゴンに到着します。 みんなの自動翻訳(対話) 私たちの飛行機は午後八時にサイゴンに着きます。 Google翻訳 私たちの飛行機は午後8時にサイゴンに到着します。 ChatGPT 私たちの飛行機は夜8時にサイゴンに到着します。 どれもほとんど同じだがChatGPTのみ「夜8時」という比較的自然な表現を使っている。 Mình đưa cô số điện thoại cầm tay của tôi cho chắc ăn. みんなの自動翻訳(汎用) 念のため、携帯電話の番号をお伝えします。 みんなの自動翻訳(対話) 念のため携帯の番号を教えておきます。 Google翻訳 私は念のため彼女に私の携帯電話番号を教えた. ChatGPT 念のため、私の携帯電話番号を彼女に渡しました。 これはChatGPTが「渡しました」で不自然。Google翻訳は主語をそのまま翻訳してしまっているので日本語らしくない。 Hôm qua em ra khỏi nhà lúc mấy giờ? みんなの自動翻訳(汎用) 昨日は何時に家を出ましたか? みんなの自動翻訳(対話) 昨日は何時に家を出ましたか? Google翻訳 あなたは昨日何時に家を出ましたか。 ChatGPT 昨日、何時にあなたは家を出ましたか? どれも普通に意味はわかるけどみんなの自動翻訳がより良いかな。 Mỗi ngày anh cố gắng học tiếng Anh. みんなの自動翻訳(汎用) 彼は毎日英語を学ぼうと努力している。 みんなの自動翻訳(対話) 彼は毎日英語の勉強に励んでいます。 Google翻訳 彼は毎日英語を学ぼうとしています。 ChatGPT 彼は毎日英語を勉強しようと努めています。 anh は私なのでどれも彼になっていて間違っている。 しかし、anhをemに変えるとどれも私になるのでanhの機械学習は難しいのかもしれない。英語のtiếng Anhも紛らわしいし。 会話ならどうなるか試してみる Em Linh nói "Em muốn học tiếng Pháp nữa" Anh Dũng nói "Sao em l...