お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

LINEで4Gamerアカウントを登録
[CEDEC 2023]AIが「感情を読み取る」ことは可能なのか。自然言語処理と音声解析によるアプローチが解説されたCygamesのセッション
特集記事一覧
注目のレビュー
注目のムービー

メディアパートナー

印刷2023/09/01 20:40

イベント

[CEDEC 2023]AIが「感情を読み取る」ことは可能なのか。自然言語処理と音声解析によるアプローチが解説されたCygamesのセッション

 ゲーム開発者会議のCEDEC 2023で,Cygamesのゲームエンジニアである立福 寛氏によるセッション「AIによる自然言語処理・音声解析を用いたゲーム内会話パートの感情分析への取り組み」が行われた。

 セリフのテキストやボイスデータから,AIに感情を読み取らせるという,興味深い試みが解説されたセッションの模様をレポートしよう。

立福 寛氏
画像集 No.001のサムネイル画像 / [CEDEC 2023]AIが「感情を読み取る」ことは可能なのか。自然言語処理と音声解析によるアプローチが解説されたCygamesのセッション

 立福氏はCygamesの開発運営支援部署にいるとのことで,今回の取り組みのきっかけは,ゲームのストーリーパートのスクリプト作成を効率化したい,という社内からの依頼だった。

 ストーリーパートのスクリプトとは,登場するキャラクターのセリフや表情などを指定し,制御するもの。
 依頼の具体的な内容は,作業担当者が1つずつ行っているキャラクターの表情設定を,AIで自動的に行えないか,というものだった。

セリフに合わせて切り替わる表情を1つずつ設定していく細かい作業
画像集 No.002のサムネイル画像 / [CEDEC 2023]AIが「感情を読み取る」ことは可能なのか。自然言語処理と音声解析によるアプローチが解説されたCygamesのセッション

 それを受けて立福氏は,シナリオ(テキスト)や音声データをAIに入力し,感情に適した表情の設定を出力してもらう,というシステムを作ろうと決めた。

画像集 No.003のサムネイル画像 / [CEDEC 2023]AIが「感情を読み取る」ことは可能なのか。自然言語処理と音声解析によるアプローチが解説されたCygamesのセッション

 具体的には,会話文のテキストを句読点や記号のところで区切ったうえで,それぞれに「標準」(普段の表情)「喜び」「悲しみ」「怒り」「照れ」という5種類の表情(基本感情)を設定し,出力することを目標とする。
 実際のゲームでは,基本感情に加えてキャラクターごとのバリエーションもあるのだが,今回の効率化においては,この5種類が対象。基本感情以外のものはすべて「標準」として扱う。
 また,立福氏が「おおざっぱに分類したときの結果も知りたい」ということで,「標準」「ポジティブ(喜び・照れ)」「ネガティブ(悲しみ・怒り)」の3種類に分類する場合についてもテストが行われた。

感情認識の対象となるのは会話のみで,データは1行(ストーリーパートの進行単位)ずつに分ける
画像集 No.005のサムネイル画像 / [CEDEC 2023]AIが「感情を読み取る」ことは可能なのか。自然言語処理と音声解析によるアプローチが解説されたCygamesのセッション
画像集 No.004のサムネイル画像 / [CEDEC 2023]AIが「感情を読み取る」ことは可能なのか。自然言語処理と音声解析によるアプローチが解説されたCygamesのセッション


自然言語処理でのアプローチ


 シナリオと音声データを使うということで,AIが行うのは自然言語処理と音声認識ということになる。
 まずは自然言語処理についての取り組みが紹介された。
 
 立福氏はまず,「感情分析とは,テキストの部分部分に感情の属性を付けること」だと考え,「固有表現抽出タスク」を試してみることにした。これは例えば「株式会社Cygamesの所在地は東京です」というテキストを入力すると,「株式会社Cygames」に「会社名」,「東京」に「地名」といった属性が割り当てられて出力されるもの。
 これを応用して,「はい。よろしくお願いします!」というテキストを入力したら,「はい。」に「標準」,「よろしくお願いします!」に「喜び」の属性が付けられるようにできないか,というわけだ。

