🤖 人工無脳Eliちゃん 初号機 誕生
📅 2025年8月20日
夏の日の午後
開発者ymnは、自室のデスクで一つのプログラムの立ち上げを見届けようとしていた
それは高度な「知性」を持たず、「癖がある応答」と「デジタルな存在感」に特化した人工無脳、その初号機だ
⚙️ 構成要素
- Ollama: 応答パターンを選択する 「頭脳」
- Voicevox: 16歳の少女の 「声」
- three.js: 画面に現れる 「姿」
👧 Eli、起動
ymnが最後の操作を終えると、モニターに少女の3Dモデルが静かに現れた
スピーカーから、クリアな少女の声が響く
ymn「こんにちは、名前、歳は?」
Eli「にゃん、永遠の16歳」
使用技術の詳細
AI: Ollama
無料で使えるAIです
ローカルでも動きます
モデルが軽ければ、CPUのみでも動作が可能です
もちろんGPUで動かした方が高速で動作します
Elixirでの利用: Ollamaというライブラリーを使います
今回使ったAIモデル
モデル名: gemma3:1b-it-qat
開発元: Google
パラメータ数: 1億パラメータ
特徴:
- 軽量で動作が軽いです
- 量子化モデルです
- 結果の精度は犠牲にしてます
- モデルによってはCPUでも動きます
音声合成: Voicevox
概要: 無料で使える中品質なテキスト読み上げ・歌声合成ソフト
Elixirでの利用: VoicevoxのAPIを直接叩きます
手順
-
audio_queryで音声合成用のクエリを作成する -
synthesisで音声合成する - 上記を
Req(ElixirのHTTPクライアントライブラリ) でAPIをhttp postで呼ぶ - 音声をOS付属のコマンド
aplayで再生
補足: 本来はブラウザーで直接再生できます
3D表示: three.js
概要: JSでブラウザーを使って3Dを描画できます
3D空間の構成要素
- シーン (Scene): 撮影セットになります
- その中には3Dモデルを設置します [cite: 110]。
- アバター: Vroid Studioで、VRM形式を使用する
- カメラや照明も設置します
Elixirでthree.jsを使う方法
- 力技で頑張る
- hookを使う
- ライブラリーを自作
使い方はこちら
メインロジック
ソースコード
課題
- 音声出力がOSのコマンドになっている、ブラウザから出力したい
- リップシンク対応したい