
糸電話にAIを搭載させて伝言ゲームさせてみた

作ったもの
数珠上に繋げた糸電話のそれぞれのコップ中に、小さなAI(自作)を設置し、
伝言ゲームのように言葉が改変・伝播されていく作品を制作しました。
きっかけ
昨今のAIブームによって、弊社でもAIを用いた制作・開発は多くなってきました。
そんな中で、毎年ゴールデンウィークに青山で開催されるSICF というアートの展示会に弊社メンバーSheenaと共に作品プロポーザルを応募し、2人とも採択されたので、メディアアート作品として制作しました。
作品コンセプト
糸電話は、紙コップの間に糸を通し両端のコップに話しかけることで、遠くに声を伝 える遊具だ。
本作品では、数珠状に繋げられた糸電話のそれぞれのコップの中に小さなAIが設置されている。 現実のインターネットから拾った言葉をスタート地点とし、各コップは伝言ゲームの ように言葉をリレーする。それぞれのコップは音声を受け取ると、内蔵AIが独自の解 釈を加えて新しいメッセージを作り、次のコップへ送り出す。
たった520kBのメモリしか持たない無脳なAIを、私はあえて”人”と呼びたい。
技術詳細
部品等
- マイコン × 9個
- オーディオアンプモジュール × 9個
- 小型OLEDディスプレイ × 9個
- 小型スピーカー × 9個
- ユニバーサル基板 × 9枚
- ワイヤー × 3本
- モバイルバッテリー × 9台
- コップ × 9個
- 3Dプリント
ESP32とは

コップの中には、それぞれESP32という小型で廉価(2000-3000円程度)のマイコンが搭載されています。
自作AIについて
課題
今回、作品コンセプトの中の「コップの中に存在するAIが受け取った言葉を変える」という要件をどう満たすかがポイントとなりました。
昨今、ChatGPT のようなLLM(大規模言語モデル)は昨今巷で沢山開発されており、今回使用したESP32のようなマイコン上でも動作する小型のモデルがないかどうか調べたのですが、特に日本語を対象にした場合、必要となるスペックが大きすぎるため、直接的な「言葉→言葉」の変換を行うことは諦めました(あと2年ぐらいしたらできる日が来るかもしれません)。
実際のところ、ESP32はネットワーク通信をすることができるため、「言葉→言葉」の変換をクラウド上で行い、現場ではあくまで音の再生とディスプレイの表示のみを行うようにすることは可能です。
ただ、それでは一つ一つのコップ自身が計算を行っているわけではないので、コンセプトが嘘になってしまうので、あくまでコップ(ESP32)自身が言葉の置換を行うような構成を考えました。
「言葉」を「ベクトル」に変換する
ESP32にLLMを載せることは難しいため、「言葉をベクトルに変換し、ベクトルの計算で言葉を言い換える」ことを実現しました。
「言葉をベクトルに変換」というと難しそうに聞こえますが、実は身近な例で考えると分かりやすいものです。
例えば、友達を紹介するとき「背が高くて、優しくて、面白い人」と特徴で表現しますよね。
ベクトル化も同じような考え方で、単語の意味を複数の数字で表現します。
具体的には、「りんご」という単語を「果物らしさ:5、赤さ:4、甘さ:3、丸さ:2」のような数字の組み合わせ(これがベクトルです)で表現するのです。
似た意味の単語同士(例:「りんご」と「みかん」)は似たような数字になり、全く違う意味の単語同士(例:「りんご」と「自動車」)は全然違う数字になります。

(作図AI: Manus/ChatGPT)
このようにして、コンピュータは数字の計算を通じて、人間のように単語の意味を理解し、「この単語とあの単語は似ている」「この単語は全然違う意味だ」といった判断ができるようになるのです。
本作品では具体的には、以下のステップ(※簡略化しています)で文章の変換を行います。
- 文章を単語に分割(例: 「私はパンを食べます」 → 「私」「は」「パン」「を」「食べます」)
- 名詞のみを抽出(例: 「私」「は」「パン」「を」「食べます」 → 「私」「パン」)
- 最初の名詞のみを選択(例: 「私」「パン」 → 「私」)
- 選択した単語をベクトルに変換(例: 「私」 → [2.3, 1.4, 3.13, 5.46...])
- ベクトルにランダムなベクトルを足し算(例: [2.3, 1.4, 3.13, 5.46...] + 1.0 → [3.3, 2.4, 4.13, 6.46...])
- 計算後のベクトルを単語に復元(例: [3.3, 2.4, 4.13, 6.46...] → 「俺」)
- 変換した単語「俺」で元の文章中の元単語「私」を置換(例: 「私はパンを食べます」→「俺はパンを食べます」)
シーケンス

作品ソースコード
本作品のために書いたソースコードは全てGitHub上にアップロードしてあります。