画像集 No.006のサムネイル画像 / [CEDEC 2023]AIが「感情を読み取る」ことは可能なのか。自然言語処理と音声解析によるアプローチが解説されたCygamesのセッション

 だが,実際にAIに学習させたうえでのテストは,うまくいかなかった。
 感情判定の精度が低いのも問題だったが,属性の割り当て範囲が文の一部だけだったり,句読点をまたいでしまったりと,想定と違っていたのも大きかったという。
 属性の割り当て範囲を人間側から指定することはできないため,固有表現抽出タスクはここであきらめることになった。

画像集 No.007のサムネイル画像 / [CEDEC 2023]AIが「感情を読み取る」ことは可能なのか。自然言語処理と音声解析によるアプローチが解説されたCygamesのセッション

 この結果を受けて,立福氏は「そもそもAIではどれくらいの感情分析できるのか」ということを確認するべきだと考えた。そのため,(最終的に実装する)句読点や記号区切りの単位ではなく,1行ごとでの処理を試し,それがうまくいったら単位を細かくしていくことにしたという。

画像集 No.008のサムネイル画像 / [CEDEC 2023]AIが「感情を読み取る」ことは可能なのか。自然言語処理と音声解析によるアプローチが解説されたCygamesのセッション

 そのうえで立福氏が次に試したのは,シナリオの1行を感情ごとに分類する「文章分類タスク」。もちろん1行の中に複数の感情が入ることもあるため,分類は「標準のみ」「標準+喜び」「標準+悲しみ」「標準+ポジティブ(喜び+照れ)」「標準+ネガティブ(悲しみ+怒り)」の5種類とした。
 おおざっぱな分類の場合は「標準のみ」「標準+ポジティブ(喜び+照れ)」「標準+ネガティブ(悲しみ+怒り)」の3種類となる。

画像集 No.009のサムネイル画像 / [CEDEC 2023]AIが「感情を読み取る」ことは可能なのか。自然言語処理と音声解析によるアプローチが解説されたCygamesのセッション

 これをGoogleが開発した自然言語処理モデル「BERT」で試したところ,5種類での正解率は49%だったが,3種類では69%となった。まだ5種類での精度に問題はあるが,立福氏は「AIによる感情認識は可能で,ツールとしても使えそう」という手応えを得たという。

左が5種類に分類したときのデータの比率で,右は正解率を表す混同行列(予測と実際の結果の組み分けを表にまとめたもの)。「標準のみ」データを左から見ていくと,40%(0.40)が正解だったが,24%を「標準+喜び」,18%を「標準+悲しみ」と誤判定した,ということを表している。つまり,左上から右下の対角線にあたるマスが濃い色になっていれば,全体的に高い正解率ということになる
画像集 No.010のサムネイル画像 / [CEDEC 2023]AIが「感情を読み取る」ことは可能なのか。自然言語処理と音声解析によるアプローチが解説されたCygamesのセッション

3種類の混同行列は,きれいな対角線ができている
画像集 No.011のサムネイル画像 / [CEDEC 2023]AIが「感情を読み取る」ことは可能なのか。自然言語処理と音声解析によるアプローチが解説されたCygamesのセッション

学習用データを作る際には,用意したデータを少しだけ変える「水増し」を行ったが,精度は上がらなかったという
画像集 No.012のサムネイル画像 / [CEDEC 2023]AIが「感情を読み取る」ことは可能なのか。自然言語処理と音声解析によるアプローチが解説されたCygamesのセッション

 1行ごとの処理でひとまず成果が得られたので,そのまま句読点単位での処理も試したが,精度は下がってしまったとのこと。
 立福氏はこの結果について,単純に対象自体の文字数が減る(情報量が減る)だけでなく,前後の文章の情報もなくなるため,判断がつかなくなることが原因だとした。

画像集 No.013のサムネイル画像 / [CEDEC 2023]AIが「感情を読み取る」ことは可能なのか。自然言語処理と音声解析によるアプローチが解説されたCygamesのセッション

 違うアプローチが必要だと考えた立福氏は,次に「質問応答タスク」を試すことにした。
 これは,コンテキストと質問から回答を返すタスクだ。例えば,「伊藤博文は日本の初代内閣総理大臣です」というコンテキストと「日本の最初の内閣総理大臣は誰ですか?」という質問を入力すると,「伊藤博文」という回答を返してくれる。

 これを応用して,感情を求めたい文章+前後の文章をコンテキスト,感情を求めたい文章を質問とし,求めたい感情を回答してもらうのが狙いだ。例としては,コンテキストとして「今日は、おすすめの公園に、連れて行くね」という文章を渡したうえで,「『おすすめの公園に』の感情は?」と質問すれば「標準」が,「『連れていくね』の感情は?」と質問すれば「喜び」が返ってくるという感じだ。

