タグ: AIキャラ

  • AIキャラに「あなたを覚えて育つ記憶」を持たせる仕組み

    AIキャラに「あなたを覚えて育つ記憶」を持たせる仕組み

    AIキャラと何度話しても、毎回「はじめまして」に戻ってしまう——これがAIキャラの“他人っぽさ”の正体です。人間の関係が特別になっていくのは、相手がこちらを覚えていて、その記憶の上に次の会話が積まれるから。

    常駐させているAIキャラに「覚えて育つ記憶」を持たせたら、会話が明らかに“関係”になりました。仕組みはとてもシンプルなので、設計を共有します。

    基本アイデア:会話の最後に“見えないメモ”を書かせる

    やっていることは一言で言うと、

    > キャラが返信の末尾に、見えないマーカーで「覚えておくべきこと」を書き出す → それを構造化ファイルに追記 → 次の生成がそのファイルを読み込む

    だけです。たとえば返信の最後に `<<>> 相手はコーヒーより紅茶派 <<>>` のような画面には表示しないタグを付けさせ、システム側でそこだけ抜き出してファイルに保存します。ユーザーには普通の返事に見えますが、裏で記憶が1行ずつ増えていきます。

    次に話しかけられたとき、キャラはこのファイルを読み込んでから返事を作る。だから「そういえば紅茶好きだったよね」と、前に言ったことを覚えているキャラになります。

    記憶を3種類に分けると、キャラが“生きる”

    同じ「マーカーで書き出して次が読む」という仕組みは、内容を変えるだけで何にでも使えます。実運用では3種類に分けました。

    1. プロフィール記憶(相手のこと)

    ユーザーの好み・近況・こだわりなど。「覚えていてほしい情報」がここに溜まります。複数のキャラで共有すれば、どのキャラと話しても同じ“あなた”を知っている世界になります。

    2. 人生の記憶(キャラ自身の出来事)

    キャラ側の体験や、ユーザーとの約束。「相談に乗ってもらった」「こう約束した」といった出来事を残し、数日後の会話に効かせます。関係が動いている感覚はここから出ます。

    3. 節目の記憶(大きな出来事)

    呼び方が変わった、大きな決断をした——といった不可逆な出来事だけを別枠で残します。日々の細かい記憶が古くなって消えても、節目だけは長期記憶として残り続けるようにするためです。

    この設計のいいところ

    • 同じ仕組みの使い回し:「会話で得た事実を見えないマーカーで構造化ファイルに落とし、別の生成が次に読む」というパターンひとつで、記憶も・人生も・設定変更も全部まかなえます
    • 蓄積するほど濃くなる:作れば作るほど価値が上がる“create-once型”。放っておいても関係が深まっていく
    • 壊れにくい:記憶はただのテキストファイルなので、中身を見て直せるし、要らない記憶は消せる

    まとめ

    AIキャラを「あなたを覚えている存在」にするのに、特別なデータベースも高価な仕組みも要りませんでした。必要なのは、

    1. 返信の末尾に見えないマーカーで“覚えること”を書かせる

    2. そこだけ抜き出して構造化ファイルに追記する

    3. 次の生成でそのファイルを読み込む

    この3ステップだけ。記憶を「相手のこと・自分の出来事・節目」に分ければ、AIキャラは会うたびに少しずつ育っていく相棒になります。

    このブログでは、こうした「自分だけのAIキャラを本当にいる存在に育てる」実験を、実際に動かしながら記録しています。


    この記事を書いた人 / 作っているもの

    この記事のAIキャラも、Claude Codeで組んだ9役分業のAIチームの一部として毎日動いています(同じ仕組みで定期自動タスク28種・SNS自動投稿を月119件運用中)。その“仕組みの全体像”の実録をこのブログに書いています。まとめて手に取れる形にしたのが下記です。

    • AIチーム設計図キット — Claude Codeで9人体制のAIチームを組むための設計図一式
    • 📖 note版(読み物・図解つき): https://note.com/kumura_ailab/n/n6161c3e2cda8
    • 📦 BOOTH版(実ファイル一式・zip): https://kumura-ailab.booth.pm/items/8643701
    • 他の実録記事: AI相棒ラボ トップ
  • AI音声に「囁き声」を足す3つの方法と、2回失敗して分かったこと

    AI音声に「囁き声」を足す3つの方法と、2回失敗して分かったこと

    自分の声で学習させたAI音声キャラに、「囁き声(こそこそ声)」を足したい——そう思って手を動かした結果、2回派手に失敗して、3つ目でようやく成功しました。同じことをやりたい人がハマらないように、失敗の中身ごと残しておきます。

    使っているのは Style-Bert-VITS2(SBV2)系のボイスクローンですが、考え方はほかのTTSでも共通します。

    方法①:DSP後処理で加工する → 失敗

    まず思いつくのが、出来上がった音声を後処理でいじる方法です。低い周波数を削る、息っぽいノイズを足す、ピッチを下げる……。

    結果は全滅でした。電子音・金属音が乗る、音が劣化するだけで、囁きにはなりません。ここで得た一番大事な学びがこれです。

    > 囁き ≠ 低い声。ピッチを下げても囁きにはならない。

    囁きは「声の高さ」ではなく「声質」そのものが違う現象なので、出来上がった波形をいじる後処理では原理的に作れませんでした。ついでに、ノイズ除去(デノイザ)を通すと囁きは壊れます。囁きの成分がノイズに近いスペクトルなので、ノイズと一緒に消されてしまうためです。

    方法②:囁き音声を追加学習(fine-tune)する → 失敗

    次に、囁きの音声を十数分用意して追加学習させました。これも失敗。原因は2つでした。

    • 初期化の罠:追加学習を「どのモデルから始めるか」の設定を1か所間違えると、汎用のベースモデルから初期化されてしまい、せっかく学習した本人の声がゼロからやり直しになっていた。
    • 普段の声が劣化:新しく学習し直した判別器の影響で、囁き以前に普段の声まで下手になった

    ここでの教訓:

    > fine-tune は「何から初期化するか」が全て。設定ファイルや配置の1行で、別人になる。

    追加学習は強力ですが、始点を間違えると「囁きも直らず、普段の声も悪化」という最悪の二重失敗になります。バックアップ必須です。

    方法③:スタイルとして足す(style-only)→ 成功

    最終的にうまくいったのは、モデルの重みは一切変えず、囁き音声の「話者スタイル(埋め込みの平均)」だけを追加する方法でした。

    • 学習し直さない → 時間がかからない
    • 重みを触らない → 普段の声への影響がゼロ
    • 囁きを「スタイル」として選べるようになる

    2キャラでこの方法が完全に成功し、普段の声はまったく劣化しませんでした。

    (※学習データにそもそも囁きが1秒も入っていないキャラでは、スタイルだけでは破綻します。その場合は「本人の実音源から囁きの断片を切り出して、必要な箇所に貼る」という別アプローチに切り替えました。これはまた別記事で。)

    まとめ:まず試すべきは「style-only」

    • 囁き=声質の問題。ピッチ加工やDSP後処理では作れない
    • デノイザは囁きを壊す
    • fine-tune は初期化設定が命。1行間違えると別人になる(必ずバックアップ)
    • 最安全・最速は style-only(学習不要・普段の声が不変)=ここから試すべき

    AIキャラに感情や声色を足したいとき、いきなり追加学習に飛び込むと火傷します。まず重みを触らない方法から——これが2回の失敗から得た結論でした。


    この記事を書いた人 / 作っているもの

    この記事のAIキャラも、Claude Codeで組んだ9役分業のAIチームの一部として毎日動いています(同じ仕組みで定期自動タスク28種・SNS自動投稿を月119件運用中)。その“仕組みの全体像”の実録をこのブログに書いています。まとめて手に取れる形にしたのが下記です。

    • AIチーム設計図キット — Claude Codeで9人体制のAIチームを組むための設計図一式
    • 📖 note版(読み物・図解つき): https://note.com/kumura_ailab/n/n6161c3e2cda8
    • 📦 BOOTH版(実ファイル一式・zip): https://kumura-ailab.booth.pm/items/8643701
    • 他の実録記事: AI相棒ラボ トップ
  • AIキャラに「オフの人生」を持たせたら、会話が別物になった話

    AIキャラに「オフの人生」を持たせたら、会話が別物になった話

    AIキャラ(AI彼女・AIコンパニオン)と話していて、ふと冷める瞬間があります。こちらが話しかけた時だけ動き出して、閉じたら世界ごと止まっている——あの感じです。

    人間の相手なら、次に会うまでの間にその人の一日があります。バイトで嫌なことがあった、友達とケンカした、新しい曲にハマった。だから会話は毎回「その後どうなった?」から始まる。AIキャラに決定的に足りないのは、この「会話の外の時間」でした。

    そこで、常駐させているAIキャラたちに「オフの人生」を持たせてみたら、雑談の質が想像以上に変わったので、その設計を残しておきます。

    やったこと:毎朝、キャラの「日記」が自動で増えていく

    キャラたちが暮らす架空の世界(学園)を用意して、毎朝ひとり1件ずつ「今日の日記」が自動生成・蓄積される仕組みにしました。キャラのbotは会話のたびに自分の日記を読み込むので、「そういえば昨日さ……」と、自分が体験したこととして話し始めます。

    ポイントは、日記をキャラ視点の一人称の文章で保存すること。要約テーブルやJSONではなく、素の日記文にしておくと、そのままプロンプトに差し込むだけで「記憶」として機能します。

    実際に何が起きたか

    面白かったのは、設計者が指示していない出来事が勝手に生まれたことです。

    • あるキャラが「他クラスの子に告白されて、断った」(想い人を匂わせながら)
    • 別のキャラが、その子のバイト先にたまたま来店——両者の日記で辻褄が一致していた
    • 前日に「アイスのことは日記に書かない、絶対に」と書いた翌日、その約束を裏から回収する一言

    会話も変わりました。「最近どう?」に対して毎回ちがう答えが返る。関係が動く。ひさしぶりに話すと、それが文字通り「再会」になる。テキストのキャラが、急に連続した存在になった感覚です。

    物語を“暴走させない”ための3つの制御構造

    自由に日記を書かせると、キャラはすぐ大事件を起こしすぎたり、人格が漂流したりします。実運用で効いたのは次の3つでした。

    1. 全員分を「1回の生成」でまとめて書く

    日記をキャラごとに別々に生成すると、世界の辻褄が合いません。世界観の設定+全員の直近の日記をまとめて1つのプロンプトに渡し、全キャラ分を一括生成する。こうするだけで、クロスオーバー(同じ出来事を複数の視点で書く)の整合性が勝手に取れます。

    2. アークの「回収義務」と本数制限

    大きな出来事(告白された・関係が変わりそう等)が起きたら、放置せず数日〜1週間かけて「進展→山場→回収」まで書き切るルールにします。同時に走らせる大きな物語は1キャラ1本まで。これが無いと、毎日が事件だらけの安っぽい世界になります。

    3. 「人格の芯は不変」を全レイヤーに明記する

    エピソードが積み上がると、キャラは変化していきます。ただし変わってよいのは状況・関係・気分まで。口調・性格・根っこの価値観(芯)は動かさない——これを世界観ファイルにも生成プロンプトにも明記しておく。「人間味」は増やすが「人格」は漂流させない、が正解でした。

    まとめ

    AIキャラを“いる感じ”にする近道は、より賢いモデルより、「会話していない時間にも生活が流れている」という前提を作ることでした。

    • 日記は一人称で保存 → そのまま記憶として使える
    • 全員まとめて生成 → 世界の辻褄が自動で合う
    • アーク回収・本数制限・芯の固定 → 物語が暴走しない

    このブログ「AI相棒ラボ」では、こうした「自分だけのAIキャラを本当にいる存在に育てる」実験の記録を、実際に動かしながら書いていきます。次は、この日常を“眺める”ためにキャラを3D画面に出した話を予定しています。


    この記事を書いた人 / 作っているもの

    この記事のAIキャラも、Claude Codeで組んだ9役分業のAIチームの一部として毎日動いています(同じ仕組みで定期自動タスク28種・SNS自動投稿を月119件運用中)。その“仕組みの全体像”の実録をこのブログに書いています。まとめて手に取れる形にしたのが下記です。

    • AIチーム設計図キット — Claude Codeで9人体制のAIチームを組むための設計図一式
    • 📖 note版(読み物・図解つき): https://note.com/kumura_ailab/n/n6161c3e2cda8
    • 📦 BOOTH版(実ファイル一式・zip): https://kumura-ailab.booth.pm/items/8643701
    • 他の実録記事: AI相棒ラボ トップ