このページの本文へ

新清士の「メタバース・プレゼンス」 第160回

寝不足になるほど面白い ローカルAIと音声合成をつないだら、キャラが普通にしゃべり始めた

2026年06月08日 07時00分更新

文● 新清士

  • この記事をはてなブックマークに追加
  • 本文印刷

Codexによる実装の手順

 チャットアプリ「Rinon Voice Lab」の開発は、例により、OpenAIのAIエージェント「Codex」を使いながら進めていきました。キャラクターの名前や性格設定も、Codexに検討させ、キャラクター名を「リノン」とし、そこからアプリ名も決めました。

 思いついた機能のアイデアを、Codexに投げて実装方法を検討させ、様々な工夫を追加していきました。Gemma 4はLLMアプリの「LM Studio」に読み込み、サーバーモードで立ち上げておき、Irodori-TTSも立ち上げておきます。そうしておくと、チャットアプリから必要に応じてアクセスできるようになります。

 まず、LM Studioでロールプレイをさせる場合にはシステムプロンプトにキャラクターの概要を入力すると、基本となるAI人格の性格を作り出すことができます。それをアプリ側から制御できるようにしました。生成する文章はセリフとして出力する必要があるため、必ずセリフにするよう指定をプロンプトにも入れています。

 音声は、Irodori-TTS-600Mを使って作成した気に入った声をリファレンス音声として指定しています。また、生成された文章はIrodori-TTSに送られ、音声ファイルを生成させるのですが、長文が出力された場合は、破綻する可能性があります。そのため、一文ごとに分割して送信し、英語が出た場合には、カタカナに変換するようにしています。

 そして、テキストの内容を受けて、適切な感情や状況に対応する絵文字を判定し、文章ごとに絵文字を付与するように指示しました。そうすることで、キャラクターの語り口に、微妙な感情表現が乗ります。また、Irodori-TTSのキャプション設定もアプリ側でできるようにしました。

 また、キャラクターの立ち絵画像を用意し、音に合わせて微妙に振動するようにしました。1種類だけの立ち絵画像では物足りなかったため、Codexに指示して、「GPT Image 2.0」を使って差分画像を作らせました。これも絵文字に対応させて表情を作っています。特に、呼び出される回数が多い表情については5種類作成し、それらをランダムで呼び出すことで、ワンパターンにならないように工夫しました。全体で48枚の表情差分を作っています。

 こうしたキャラクターの表情差分を用意するのは、AI画像生成で一貫性が維持できない時期には、準備するのに手間がかかったものですが、現在はCodexを使えば、簡単に作成することができます。また、1枚ずつ多数の画像を作ると非常に時間がかかるため、2×2で生成し、それを分割して使用することで、作成にかかる時間を短くすることができます。

Codexで実際に表情差分を作成している様子

 担当編集に見せたところ、「検索機能は入らないですかね?」と言われたので、Codexに実装させてみました。

 Gemma 4にはブラウザ検索機能がないため、どう実装してくるのかと思っていたら、スクリプトを使った外付け方式を採用してきました。アプリ側が内容からキーワードになりそうなものを検索エンジンの「DuckDuckGo Lite」で検索し、検索結果3件ほどをテキスト化、その内容をGemma 4に送るプロンプトへ混ぜて送信することで、Gemma 4があたかも自分で検索したかのような発言を返してくる仕組みです。

 こうして、ローカルPC上で動かすAIとのチャットアプリの完成度が上がっていきました。

「Rinon Voice Lab」で「ゴールデンカムイ」について検索させた結果

△その実際に動作している様子

カテゴリートップへ

本記事はアフィリエイトプログラムによる収益を得ている場合があります

この連載の記事
ピックアップ