画像集 No.014のサムネイル画像 / [CEDEC 2023]AIが「感情を読み取る」ことは可能なのか。自然言語処理と音声解析によるアプローチが解説されたCygamesのセッション

 そして,立福氏はここにもうひと工夫を加えた。

 質問応答タスクには「抽出型」「生成型」の2種類がある。名前の通り,抽出型はコンテキストの文中から回答を抽出し,生成型は回答の文章を新たに作成するのだが,今回の感情分析は,5種類の感情のどれかを返してもらうだけでいいので,抽出型との相性のほうがよさそうと立福氏は判断した。
 そこで,コンテキストの文章の頭に,感情と対応した抽出用の番号を付けることにしたという。0なら「標準」,1なら「喜び」といった具合だ。
 ごく希に,数値以外のものが抽出されてしまうこともあったが,その場合は「標準」として処理することにしたそうだ。

実際に入力するコンテキストは「0 1 2 3 4:今日は、おすすめの公園に、連れて行くね」といった感じになる
画像集 No.015のサムネイル画像 / [CEDEC 2023]AIが「感情を読み取る」ことは可能なのか。自然言語処理と音声解析によるアプローチが解説されたCygamesのセッション

 これで学習を行いテストした結果,5種類では66%,3種類では70%という正解率になった。ツールとして十分に使える数字だ。
 「喜び」「悲しみ」は精度が高い一方,「怒り」「照れ」は低くなっているが,立福氏はこれについて,「怒り」「照れ」の学習用データが少なく,学習量が少ないことが影響したのではないかと推測した。

画像集 No.016のサムネイル画像 / [CEDEC 2023]AIが「感情を読み取る」ことは可能なのか。自然言語処理と音声解析によるアプローチが解説されたCygamesのセッション

精度が上がった理由には,基本感情以外のデータを利用するといった工夫もあった
画像集 No.017のサムネイル画像 / [CEDEC 2023]AIが「感情を読み取る」ことは可能なのか。自然言語処理と音声解析によるアプローチが解説されたCygamesのセッション

 また,立福氏は今回の講演を行うにあたって,そもそも感情の判別は人間にとっても難しいのではないかと思い,プロジェクト外のエンジニア3人の協力を得て,実際にテストしてみたとのこと。

 その結果,なんと人間の正解率は57%で,質問応答タスクよりも低い結果となってしまった。また,人間もAI同様に「怒り」「照れ」の正解率が低くなったという。

画像集 No.018のサムネイル画像 / [CEDEC 2023]AIが「感情を読み取る」ことは可能なのか。自然言語処理と音声解析によるアプローチが解説されたCygamesのセッション


音声解析によるアプローチ


 続いては音声解析AIでの手法が紹介された。
 立福氏はまず,有料で利用できる音声での感情分析システムを見つけて使ってみたが,元気のいい「おはようございます!」が「悲しみ」や「怒り」と判定されてしまうなど,精度は低く,使えるレベルではなかったとのこと。

 そこでAIのモデルを自分で探すことになったのだが,ちょうど別件でCNN(Convolutional Neural Networks)という深層学習の仕組みを利用した効果音の分類を行っていたため,「音声による感情分析は,音声の分類と考えられるのでは」と,その仕組みを流用することを思いついたという。

 これは音声から特徴量を求め,それをCNNで分類するもの。例えば電話のベルが鳴った後に会話が入る音声データを入力すると,「会話:0.89」「電話のベル:0.75」「室内,小さい部屋:0.23」といった類似度を返してくれる。
 とは言え,あくまで効果音用なので,立福氏としては期待が大きかったわけではないようだ。

画像集 No.019のサムネイル画像 / [CEDEC 2023]AIが「感情を読み取る」ことは可能なのか。自然言語処理と音声解析によるアプローチが解説されたCygamesのセッション

 学習用データの作成するために,句読点ごとに音声ファイルを分ける必要があったが,ゲーム中に適切なタイミングで文字を表示させるためのデータを利用し,「ある程度の精度」で切り出せたという。うまく切り出せていない部分が多少あることは承知のうえで,まずはテストをしてみたようだ。

 その結果,正解率は30.8%と,かなり低くなってしまった。ある程度予想していたことではあったが,自然言語処理の作業も同時進行だったため,いったん音声認識の可能性を探ることは止めたという。

