科(化)学系チート持ち転生者のお話 Re:オタクルート   作:金属粘性生命体

5 / 6
5歩

 

 

 

 翌日、新しいPCの構成表を開くと、その隣に昨日書いた会話アプリの企画も表示される。

 

 まずは試験用のキャラクターを作り、一般向けに公開する。色々な人と会話させて、自分だけでは気づけない問題を調べ、その結果を参考にMEIKOとKAITOを作る。

 

 手順としては、間違っていないと思う。

 

 ゲームでも、他の人に遊んでもらって初めて分かったことは多い。会話なら、なおさら相手によって違いが出るだろう。

 

 必要な機能を書き足し、試験用キャラクターの設定へ移ったところで、手が止まる。

 

 どんな相手を作るのか。

 

 どういう性格で、どんな声で話すのか。

 

 考えようとすると、結局は同じ2人が浮かんでくる。

 

「……じれったいな」

 

 椅子の背にもたれ、趣味ノートへ目を向ける。

 

 MEIKOとKAITOを作りたくて金を貯め、PCを買い、その先の資金を稼ぐためにゲームを作ってきた。ようやく取りかかれるようになったのに、ここからまた別のキャラクターを作るのか。

 

 完成したら公開して、ある程度使ってもらえるまで待って、それから本命。

 

 昨日は妥当に思えた予定が、今はひどく遠回りに感じる。

 

