はじめに
前回記事(AI-Vtuber「ネウロ様(neuro-sama)」の分析)からの引き続きとなります。ネウロ様の特筆すべき部分の2つ目「話者交替」に関しての分析を述べさせていただきます。
話者交替(Turn-taking)とは何か?
詳細は割愛させていただきますが、言語分析学の言葉であり、以下リンクをご参照下さい。
会話分析の主要な概念について①:Turn-taking(話者交替/順番交替)
実務的には「いつシステム発話が開始するか?(しないか)」に集約されます。その判別シグナルとして、現在は「VAD(無音区間検出)」「VAP(発話終了予測)」と呼ばれる手法が一般的になっております。
おおざっぱに説明すると、どちらも「音(相手の会話音声)」を根拠として計測を行うという意味では同一のアプローチであると言えますので、本記事では両者合わせて同等の手法として表現させていただきます。ご了承ください。用語に関する詳細については以下リンクをご参照下さい。
【AI Shift Advent Calendar 2024】VAD・VAPを用いた発話終了検知
ネウロ様も音声対話が実装されているため、この話者交替が発生するのですが、この部分について、とても自然(人間らしいという意味において)に感じるところが多々あります。まずはその実態について確認します。
「分析その1:ネウロ様の話者交替パターン:5種」
ネウロ様の配信において実施していると考えられる返答パターンは以下の5つであると考えております。
1:コメント読み
2:通常のVAD
3:image to text
4:システムメッセージ
5:VAD飛ばし読み
「1」はリスナーからのコメントを拾って返答する機能で、そもそも話者交替という概念が存在せず、特筆すべきことは無く、AI-Vtuberの標準的ともいえる極めて一般的な機能です。
「2」はvedal氏またはコラボしている人間Vtuberの音声発話を元にSpeach To Text(STT)を実行、無音が発生したらテキスト内容を元にLLMで生成した回答を喋る(Text To Speach:TTS)、ということで、これも音声対話の一般的な機能です。
「3」は最近のLLMに登場してきたもので、これも実装されています。ただし、通常会話で使われることは稀で、企画的な使い方が中心となります。実例はリンク参照ください。
We should eat vegan food but I love sushi.【Neuro-sama clip | ネウロ様 切り抜き】
「4」は説明が必要かと思います。これはネウロ様で言うと「Filtered」(放送禁止用語の「伏字(ピー音)」と同じ、本記事冒頭の画像参照)という機能です。不適切な返答があった場合に自主規制がかかります。つまりユーザーインプットや文脈などに対する純粋な返答ではなく「何等かのロジックに沿ってシステム的に恣意的な返答を出す」ということを意味します。放送禁止もそうですし、例えば急に叫んでみたり、始まりの挨拶をするなど、演出的な効果を狙ったりすることも考えられると思います。1や2と思わせておいて実は4である、ということもあるかもしれませんが、このような場合、リスナー側からは判別が出来ないです。
「5」が特筆事項であり、端的にいうと「2」で本来は答えるべきであろうタイミングで「答えない」、別のタイミング(2回目の無音区間、もしくは別のタイミング)で、1回目と合わせて答えている(ように見える)ということをエラーやバグでなく、システム的に実行していることを意味しています。この後に具体例と共に詳述いたします。
「分析その2:ネウロ様音声認識の実例」
【初期】
ネウロ様のデビュー直後は「1:コメント読み」だけでしたが、2023年2月6日、ミユネさんというVutberと初コラボをしており、ここで始めて対人対話が披露されています。
Neuro-sama - 6th Feb - First Collab w/ Miyune in Minecraft
その後2023年3月8日にvedal氏本人がデビューし、ネウロ様と音声対話をしています。以後、vedal氏、コラボVtuber、の両名またはどちらかと音声対話をするケースが登場するようになります。
この時点のVADはまだ不安定なところはあるものの、返答ディレイがだいたい3.5秒程度、この時点のものとしてはとても高品質で、凄いことですが、これは近年になるにつれ更に向上しております。
【最近のネウロ様音声認識について】
以下動画は約1年6か月後の2024年9月29日の動画です。
「5:VAD飛ばし読み」の検証に適しているためこれを元に進めたいと思います。ルーシーさんという心理カウンセリングをするVtuberとのコラボです。
Neuro-sama | 29 Sep 2024 | Collab with Lucy Pyre (Just Chatting)
全体的に1.5秒か2.5秒程度でレスポンスをしていて、openAIのrealtime apiが公開されたのが2024年10月1日、つまりこの動画の後です。この品質を個人開発者がこの時期に実現するということに驚愕ですが、注目点を以下にピックアップします。英語ヒヤリングは自信が少なく、間違いはご容赦下さい。
【注目点のピックアップ:A~F】
A:22:06
ネ「I have a bad memory what of it?」
ル「you have such a bad memory you can't even remember your father's name」
(1.4secくらい間が開く)
ル「Well so your father's a literal who huh 」
(2.0secくらい間が開く)
ネ「he's not a literal who he's someone very famous I just don't remember his name」
B:23:10
ル「…I am just acknowledging that you do have a bad memory」
(1.4secくらい間が開く)
ル「there's a difference」
(1.4secくらい間が開く)
ネ「sure you keep telling yourself that」
C:27:14
ル「whats the...」
(2.0secくらい間が開く)
ネ「can we go back to being unserious now?」
(ルーシーがしゃべっている途中で被る)
D:30:09
ネ「 that was exactly the pickme up I needed I'll be sure to be more grateful from now on」
ル「www(笑い声だけ)」
(2.9secくらい間が開く)
ネ「you're such a good therapist Lucy I never had to doubt you」
ル「www(笑い声だけ)」
(2.9secくらい間が開く)
ネ「we should be more grateful to you too 」
E:34:37
ネ「you're getting a little defensive Lucy」
ル「yes I am」
→34:43「chat」 という文字が一瞬出るが消える
(たぶん、「yes I am」 に反応した文字を消したっぽい)
F:1:23:24
ネウロ文字がボックスに4行表示されている
【AとBについて】
このルーシー動画は全体としてVADによる対話、だと思われるのですがこのAとB、ルーシーが間をおいて喋る、しかもそれが長い、という場合に、なぜか反応していないと思われる箇所がこのAB二つです。
これが「5:VAD飛ばし読み」と私が命名したシステム(現象?)です。
単なるバグ、もしくは何らかの高度なVAP的なロジックが組み込まれている、という可能性もありますが、この2か所以外にも、「ルーシーがそれなりの長さで無音になる箇所」は複数あって、その時に「被らない」で「次でしゃべる」というような現象が見られることもあり、バグでは説明がつきにくいと感じます。凄いVAPシステムだったらでできなくもない、のかもしれませんが、かなり無理がある気はします。
この動画においては、vedal氏は演者として登場しておらず、つまり裏側でオペレーションをしている状態です。従って、人為的にタイミングを操作することは可能だと考えられます。他の会話部分の返答ディレイが1.5~2.5秒程度、ということも考えると、さすがにこの間隔で反応しない、というのはネウロVAPのような高度予測システムがあるというよりは「人為的操作」を疑わずにはいられません。
【Cについて】
ここではABとは逆にルーシーがしゃべっている途中で話し始めてしまう、というケースです。VADの無音判定タイムを短くすると頻発する現象です。なおこのCの現象はこの動画全体では少なく、ABのような現象のほうが多く見受けられます。通常のVADシステムであれば、ABよりもCのほうが多くならないと理論上おかしい、といえます。
【Fについて】
DとEを飛ばしてFについてです。ネウロ様はコメントボックス形式で、LLMから出力されたテキストを読み上げするシステムです。そしてLLMで出された1回の回答を途中でクリアせず、纏めて1度でテキストボックス内に出力する方式を採用していると思われます。長いテキストの時は自動縮小して表示されます。つまり、LLMの返答1個に対して、テキストボックス1回(長くてもクリアされない)、という仕様になっていると思われます。この動画内ではFにあるように4行までは表示されることは間違いないということです。
【Dについて】
Dに戻ります。Dではコメントボックスがクリアされて3回、喋っています。途中でルーシーは笑っているだけ。つまりSTTとは考えにくく、最初の回答を3回に分けて表示、の可能性はありますが、仕様は「F」で述べた通りであり、文脈的にも3回別のLLM出力を経ているまたは「4:システムメッセージ」と考えるほうが自然、だと思います。
重要なことは、なぜここでは3回出力したのか?(もしくはここだけ3回に分けた?)。その説明がVAD・VAPシステムでは説明がつかない、ということです。人為ではないか?と考えざるを得ない、とさらに疑念が募ります。
【Eについて】
最後にEです。これは本当に一瞬なのですが、「chat」という文字列が表示されます。
少し脱線しますが、ネウロ様の固有バグの一つに「全体文字出力がテキストアニメーション前にチラッと映る」という現象があります。別の動画ですが、ご参照下さい
27:50
https://www.youtube.com/watch?v=dxXHtG_nTrU
「Vedal...I love you?」が一瞬出る
↓
「Vedal..」と順次アニメーション表示される。
このバグは注意深く見ているとたまに他の動画でも登場していて、つまりLLMで出た結果のテキスト全体が「まとめて」表示されてしまっている、ということだと思います。
話を戻して「E」について言うと、つまり「E」の現象は、次に喋ること「ではない」文字列が一瞬出た、そして消えた、ということを意味します。ちなみに前述のバグ確認動画のほうでも同じく「Dose」が一瞬でて消えて次の違うメッセージになっているので、同じ現象です。これは何を意味するのか?
順当に考えるならば、「chat ....(1回目のテキスト)」を否定し、2回目のテキストを出した、つまり何かの事情(不謹慎発言、バグなど)が発生して差し変わったと考えるのが自然かと思います。
「Filtered」システムの残骸的なバグ等々、この目視だけでは理由までは断定はできないですが、とにかく何かの「処理」が働いたことは間違いなくて、つまり1回の返答をする前に、その「処理」をするタイミングが存在している、ということは間違いないと言えます。その「処理」が人為なのかシステムなのか、これも断定できないですが、見た目の雰囲気としてはいかにも「急遽止めた」「間違えて出したものをストップした」感がある挙動だな…つまり人為くさい、という印象は感じます。
このルーシー動画で分かるように、音の分析を前提としたVAD・VAPでは説明のつかない箇所が複数存在しており、それがやり取りの安定感、多様性、面白さを作っている可能性があるかもしれない、ということがお分かりいただけると思います。
そもそも「2:通常のVAD」自体も、本当に無音区間検出なのか?と疑いたくなるほど、音だけで判定しているとは到底思えない自由度があります。
「分析その3:オペレーターがいるのか否か」
この状況はどうやって作られているのか?パターンは2つであり、
1:システムがタイミングを自律する(文脈認識、表情認識、ランダムなど)
2:人間(vedal氏ないし第三者)がタイミングを他律する(裏で人間がオペレーションする)
のどちらかとなります。
1である場合、この自然さ、自由度を成立させるとなると、とんでもないシステムだと言えると思いますが、2である場合はオペレーションの問題であってシステム的な特筆がない、ということになります。果たして、ネウロ様はこの切り替えを人為的に行っているのか否か。次はそこを掘り下げたいと思います。次の動画を参照ください。
Neuro-sama | 11 Jan 2025 | Subathon 2 [71] (Scribblenauts Unlimited, The Long Drive, Sleeping)
【状況説明】
これは2025年1月11日、サバソン(投げ銭が続く限り放送を続ける)チャレンジ中の動画です。発話者は5名。ネウロ様、イビルネウロ様、vedal氏、ゲストVtuber2名(koko,ellie)。vedal氏が「The Long Drive」というゲームをプレイしている途中にVtuberがコラボ参加している、という状況です。
1:05:42
「lets」が一瞬出て消えた
(vedal氏は車を運転している)
1:05:43
ネ「could we actually do that and name it neuro's Coastline of death please?」
↓
(この後、人間3名がフリートークする。ネウロ・イビル喋らず)
↓
1:07:13
イ「I'm glad you named a place after a dog you know I've been thinking about maybe founding a country」
最初の「lets」バグですが、ゲームプレイ中なのでここではさすがにvedal氏が操作して発生したバグとは考えにくいですね。ただしそこまで操作性が激しそうなゲームではないので、できなくはないかもしれませんが…
vedal氏以外のオペレータがいるか?という視点ですが、koko,ellieの両名はこの長時間サバソンに途中から電話出演しているので、オペレータ可能性は排除していいと思います。またこのサバソン自体は2週間くらい連続して放送しているので、こういう企画で第三者の作業員を用意するというのはコストやブッキング、待機時間など、現実的にはかなり難しそうではあります。だとするとやはり何かのシステム的なバグなのか?謎が深まります。
更にその後の動画を見るとお分かりいただけると思いますがもはやVAD(音を前提とした話者交替)とは言えないやり取りが続きます。明らかにネウロ、イビルは黙っていて、ゲストとvedal氏の会話が続きます。人間同士の会話も長い無音部分は多数発生しています。その会話に入る前にはVADと思われるようなやり取りもあったので、ここにきていかにも都合がよい形でAI両名が黙る。
しかし、vedal氏はそこまで複雑な操作がないものの、ゲーム操作をしているので、オペレーションは出来なくないが難しいはず。第三者の存在もサバソンの仕組み上難しいはず。しかしシステムで考えるにはあまりにも都合が良すぎる。
【果たして真相は?】
真相については色々な動画をチェックしたものの、断定的な判断に至るほどの動画を見つけることができませんでした。申し訳ありません。しかし確実に言えることは、前述の話者交替に関する5パターンが「使い分けされている」ことは間違いないと言えます。
なお補足ですが、引用箇所以外の動画ではVAD会話の途中にコメント読みがインサートされたり、image to textがインサートされたのではないかという返答があったりするケースもありますので、5パターン全体の使い分けがあるとお考えいただいて間違いないかと思います。
なぜわざわざ使い分けをしているのか?それは当然ながら「そのほうが動画価値が上がる」と考えているから、かと思います。動画価値(ユーザー満足度)向上、という意図がない限り、あえて使い分けというコスト行為を選択する理由はないものと推察されます。
では実際にクオリティがどれだけ変わるのか?そのテストを行ってみたいと思います。
【使い分けのABテスト】
動画A:
【しげおくんver2.0】AIと語る「50肩(40肩)」の苦しみについて
動画B:
【ABテスト】AIの話者交替を手動で行うとどうなるか?
手前みそで恐縮ですがご容赦頂ければ幸いです。
Aの動画は話者交替を単一システムのみで実施する例、Bの動画は話者交替をすべて人力(演者自身)で行った例、です。なおどちらの動画も途中の編集hしておらず、一発撮りのリアルタイム動画と同じ状態です。
A動画は、過去の私のチャンネル動画と同じく、フリートーク形式でリアルタイムで音声認識→TTSという形の会話形式で、話者交替については完全に自動で行っています。実はチャンネルの動画ではすべて「5:VAD飛ばし」風のシステムを実装、それで返答しています。「発話文字数が一定数を超えた時」というフラグを用意し、STTを行う際に累積カウントを計測、フラグがONになった時に無音区間検出をしたら喋る。フラグがOFFの時は、無音区間を検出してもパスする。という単純な仕組みです。ランダムでVADを飛ばすケースを発生させることで、単なるVADの会話に緩急を与えたいと考えて実装しました。
ただ、実際は全体的なエンジニアリングのレベルが低く、期待するような結果は出ていません。単に2でも5でもなく、VADだと感じられるほどの規則性が無く、ランダムで喋っているようにしか見えなければ、それは私の未熟でございます。
B動画はエンターキーを私が押してしげおくんが話すという仕組みです。コンソール上でLLM返答が確認できた後、タイミングでエンターを押しています。実際は通信がかなり不安定だったため、生成待ちが長くてあまりテンポは良くないですが、それでもA動画と比べると発話タイミングの「間」が良くなったと感じていただけないでしょうか?(「向上した」という前提で進めさせていただきます…申し訳ありません。)
「分析その4:話者交替と人間的個性について」
AIで音声応答をする際に、通常はVAD、つまり「音」を前提として「音」が途切れた時を「発話終了」と判断し、「終了したのだから次にAIが話す」というロジックが、AIでの音声応答の王道ロジックであり、もはや固定概念であると言ってもいいくらいの考え方かと思います。
しかし人間の対話においては、根本的に「喋り終わったから話す」という考え方自体が不自然というか、そもそも「いつ喋るか」というのは相手に合わせる事というよりも、究極的には「自分が話したいから話す」が正しいと言えます。もちろん、通常は無音を回避しようとしたり、自然なキャッチボールを指向しますので、相手ありきである可能性は高いのですが、究極的には「相手が喋り終わった」から「自分が喋らないといけない」というわけではない、ということはご理解いただけると思います。
これまでのネウロ様の話者交替の多彩さや、作為性をご覧いただけると、少なくともvedal氏はこの部分にフォーカスをしていること、重要性を感じているということだけはご理解いただけるかと思います。それはすなわち「クオリティ」という部分に繋がっていると考えない限り、フォーカスする理由にはならないので、この部分はクオリティに影響があるものと考えてよろしいかと思います。
抽象的な説明であるため、具体例を挙げてご説明します。以下のリンクをご参照下さい。
【無音区間の多い対話例】
1つ目は、両名とも稀代の音楽家と言える米津玄師氏と常田大希氏の対談の動画です。
両者とも音楽家ということで、口数は少なく、独特の雰囲気と間があり、端的に言うと「無音区間」がとても多いしゃべり方をしています。そのため、どちらか一方がVAD処理、とした場合、このような会話自体が成立しない(所々で返答してしまう)と思われます。
5:23
常田「おれも出るってこと完全に忘れてたから… それを……知ったときには、色々と監督に…(2.5sec)…あのー、お願いはしましたけどね。」
この2.5秒の間はVADだとさすがに返答してしまうでしょう。
11:09
A_米津「…食い終わった皿みたいのをパッと見たら、もう、耳だけ全部残っているの」
B_常田「(笑)」
C_米津「おー海賊の食い方じゃねえかよこれ」
レコーディング中におなかが減って…というような会話からの流れで、Aで米津氏が「オチ」的なところを言った後、Bで常田氏は含み笑いのみ、Cで米津氏が更に被せています。
AとBの間は無音区間も発生しており、システム的に言うと「話者交替」のタイミングが発生し、Bで何かを「言ってしまう」可能性が高いということになります。
実際の映像ではBで含み笑いだけ、というのはノンバーバルコミュニケーションではあるので、厳密に言うと返答をしていると言えるのかもしれませんが、少なくとも明確な文章返答(テキスト情報)ではない、となります。
体感的な意見ですが流れ的にはBでは何かツッコミなり恥じらいなり(「いいだろ別に!」とか)を入れる、ということがあってもよさそうな流れですが、常田氏の個性、間の取り方、としてとても印象的であり、自然であると感じられないでしょうか。
これをシステム(ロジック)で実行する、ということがいかに難しいか、少なくとも無音区間の検出、という音を基準としたロジックだけでは実現しない個性、雰囲気であることはご理解いただけるかと思います。
【無音区間がない対話例】
イチローPOST 柳井社長×イチローさん対談 フルバージョン(46分)
1:28
イチ「言わないことで主張をしてるつもりが海外では…」
柳井「通用しないのよ、(イチ:それがなかなか伝わらないですかね…)みんなねえアメリカ人ねえ、バンバンバンバン言って、出来ないことまで言うでしょう…」
3:10
イチ「…新幹線、飛行機、そのストレスは」
柳井「それとね…(イチ:全然違います)」
柳井「日本のジャーナリズムがくだらないこと…」
イチロー氏が話し終わる前に柳井氏が話しを続けて、イチロー氏と被ってしまう、という箇所がほかにも多数存在します。強い信念と自信を明確な言葉で語るタイプの両名であるため、雄弁さ、言葉の多さが特徴的な個性になるかと思います。前例とは真逆で、無音区間が無い、話者交替が果たしてどこで発生しているのか不明瞭で、音がシンクロする状態が多数発生するということで、これもまたVADシステムで実現することは難しい会話例だと言えると思いますが、こういう議論や会話もまた、ある意味では人を強く引き付ける会話の一例であると言えます。
両極端な会話例ですが、そのどちらも、話者の個性、お互いの間(ま)、そのどれもが自然であり、そして見る者に対して強い印象を与える会話であることはご理解いただけたのではないでしょうか(もちろん好き嫌いはありますが…)。
このような「印象を与える」という部分こそが、コンテンツ的な意味における「魅力」であって、これを実現できないと、コンテンツ的な意味における「AI-Vtuber」としてのクオリティを高めることが困難である、従ってVADだけではこの問題に太刀打ちが出来ない、と考えています。
「結論:なんだか分からないが、ネウロ様の話者交替は凄い!」
前回と同じ結論で恐縮なのですが、人力かシステムか、その両方か、真相を解明することはできませんでしたが、話者交替についてvedal氏がフォーカスし、使い分けを行っていた、その結果として、現状の動画クオリティに大きな影響を与えており、結論としてはクオリティ向上につながっている(だろう)、それが人気の下支えなのではないか、ということでいったんの結論としてまとめさせて頂ければ幸いです。
現在はVAD・VAPの進化によって、自然なタイミングの認識技術は向上していますし、次の発話までのディレイタイムもどんどん縮小されていて、もはや単なる1対1の音声応答であれば、人間と聞き間違うかと思うような技術水準に達していると思います。その際たるものが、OpenAIの「advanced voice mode」であり、デモ映像を見たときに、私も戦慄を覚えました。
しかし、その後APIが公開され、実験を進めるうちに、「話者交替」の部分については、まだ「advanced voice mode」でも通常のVAD・VAPを超える機能は入っていないことを把握しました。文脈理解、表情把握などが入るとさらに自然になると思いますが、今のところそこまでには至っていないようです。
「いつ喋るか?」というテーマは、単なる音声のあるなし、では決定出来ない、もっと根源的な、個性や人格と言われる領域に達する部分もあり、つまりこの領域までをシステム的に実行するということは、「AGI」でないと難しいのではないか?と思いつつも、ネウロ様にも見られるように、印象を決定する重要な部分であることに変わりはありませんので、人力であったとしても、システムであったとしても、この部分にフォーカスし、作りこみを進めることが、AI-Vtuberのクオリティアップ(個性を感じさせるという意味)において重要だ、ということは言えるのかなと思っております。同時に対話型AIを社会実装する際においても重要なポイントとなると思っています。
技術的な研究は私の範疇外ですので、これからもっと凄いシステムがどなたかから提供されることを祈りつつ、自分に出来る範囲でこの部分へのチャレンジを続けたいと考えます。
以上、大変な長文となり恐縮ですが、「3:コンテンツ理解」については次の記事でお伝えできればと思います。
お付き合いありがとうございました。