画像集 No.020のサムネイル画像 / [CEDEC 2023]AIが「感情を読み取る」ことは可能なのか。自然言語処理と音声解析によるアプローチが解説されたCygamesのセッション

 しばらくしてから,利用できそうなものを見つけたことで,作業を再開した。それが,Meta(旧Facebook)のAI研究機関が発表した音声認識フレームワークであるWav2Vec2を利用した「SpeechBrain」という音声解析のパッケージだ。前述のCNNで使用したデータをひとまず入れてみたところ,高い精度が出たので,学習用データも,OpenAIが公開した音声認識モデル「Whisper」「WhisperX」を利用してしっかり作り直した。

 そうしてテストした結果,正解率は5種類で63%,3種類では66%となった。「標準」「喜び」「悲しみ」は高く,「怒り」「照れ」が低い傾向は,自然言語処理と同様だ。ただ,自然言語処理は対象の前後の文章も渡しているのに対し,音声認識では該当部分のデータだけで判別しているため,その点ではまだ向上が期待できるとのことだ。

画像集 No.021のサムネイル画像 / [CEDEC 2023]AIが「感情を読み取る」ことは可能なのか。自然言語処理と音声解析によるアプローチが解説されたCygamesのセッション


開発現場に導入


 自然言語処理での正解率は66%,音声解析は63%と,どちらも一定の成果を得て,いよいよツールへ実装することに。立福氏は当初,自然言語処理と音声認識の両方を使う予定だったそうだが,最終的にツールへの実装は自然言語処理のみとした。
 実際に導入されると,その効果は大きく,スクリプトチーム全体で10%程度の効率化が実現したそうだ。もちろんAIがつけた表情がすべて正しいとは限らないので,最終的には人による調整が必要になるが,それでも作業負担は大きく減ったわけだ。

 立福氏は,AI以外の部分でも効率化を図っている。以前は,「シナリオ執筆ツールからシナリオをダウンロード」→「音声ファイルを共有フォルダからコピー」→「コマンドラインツールを実行」という手順を踏むとスクリプトのひな形が作成され,そこに担当者が表情を追加していくという流れだったが,立福氏が開発したツールは,Jenkins(ソフトウェア開発の自動化支援ツール)でシナリオのIDを指定して実行するだけで,AIによる表情の指定が入ったスクリプトが作成される仕組みになっている。

画像集 No.022のサムネイル画像 / [CEDEC 2023]AIが「感情を読み取る」ことは可能なのか。自然言語処理と音声解析によるアプローチが解説されたCygamesのセッション
画像集 No.023のサムネイル画像 / [CEDEC 2023]AIが「感情を読み取る」ことは可能なのか。自然言語処理と音声解析によるアプローチが解説されたCygamesのセッション

 AIによる感情認識はもちろんだが,チームとしては煩雑化していた手順が単純化されたという改善も大きく,新たに加わったメンバーが作業に慣れるまでの時間も大幅に短縮されたそうだ。
 つまりチームにとってはJenkinsのインパクトが大きかったようで,AIの実装に苦心した立福氏としては「ちょっと残念」な気持ちもあるそうだが,「効率化できたのだからよし」として,セッションを終えた。

1シナリオの処理にかかる時間は5〜10分程度だが,これは音声のダウンロードが大きな割合を占めており,AIの処理は1〜2分程度とのこと
画像集 No.024のサムネイル画像 / [CEDEC 2023]AIが「感情を読み取る」ことは可能なのか。自然言語処理と音声解析によるアプローチが解説されたCygamesのセッション

今回実装できなかった音声認識については,いずれ時期を見て再チャレンジしたいとのこと
画像集 No.025のサムネイル画像 / [CEDEC 2023]AIが「感情を読み取る」ことは可能なのか。自然言語処理と音声解析によるアプローチが解説されたCygamesのセッション
画像集 No.026のサムネイル画像 / [CEDEC 2023]AIが「感情を読み取る」ことは可能なのか。自然言語処理と音声解析によるアプローチが解説されたCygamesのセッション

4Gamerの「CEDEC 2023」記事一覧

  • この記事のURL:
4Gamer.net最新情報
プラットフォーム別新着記事
総合新着記事
企画記事
スペシャルコンテンツ
注目記事ランキング
集計:10月14日〜10月15日