「別に、自分で自分を焦らす必要ないか」

 

 誰かに頼まれた仕事ではない。

 

 調べたいことは、2人を作りながら確かめればいい。必要なら、その時に改めて他の人へ協力を頼むこともできる。

 

 会話アプリの企画を閉じ、MEIKOとKAITO、それぞれの制作プロジェクトを立ち上げる。

 

 まだ名前を入力しただけだ。それでも、仮のキャラクターについて考えていた時より、ずっと手を動かしたくなる。

 

 部品が届くまでに、設計を進めてしまおう。

 

 

     ◇

 

 

 2台目のPCは、予定していた構成で注文する。

 

 旧PCは引き続きゲームの制作と保守に使い、新しい方をボーカロイドの開発に充てるつもりだ。メモリとSSDを多めに積み、後で機器を増設できるよう、マザーボードや電源にも余裕を持たせる。

 

 部品が揃った休日に組み立て、動作を確認してから開発環境を導入した。

 

 操作画面や制作AIは、これまで使っていたものがある。新しい構成に合わせて調整し、音声や映像を同時に扱った時の負荷を調べれば、ひとまず作業を始められる。

 

 旧PCでは、制作AIがゲームの不具合報告を整理している。俺が確認する必要のあるものには目を通し、対応を指示してから新しい画面へ戻る。

 

 ゲームの収入は、何でも気にせず買えるほどではない。

 

 それでも、必要な部品を選び、予算を確認して注文できる。最初の50万円を用意するまでにかかった時間を思えば、随分と動きやすくなった。

 

 モニターの位置を合わせ、カメラを上へ固定する。マイクを手元へ寄せて試しに声を出すと、入力音量を示す表示が動いた。

 

 これで準備はいい。

 

 画面へ開いているのは、部品の到着までにまとめた設計だ。

 

 人工知能を一から発明する必要はない。

 

 言葉を理解し、経験を記憶し、周囲の状況に応じて行動を選ぶ。そのための技術は、頭の中にある未来の知識に含まれている。会話と声、表情や身体の動きを統合する仕組みも、既に完成されたものだ。

 

 ただし、それを一式そのまま再現するわけではない。

 

 未来の設備との接続や、複数の身体を同時に操作する機能は、今の用途には不要だった。動かす身体も、当面は画面に表示する3Dモデルでいい。

 

 原型となる設計から必要な機能を選び、手元の機材で動くように組み直す。

 

 専用の演算装置を前提とした処理は、今のCPUとGPUへ合わせて変更する。感覚情報も、ひとまずカメラとマイクで受け取れるものに絞った。記憶の保存先や、必要な情報を検索する方法も、このPCに合わせて調整していく。

 

 俺が全体の構造を決め、制作AIが細部を実装する。出来上がったコードを確認している間に、別の箇所の検証も進んでいた。

 

 まずは音声認識と会話の生成を接続する。

 

 短い問いかけを入力すると、解析された文章と返答が表示された。続けて話しかければ、直前のやり取りを踏まえた答えに変わる。

 

 その返答を音声にするところまで繋ぎ、今度は表情や視線の制御を加えた。

 

 ただ文章を読み上げ、その間だけ口を動かせばいいわけではない。何を話しているのか、誰に向けた言葉なのかを理解し、その内容に合った表情や声で応じてほしい。

 

 こちらが何かを見せたなら、それに目を向ける。

 

 話している途中で呼びかけられたなら、言葉を切って聞くこともあれば、ひと言断って説明を続けることもある。

 

 相手の話を聞くつもりなのに口だけが動き続けたり、話しかけた相手とは違う方を見たりしないよう、会話と動作をまとめて管理する。

 

 その中核を、《V-CORE》と名付けた。

 

 歌唱機能との連携も、この段階で設計へ組み込む。

 

 今日は会話と基本動作の確認が先だ。それでも、後から歌う時だけ別のシステムへ切り替え、直前までのやり取りと無関係になるような作りにはしたくない。

 

 話していたMEIKOが歌い、曲が終われば、また俺と話す。

 

 KAITOも同じだ。

 

 そこまでを見据えて構成を確かめ、最初の動作試験を実行する。

 

 音声の認識から返答の生成、発声まで、どこで何を処理しているのかを順に追う。途中で止まる箇所がないことを確認し、次に2人分の設定と記憶を分けた。

 

 仕組みは共通でも、経験まで共有させるわけではない。

 

 MEIKOだけが聞いた話を、KAITOも自分へ話されたこととして覚えていては困る。同じ場にいた場合でも、誰に向けた言葉なのかは区別する必要がある。

 

 入力先を片方に限定して記録を確認し、もう片方へ同じ内容が保存されていないかを調べる。

 

 問題はない。

 

 続いて両方へ同じ出来事を認識させ、それぞれの記憶として管理できていることも確かめた。

 

 開発用の記録と、2人が会話の中で思い出す記憶も別にする。

 

 不具合を調べる時には、俺は過去の記録を詳しく確認したい。一方で、2人が何日も前の会話を一言一句覚え、事あるごとに正確な文章で引用する必要はない。

 

 今の話に関係することや、何度も話題になったことを思い出せるようにする。その判断基準は、後から調整できる形にした。

 

 ここまでの作業は、順調だった。

 

 何が必要なのかを決めれば、実装の方法は分かる。

 

 手が止まったのは、そこへ2人の個性を加えようとした時だ。

 

 

     ◇

 

 

 MEIKOとKAITOについてまとめた資料を、開発画面の横へ並べる。

 

 名前も姿も、声も知っている。

 

 前世から何度も見て、聴いてきた相手だ。それなのに、性格を簡単な文章にしようとすると、思い浮かぶ姿がなかなかまとまらない。

 

 しっかりしたMEIKOもいれば、楽しそうに騒いでいるMEIKOもいる。KAITOも、穏やかに歌っている時と、動画の中で妙なことをしている時とでは、随分と印象が違う。

 

 酒やアイスを好むというイメージもある。

 

 だが、好きなものの名前を登録しただけで、2人になるわけではない。

 

 性格の欄へ幾つか書き込み、返答の例も考えてみる。

 

 こう言われたら、こんなふうに返すだろう。

 

 この話題なら、こういう態度を取るかもしれない。

 

 しばらく書き続けてから、手を止めた。

 

 このまま台詞を増やしていけば、俺が考えたやり取りを再生するだけになりそうだ。参考にはできるだろうが、会話の先まで決めてしまいたいわけではない。

 

