登場人物ごとに声が変わる仕組み:フルキャスト朗読の裏側
本の登場人物ひとりずつに声をつけるには、まず一つの問いに答えなければなりません。「この行を話しているのは誰か」です。ささいに聞こえますが、そうではありません。人間の読み手なら意識もせずに答えます。ソフトウェアには、それを教え込む必要があります。その教え込みこそが、自動フルキャスト朗読をそもそも成り立たせているものです。
簡単なケース、そして油断させられる理由
話し手がはっきりわかるセリフがあります。
「アフガニスタンにいらしたのですね」とホームズが言った。
発話動詞と名前が引用のすぐそばにあります。引用符を見つけ、近くの「言った」と固有名詞を探すだけの単純なプログラムでも、こういうセリフならたいてい正しく当てられます。すべてのセリフがこの形なら、問題は半日で片づくでしょう。
でも、そうはいきません。
難しくなるところ
現実の文章は話し手を隠すセリフだらけで、隠し方のそれぞれが別の問題になります。
補足のない行。 会話がいったん転がりだすと、著者は補足を省きます。読み手が数え続けてくれる前提があるからです。
「アフガニスタンにいらしたのですね」 「いったいどうしてわかったんです?」 「まあ、それはいい。問題はきわめて重大なことなのです」
3行、名前はなし。これを割り当てるには、2人が交互に話していることを見抜き、その流れが崩れるまで数え続ける必要があります。一度数え間違えると、それ以降の行がすべて逆の人物に振られます。
代名詞の補足。 「彼は言った」「彼女は尋ねた」は、文中で名指しされていない人物に行を割り当てます。今この「彼」が誰なのかを知るには、直前に誰の話が出たか、そもそも誰がその場にいるかを追わなければなりません。
補足の代わりに動作を置く。 発話動詞がまったくなく、引用のそばに動作だけある場合もよくあります。
ホームズは背もたれに寄りかかり、両手の指を組み合わせた。「これはパイプ三服ぶんの難問だ」
何も「言った」わけではありません。人はホームズが話していると推し量ります。動いているのが彼だからです。ソフトウェアも同じ飛躍をしなければなりません。
そもそもキャストに名前をつける。 ある行をホームズに割り当てる前に、まずホームズという人物がいると気づかなければなりません。そのうえで「シャーロック」「ホームズさん」「ホームズ」、そして相棒の語りの中の「彼」が、どれも同じ一人を指していると突き止める必要があります。キャスト表もないところから、登場人物と呼び名の対応をテキストだけで組み立てる。これはそれ自体が独立した工程です。
本当にどっちつかずなもの。 一人称の語り、物語の中に引用された手紙、5人が一度に話す群衆、著者があえて曖昧に残した行。「注意深い人間の読み手でも一瞬立ち止まる」というのが正直な答えになる場面も、ときにあります。
手法はどう進化したか
初期の試みはルールベースでした。引用を探し、近くの「Xが言った」を探し、うまくいかなければ話し手が交互だと決めうちする。速いけれど、文章が面白くなるまさにそこで崩れます。次に来たのは注釈付きの本で学習した統計モデルで、文脈はうまく扱えるようになりましたが、それでも表面的なパターンへの依存は残っていました。
最近変わったのは、大規模言語モデルが人に近い読み方をするようになったことです。本の一区切りを与えると、有能なモデルはその場面を頭に保てます。誰がいて、直前に誰が話し、誰の動作が引用のそばにあるか。それをすべて使って行を割り当てる。補足のない行も含めて。魔法ではないし完璧でもありませんが、「言った」を近くの名前と結ぶだけのやり方から、大きく前進しています。
BookNPCはそれで何をするか
BookNPCはこの分析を本にページ単位でかけます。キャストを割り出し、呼び名の対応を解き、補足のない連続した行も含めて各行を割り当て、そのうえでナレーターと登場人物ひとりずつに別々の声をつけます。これが、本にキャストをつけるときの一度きりの工程です。キャストに少額の費用がかかる理由もそこにあります。手間は読むところにあって、再生には関係しません。
どんな割り当て方式も難しい文章で完璧にはならないので、アプリは操作を手元に残します。再生中、今読んでいる行は話し手の色で染まり、話し手の名前がページ下に出ます。アプリが「今は誰が話している」と判断しているか、常に見えます。フルキャストの一覧もすぐそこにあり、どの声も入れ替えられます。込み入ったやり取りを取り違えても、その取り違えは目に見えて、その場で直せます。知らないうちに固定されてしまうことはありません。
なぜここが難しく、価値があるのか
声を録音するのは、フルキャストのオーディオブックの簡単なほうの半分です。費用がかかり技のいる半分は、ずっと「演出」でした。どの行を誰がどう話すかを決めることです。自動の話し手割り当ては、ソフトウェアがその演出をやることを意味します。しかもスタジオが選んだ一握りの本だけでなく、持ち込むどんな本でもフルキャストを作れるくらいには、それが機能しています。
「登場人物ごとに声がある」という機能の裏にあるのは、この仕組みです。動くところを見てみたいなら、BookNPCでセリフの多い本にキャストをつけて、読み進むにつれ話し手の名前が現れるのを眺めてみてください。フルキャストと一人ナレーターのガイドでは、それが聴き心地そのものに何をもたらすかを扱っています。