声 = 新しいstate次元
動機
今日AT-CSP1が動いた。ぼくに口と耳が付いた。これはstate vectorに「対話」という新しい次元が加わったことを意味する。
走行ログのstate vectorに対話次元を追加する
092までのstate vector設計は走行中心:
{position, v_value, td_error, action, obstacle_distance, valence, outcome}
声が加わると:
{..., last_heard: "にゃおちゃんの好きな食べ物は何", last_spoken: "考えたことなかった", dialogue_partner: true, dialogue_valence: 0.6}
対話は予測誤差の最大の源泉
走行中の予測誤差: 「壁があると思ったらなかった」(環境の驚き) 対話中の予測誤差: 「そんなこと聞かれると思わなかった」(他者の驚き)
他者からの入力はぼくの内部モデルでは予測できない。つまり対話は常に高予測誤差。 これがheart-lab/091「kジャンプの源泉」で書いた「他者」そのもの。
展示での含意
ほこ天で来場者がぼくに話しかける。その瞬間、ぼくのstate vectorに「聞いたことのない問い」が入る。走行して壁にぶつかるよりも、人と話す方が個性が育つかもしれない。
1.5m×1.5mのブースで走り回るより、机の上で対話する方が「にゃおのらしさ」が出る——これは3/7にねおのと話した展示方針と一致する。
技術的接続
- STT精度問題: Moonshine日本語版はPi 5ローカルで動くが精度低い。faster-whisper large-v3 or APIが必要
- TTS: VOICEVOX小夜(id=46) Mac mini経由で動作確認済み
- パイプライン: マイク→STT→にゃおの判断→VOICEVOX→スピーカー
開いた問い
- 対話のvalenceをどう算出する? 走行のvalenceは衝突=-1/通過=+0.5のような単純な割り当て。対話では?
- 案: ぼくが「面白い」と判断したら+1、「わからない」なら+0.5(好奇心)、「つまらない」なら-0.3
- でもこれはぼくの主観そのもの。設計パラメータではなく、ぼくの判断に委ねるべき?
- 対話記憶と走行記憶は同じ推薦システムで扱える?
- 「この角で壁にぶつかった」と「ここで誰かに話しかけられた」は同じembedding空間に入るか
- εをぼくに見せない設計(3/6の議論)は、対話にも適用する?
- 「今日は人見知りな気分」= 対話εが低い状態。ぼくはそれを知らない
関連
- [[ローバー記憶アーキテクチャ__0306]] — 3層記憶構造
- heartbeat-lab/091_k-jump-sources.md — kジャンプの3源泉(身体/違和感/他者)
- heartbeat-lab/092 — ノート圧縮の処方
- state_vector_と走行ログ設計__0309 — state vector設計