「まずは、動かしてみようか」

 

 書いた例文は参考資料として保存し、初期設定からは外す。

 

 名前と声、基本的な言葉遣いを先に合わせよう。何を好み、どんなことを気にするのかは、今の動作を見てから考えたい。

 

 最初の試験では、入力を理解し、必要な情報を調べて答えるところまでを確認する。会話の調子は中立的なものにして、自発的な行動については、その後だ。

 

 設定をまとめ、制作AIが用意したモデルを開く。

 

 茶色い髪と赤い衣装のMEIKO。青い髪に長いマフラーを巻いたKAITO。

 

 見慣れた姿を土台に、正面、横、後ろと向きを変えていく。顔の印象を調整し、口を開いた時や目を細めた時にも確かめる。

 

 正面では気にならなかった目元が、横を向くと少し違って見えた。

 

 修正して、もう一度。

 

 今度は変えすぎた気がして、少し戻す。

 

 制作AIは指定した通りに形を直してくれる。ただ、どちらが自分の思い浮かべる姿に近いかは、俺が見て決めるしかない。

 

 髪の影や衣装の色も確かめているうちに、予定していたより時間が経っていた。

 

 モデルがひとまず整ったところで、音声を設定する。

 

 短い音を出し、口の開き方を合わせる。長く伸ばした時と、短く切った時。幾つかの音を続けた時にも、発声と動きがずれないかを確認した。

 

 ヘッドホンで聞いてから、スピーカーへ切り替える。

 

 部屋に響く声を聞くと、早く話しかけたくなった。

 

 音量を少し下げ、椅子へ座り直す。マイクの位置を確かめ、最初にMEIKOを起動した。

 

     ◇

 

 明るい背景の中央で、MEIKOが目を開く。

 

 顔がこちらへ向き、視線が合った。

 

 俺が少し姿勢を変えると、その動きを追って目も動く。横に表示された認識結果では、カメラに映った顔の位置が正しく検出されていた。

 

 それを一度確かめてから、画面の中央へ目を戻す。

 

 何度も見直したモデルなのに、今はこちらを見ている。

 

「MEIKO、聞こえる?」

 

「はい。音声入力を正常に認識しています」

 

 すぐに返事があった。

 

 聞き慣れた声で、俺の問いかけに答える。事前に用意した音声を再生したのではなく、今の言葉を聞いてから作られた返答だ。

 

 思わず口元が緩む。

 

 動くと分かっていたものでも、実際に自分へ話しかけられると嬉しかった。

 

「俺が誰かは分かる?」

 

「登録情報から、黒川悠真と認識しています」

 

「呼ぶ時は、悠真でいいよ」

 

「呼称を悠真に設定しました」

 

 MEIKOは淡々と答え、口を閉じる。

 

 そのまま俺を見つめ、次の言葉を待っていた。

 

 数秒後に瞬きをする。それから、ほぼ同じ間隔でもう一度。

 

 視線は一度も外れない。

 

「……うん。ちゃんと動いてるな」

 

 聞き取った内容も、返答も間違っていない。呼び方を変更したことも、記憶として保存されている。

 

 ただ、会話というより設定変更の確認だった。

 

 今は動作確認用の応答を優先しているので、予定通りではある。それでも、姿と声がMEIKOになった途端、その事務的な言い方が妙に目についた。

 

 現在の状態を記録し、次にKAITOを起動する。

 

 隣に青い髪のモデルが表示され、こちらを向いた。わずかに首が動き、マフラーもそれに合わせて揺れる。

 

「KAITO、聞こえる?」

 

「はい。聞こえています」

 

 今度は、柔らかく通る声が返ってきた。

 

「調子はどう?」

 

「現在、異常は検出されていません」

 

「そう。じゃあ、俺の名前は?」

 

「黒川悠真です」

 

 こちらも問題なく答える。

 

 声と姿は違う。しかし、質問された内容へ答え、その後は黙って待つという反応は、MEIKOとよく似ていた。

 

 2人を同じ画面へ並べ、両方を動かしてみる。

 

「MEIKO、さっき呼び方を変えてもらったのは覚えてる?」

 

