音楽グループジェネレータv1をchatGPTで作った

技術関連

またいい動画が出ましたね。彼は本当に面白い人だ!!!

さっそく真似してやってみました。彼がラーメンを作ったように音楽ユニットを作る「音楽グループジェネレータv1」です。GPT3.5でも動くように、そして無料版でも動くように、ちょっと工夫しました。

チャットボットで手軽に確認できます!ぜひやってみてね!

音楽グループジェネレータ - Chatify
ミュージック・グループ・ジェネレーターの定義は以下の通りです 入力:メンバーの特徴を示す文字列。 初期値: メンバーの所属する国、経済状態、ファッションを示す文字列。特に指定がない場合はなし。 オプションの引数: process show=Trueの場合、生成の過程を記述する。 初期化: オブジェクトジェネレータは...

あと、勢いで、LineのBOTも作ってみました。

日本語化のプロセスを組み込んだので、ちょっと精度は落ちちゃうんですが、今後修正していく予定です。OpenAI純正のchatGPTで、英語でやると高精度でした。 -> 今は少し改良して実装してます!(v1.1

まずプロンプトで仕様を覚えさせる

「こんなバンド居たらいいな」とか「新しいバンドを作って活動したいな」とか、「実在するバンドのパラレルワールドが知りたい」とか、シミュレーションできるようなマシンをchatGPT上で動かしてみる「音楽グループジェネレータ」です。

下記をまず入力に入れて、覚えさせます。

The Music Group Generator is defined below. Remember.


Input: a string indicating the characteristics of the members.
Initial: A string indicating the country to which the member belongs, the economic state, and the fashion. None if not otherwise specified.
Optional arguments: If process show=True, the process of generation is described

Initialization: The object generator is initialized in the constructor, which sets initial values for class variables and prepares the object for use.

Main process:.
Basically, private methods are used extensively, and processing is implemented in such a way that it is not visible to the outside world.
Private methods are not accessible from the outside and are used only for internal processing.
Object generators can store state information in class variables during public method calls.
Use class variables as specified or rewrite them to appropriate values to avoid errors as appropriate.

Output:
A sentence that briefly describes the music group.
5 sentences describing the 5 songs that the music group produces.
Sentences describing what they are good at and what they are not so good at.
Sentences showing their success, the troubles they encountered, and how they disbanded.

入力に、バンドメンバーの特徴を記載。初期値に活動する国、経済状況、流行を指定可能です。

気を付けたところですが、無料版だと出力が途中で止まったりしますし、余計なことを途中でしたりするので、ネガティブプロンプトを指定する要領で、「Optional arguments: If process show=True, the process of generation is described」を仕様に入れました。またメソッドをプライベートにしてという文言を加えることで、表に出てくる情報も制限しました。(もしかしたらここを記述しなくてもうまくいくかもしれませんが念のため)

出力にはそのバンドの特徴を示す文章と、彼らが作りそうな5曲とその説明、成功体験、長所短所、そして解散理由です。

やってみましょう。

入力例

うまくいくと、仕様を改めて書き始めるか、「はいわかりました」とだけシンプルに返すか、もしくはツラツラとコードらしきものを出力するなどすると思います。この辺は自然言語なので、あいまいですね。

実在するバンドを書いてみてもいいでしょうし、あったらいいなでも良いのでバンドメンバーの特徴をInputにします。注意点は、文字列の羅列だと、「できません」と怒られました。環境にもよると思いますが、文章で書くといいようです。(エラーが発生しないようにうまくやれ、と書けばよかったかもしれないですね。version上げるときに入れ込みます。)

下記が英語での入力です。

入力

Now, move the music group generator to show the output according to the following input.

Input:
- Guitar: loves punk and always wears a leather jacket. Likes to drink and plays a little badly.
- Bass: Very good at playing, well versed in difficult songs like jazz.
- Drummer: Loves rock 'n' roll and sings well. He is ethnically minded and aims to return to nature.
- Piano: He is anti-capitalist and often publishes his arguments on social networking sites, but his lyrics are very nice. And he sings well.

Initial state:
America, discriminatory liberation movement, Singularity

入力(翻訳したもの)

さて、下記の入力に合わせて、音楽グループジェネレータを動かして出力を見せてください。

入力:
- ギター:パンクが大好きで、いつも革ジャンを着ている。酒が好きで演奏は少し下手
- べース:ジャズのような難しい曲に精通していてとても演奏がうまい。
- ドラム:ロックンロールが大好きで、歌がうまいことも魅力。民族的思想で、自然回帰を目指す。
- ピアノ:反資本主義で、SNSでよく議論を公開するが、歌詞がとても素敵。そして歌がうまい

初期状態:
アメリカ、差別解放運動、シンギュラリティ

出力結果

個人的に悪くないと思いましたし、かなりわくわくできました。

出力

Music Group: The Liberation Four

Description: A punk rock band with a strong anti-establishment message.

Songs:

  1. “Revolution Now”: A high-energy song with pounding drums and scorching guitar riffs, calling for the overthrow of the oppressive capitalist system.
  2. “Fight for Your Rights”: A politically charged anthem with driving bass lines and soaring vocals, urging listeners to stand up for their beliefs and fight for justice.
  3. “Anarchy in America”: A raucous punk-rock track with a catchy chorus and scathing lyrics that critique the corrupt political system and call for a radical change.
  4. “Take Back the Streets”: A fast-paced song with pounding drums and aggressive guitar riffs, rallying people to take to the streets and demand their rights.
  5. “Singularity Blues”: A slower, more introspective track with haunting piano and soulful vocals, exploring the isolation and alienation of living in a world increasingly dominated by technology.

Strengths:

  • High-energy punk rock with a strong anti-establishment message
  • Tight musicianship, with the bass player providing a solid backbone and the drummer driving the rhythm forward
  • Lyrics that speak to the struggles and frustrations of the marginalized and oppressed

Weaknesses:

  • The guitar player’s tendency to drink and play sloppily can sometimes detract from the overall sound
  • The piano player’s tendency to get bogged down in political debates on social media can sometimes distract from the music

Successes:

  • The band gains a following among young people who are frustrated with the status quo and looking for a voice to express their anger and discontent
  • They play shows at local bars and clubs, building up a fanbase and honing their sound

Troubles:

  • The band struggles to find mainstream success due to their uncompromising political message and confrontational style
  • They face opposition from authorities and conservative groups who see them as a threat to the established order

Disbandment:

  • The band eventually falls apart due to internal conflicts over creative direction and personal differences
  • The members go on to pursue other projects, but they remain committed to the cause of social justice and continue to use their art to fight against oppression and inequality.

出力(翻訳したもの)

出力する:

音楽グループ: ザ・リベレーション・フォー

説明 反体制的なメッセージを強く打ち出すパンクロックバンド。

曲目は

"Revolution Now"(レボリューション・ナウ): 叩きつけるドラムと灼熱のギターリフで、圧政的な資本主義体制の打倒を訴えるハイエナジーな曲です。
"ファイト・フォー・ユア・ライツ": 自分の信念を貫き、正義のために闘うことをリスナーに呼びかける。
"アナーキー・イン・アメリカ": キャッチーなコーラスと痛烈な歌詞で、腐敗した政治システムを批判し、急進的な変化を求める、騒々しいパンク・ロック・トラックである。
"Take Back the Streets"(テイクバック・ザ・ストリート): 激しいドラムとアグレッシブなギターリフが印象的な、テンポの速い曲で、ストリートに出て自分たちの権利を要求するよう人々に呼びかけます。
"Singularity Blues"(シンギュラリティ・ブルース): テクノロジーに支配されつつある世界で生きることの孤独と疎外感を表現した、心に響くピアノとソウルフルなボーカルによるスローで内省的なトラック。


・彼らの強み
反体制の強いメッセージを持つハイエナジーなパンクロック。
ベースがしっかりとしたバックボーンを作り、ドラマーがリズムを刻むというタイトな音楽性
疎外され、抑圧された人々の闘争や不満を語る歌詞



・彼らの弱み
ギタリストの酒癖が悪く、演奏が乱れることがある。
ピアノ奏者は、ソーシャルメディア上の政治的な議論に巻き込まれる傾向があり、時に音楽から目をそらすことがある

・彼らの成功体験

現状に不満を持ち、怒りや不満を表現する声を求めている若者を中心に支持を得る。
地元のバーやクラブでライブを行い、ファンを増やしながら、自分たちのサウンドに磨きをかけていく

・彼らが出会うトラブル
妥協のない政治的メッセージと対立的なスタイルにより、バンドはメインストリームで成功を収めるのに苦労する。
彼らは、既成の秩序を脅かす存在とみなす当局や保守派からの反対に遭っている

・解散の理由
創作の方向性をめぐる内部対立や個人的な相違により、最終的にバンドは崩壊する
メンバーは他のプロジェクトに進みますが、社会正義の大義にこだわり続け、抑圧や不平等と戦うためにアートを使い続けます。

おまけで、このブログのアイキャッチ(一番上の画像)は「The Liberation Four」の画像を出力してみたものです。

みんな革ジャン着ちゃうし、4人以上いますけど、まあいいでしょう。やりたければOpenposeで作りこめます。ちょっとMars VoltaとかUB40みたいで好きです。

今後も触って、Updateして遊んでいきたいと思います。

ジェネレータに関しては以上で、ココ以降は、動画の感想とか、自分なりの理解を示していきます。

「チューリングマシンの上でチューリングマシンが実装できるかを考える」

動画内で話されていた言葉です。自分なりに咀嚼してみましたので、図で表現してみます。

通常のチャットAI使用方法は、「〇〇みたいな、新しいメニュー考えて」とかで実行していくと思います。非常に対話的です。

一方で、「チューリングマシンの上でチューリングマシンが実装できるか」ということは下記のような感じだと思います。ある程度chatAI自体にあいまいさがあるため、何が出てくるかわからない。けれども世界を限定してあげると、狙いも定まりますよね?

寄り道をさせないように、機能を限定するような設計が、ちょっと難しいけれど頑張り所なんだろうなと思います。

「計算する人間それ自体を実行可能なマシンって何だろう」、これは「多重化冗長化の必然」にもつながる理論だと思ったし、デジタルヒューマン探求は間違っていなさそうだなと思いました。

「エラーを丸めてくださいっていう」 表現

ochiaiさん
ochiaiさん

具体的で数量的で定数的で解析的に求まるもの 言語的である意味抽象的で意味が不完全 なもしくは意味がいかようにも取れるようなオブジェクトというのが合わさった時にその間の相互作用っていうの、「エラーを丸めてくださいっていう」 表現で 丸めて相互作用の関係性を持って中からパラメータを抜き出して相互に値を交換するってことができるこれは素晴らしい プログラムの書き方が変わったってことなんですよ

これ自分なりにアナロジーしたらこうなのかと思いました。

酒を挟んで、エンジニアと哲学者が語り合う飲み会

事事無礙?ムズカシイコトバワカラナイ….. 「酒を挟んで、エンジニアと哲学者が語り合う飲み会」と考えたらても問題ないのかなと思いましたがこの辺は考え中です。

「エラーを丸めてくださいっていう」 表現をお酒だとすると、強力なアイスブレークになるし、ざっくばらんにもなっていく。

そんな中で、自分のことを話して、相手の話を聞いていくエンジニアと哲学者は、素敵な一日になる。

chatGPTが登場するまでは、やろうと思ったらphpとかでヌルヌルヌルヌル書いて朝になっても終わらなかったことが、もっと早く終わる。

理系と文系って何かとけんかするし、話は合わないし大変だけど飲み会って楽しいよねーって結構当たり前だけど、なかなかできないし実現出来たらかなり強い関係性になるよねと。

この辺もまだ考え中、咀嚼中なのでまた分かったことがあったら文字にしたいと思います。

以上。。。

↓関連記事↓

コメント

タイトルとURLをコピーしました