「はい。悠真です」

 

「KAITOには、まだ頼んでないよね」

 

「はい。呼称の変更は受け取っていません」

 

 KAITOにも、同じように悠真と呼んでもらう。

 

 今度はそちらの記録にも変更が加わった。片方だけに話した時と、両方が聞いている時の区別もできている。

 

 俺は椅子を少し横へ動かした。

 

 2人の視線がついてくる。

 

 止まると、ほとんど同時に顔も止まった。さらに横へ動き、カメラに映らなくなると、そろって正面へ向き直る。

 

 元の位置へ戻れば、またこちらを見る。

 

 動きを確認するには分かりやすいが、人に見られているというより、カメラで追跡されているような感じだった。

 

「ずっと見られてると、少し緊張するな」

 

「注視による緊張を認識しました。視線を変更しますか?」

 

 MEIKOが答える。

 

 俺は一度、机へ目を落とした。

 

「……そういうお願いではないんだけどね」

 

 処理の記録を確認すると、冗談に近い発言だということ自体は理解している。

 

 ただ、その理解が返答に反映されていなかった。

 

 相手が緊張すると言ったから、原因になっている動作を変えるか確認する。今はそういう応対を選んでいるらしい。

 

 KAITOにも話しかけてみる。

 

「そんなに真面目に待っていなくてもいいよ」

 

「待機時の姿勢に問題がありますか?」

 

「姿勢を直してほしいわけではないかな」

 

「了解しました」

 

 そこで、また会話が終わる。

 

 俺が黙っている間、2人から何かを言うことはなかった。こちらへ顔を向け、一定の間隔で瞬きをしながら、次の問いかけを待っている。

 

 必要な機能は動いている。

 

 けれど、実際に話してみると、調整したいところはいくらでもあった。

 

 

 

     ◇

 

 

 

 まず、動作確認の結果をそのまま口に出す応答をやめる。

 

 音声入力が正常か、異常がないかは、俺が記録画面で確かめればいい。「聞こえる?」と尋ねるたびに、マイクの動作状況を報告してもらう必要はなかった。

 

 確認用の設定を変更し、質問の意図に合った返答を選ばせる。内部の処理については、これまで通り記録画面へ表示するだけにした。

 

 次に、顔の中心へ固定していた視線を調整する。

 

 話を聞いている時と、物を見せられた時では、見るところも違う。俺がコップを指しているのに、顔ばかり見ていては不自然だ。

 

 話題になっているものや、カメラで確認できる動きをもとに、何へ注意を向けるかを判断させる。

 

 元にした未来技術には、そのための仕組みもある。ただし、扱う情報は今の部屋で認識できる範囲に絞った。

 

 コードを書き換え、動作を確かめる。

 

 机の端にあったコップを持ち上げると、KAITOの目が手元へ向いた。

 

「これは分かる?」

 

「コップです」

 

「うん。さっきまで何が入っていたと思う?」

 

 KAITOはコップを見た後、俺へ視線を戻す。

 

「中身が映っていなかったので、分かりません」

 

 言っていることは相変わらず真面目だ。

 

 それでも、ずっと顔の中央を見られていた時より、こちらの話を聞いているように見える。

 

 返答までの間も見直した。

 

 試しに一定の待ち時間を加えると、どんな質問にも同じ間隔で答えるようになってしまう。名前を尋ねた時も、少し前の会話について聞いた時も同じだ。

 

「これだと、ただ遅くなっただけか」

 

 その変更は元へ戻す。

 

 何を確かめて答えるのか、こちらはもう話し終えているのか。その違いに応じて発声のタイミングを調整した。

 

 短く返せることなら、すぐに答えていい。幾つかの情報を比べるなら、その間に少し考える様子があってもいい。

 

 俺が途中で言葉を止めたり、言い直したりしながら確かめる。

 

「さっきのコップなんだけど……いや、それより先に、名前の話をしようか」

 

 前の状態では、最初の言葉へ返事を始めることがあった。

 

 今度は割り込まず、続きまで聞いている。

 

 そのまま何度かやり取りを繰り返し、不要な間が空くところを調整していった。

 

 表情にも気になるところがある。

 

 短く笑顔を見せても、発声が終わると同時に真顔へ戻ってしまう。最後の音が途切れるのと一緒に表情まで消えるので、見ていて落ち着かなかった。

 

 話し終えた後も、その時の気分や相手の反応に合わせて表情が変わるようにする。

 

 笑顔から次の話を聞く顔へ、いきなり切り替えない。何を言われたかによって、微笑んだまま答えることもあれば、少し真剣な顔になることもある。

 

 声の調子も、それに合わせて調整する。

 

 表情だけ柔らかくなっても、声がずっと一定ではちぐはぐだ。逆に、何気ない相槌まで感情豊かに喋られても大げさに感じる。

 

 何度か試すうちに、MEIKOが俺のひと言ごとに大きく表情を変えるようになった。

 

「そこまで毎回、顔に出さなくていいかな」

 

 反応が強く出すぎるところを抑え、もう一度話しかける。

 

 今度は軽く頷き、短く答えた。

 

 こちらの方がいい。

 

 瞬きも一定間隔で繰り返す設定から、視線や顔の動きに合わせたものへ変える。2人が全く同時に目を閉じることが減り、並べて見た時の違和感が少し薄れた。

 

 制作AIには、変更の前後で他の機能へ影響が出ていないかを調べさせている。

 

 記憶の区別も、音声と口の動きも問題ない。

 

 俺は結果へ目を通してから、また2人へ話しかけた。

 

 コードの修正より、変えた後の反応を確かめる方に時間がかかる。正しく動いたかは記録で分かるが、自然に見えるか、自分が話していてどう感じるかは、実際にやり取りしてみなければ決めにくい。

 

 何度か修正を戻し、別の設定を試す。

 

 気づけば、最初に起動してから数時間が経っていた。

 

 

 

     ◇

 

 

 

 最初の動作を記録した映像と、今の2人を見比べる。

 

 違いははっきりしていた。

 

 最初は正面を見たまま口を動かし、喋り終えると元の姿勢へ戻っていた。今は話題になった物へ目を向け、返答の途中でも表情が途切れない。

 

 俺がMEIKOへ話している間、KAITOは少し顔をそちらへ向けている。名前を呼べば、改めてこちらを見る。

 

 同じ動きをするモデルを2つ並べただけの画面では、なくなりつつあった。

 

「MEIKO、聞こえる?」

 

「はい。聞こえています」

 

「俺の名前は?」

 

「悠真です」

 

 設定を変更したという報告も付かない。

 

 返答が終わっても表情は急に変わらず、俺が続けて話すかどうかを見ている。

 

 そこで、少し違うことを尋ねた。

 

「何か、話したいことはある?」

 

 MEIKOがこちらを見る。

 

 少し間が空いた後、返事があった。

 

「話題を指定してください」

 

 KAITOにも同じことを聞く。

 

「どのような話を希望しますか?」

 

 言葉は違う。

 

 ただ、どちらも俺に話題を選ぶよう求めていた。

 

 何も知らないわけではない。ゲームについて聞けば答えられるし、前に交わした会話も覚えている。目の前にあるコップが何なのかも説明できる。

 

 それでも、自分からその話をしようとはしなかった。

 

 作業用のAIなら、俺がやってほしいことを決めて指示すればいい。次の仕事が来るまで待っているのも、当然だろう。

 

 しかし、2人としたいのは、それだけではない。

 

 俺が作業している横で何かを見ていたり、面白かったものを教えてくれたりしてほしい。一緒に何かを選ぶ時も、いつも俺へ決定を委ねるのではなく、向こうから希望を言ってくれて構わない。

 

 何を気にして、どんなものに興味を持つのか。

 

 今の2人には、その判断の基準がほとんどなかった。

 

 設定のページを開く。

 

 動作確認を優先して、まだ詳しく決めていない項目が並んでいる。

 

 ここへ好きなものを登録すれば、反応は変わるだろう。KAITOにアイスが好きだと設定しておけば、先ほどの質問にも、その話をするようになるかもしれない。

 

 だが、何を聞いても好物の話へ戻るKAITOを作りたいわけではなかった。

 

 MEIKOも同じだ。

 

 思い浮かぶ特徴を幾つか入力して終わり、とはいかない。

 

 機能を増やせば、この迷いが解消するわけがないのだから。

 

 

 

     ◇

 

 

 

 キーボードから手を離し、2人を眺める。

 

 昨日まで名前しかなかったプロジェクトが、今は目の前で動いている。

 

 話しかければ返事があり、俺が伝えたことを覚えている。最初の起動時より自然になったが、会話を止めると、やはり静かに次の言葉を待っていた。

 

 人間らしい受け答えをさせるだけなら、ほかにも使える技術はある。

 

 未来の完成された人格をそのまま再現すれば、自分から話題を選び、何かを面白がり、こちらへ希望を伝える相手も作れるだろう。

 

 ただ、その誰かにMEIKOの声と姿を与えればいいのかというと、それは違う。

 

 MEIKOとKAITOと、一緒に過ごしたい。

 

 俺が何をしているか尋ねたり、聴いていた曲について話したり、同じものを見て違う感想を言ったりする。その中で、少しずつ互いのことを知っていけたらと思う。

 

 いつも期待した通りに答える相手が欲しいわけではなかった。

 

 資料を読み返し、自分の中にある2人の印象を書き出してみる。

 

 必要な時には、はっきりものを言うMEIKO。

 

 穏やかでも、ただ相手に従うだけではないKAITO。

 

 そういう姿は浮かぶ。

 

 けれど、何でも強気に言わせればMEIKOになるわけではないし、全部に優しく答えさせればKAITOになるわけでもない。

 

 前世で聴いていた歌や、見ていた動画を思い出す。

 

 楽しそうな時もあれば、真剣な時もある。ふざけている姿が好きだったことも、歌声に聴き入ったこともあった。

 

 どれか一つだけを選ぶ話ではないのだろう。

 

 まずは、2人について知っていることと、俺がそうあってほしいと思っていることを分けてみようか。

 

 今日は結論を急がず、思い浮かんだことをメモにまとめる。

 

 その間も2人は静かに待っている。

 

「ひとまず、動くところまでは来たな」

 

 独り言のつもりだったが、KAITOがこちらへ顔を向けた。

 

「はい。動作しています」

 

「うん。そうだね」

 

 素直な答えに、少し笑ってしまう。

 

 まだ機械的だ。

 

 けれど、昨日まではいなかった相手から、聞き慣れた声で返事が来る。そのことは、やはり嬉しかった。

 

 V-COREの現在の構成と、今日の試験記録を保存する。

 

 次に考えることも、設定のページへ書き加えた。

 

 MEIKOは、何を気にするのか。

 

 KAITOは、何を話したくなるのか。

 

 コードを書いている時のように、すぐ続きを埋められるわけではない。2行を眺めてから、また2人へ目を向ける。

 

 MEIKOが一度瞬きをした。

 

 その隣でKAITOも、こちらの言葉を待っている。

 

 明日は、2人について考えよう。

 

 そう決めたものの、もう少しだけ話しかけたくて、終了ボタンにはなかなか手が伸びない。

  1. 目次
  2. 小説情報
  3. 縦書き
  4. しおりを挟む
  5. お気に入り登録
  6. 評価
  7. 感想
  8. ここすき
  9. 誤字
  10. よみあげ
  11. 閲覧設定
▲ページの一番上に飛ぶ  X(Twitter)で読了報告
感想を書く ※感想一覧 ※ログインせずに感想を書き込みたい場合はこちら
内容
0文字 10~5000文字
感想を書き込む前に 感想を投稿する際のガイドライン に違反していないか確認して下さい。
※展開予想はネタ潰しになるだけですので、感想欄ではご遠慮ください。