😊

顔出し不要の動画生成フロー:AIアバターの「違和感」を減らすテキスト前処理と技術的考察

に公開

顔出し不要の動画生成フロー:AIアバターの「違和感」を減らすテキスト前処理と技術的考察

最近、自社プロダクトの解説動画やSNS向けショート動画の生成を、エンジニアリングの力で自動化・効率化するタスクに取り組んでいます。

毎回カメラを回し、照明をセッティングし、録音環境を整えるのは物理的なコストが高すぎます。そこで技術的な代替案として検証したのが、テキストから動画を生成する AI Talking Avatar(主にショート動画向けの人物アバター)の活用でした。

最初は「どうせ不自然なリップシンクになるのでは?」と懐疑的でしたが、実際にワークフローに組み込んで検証を重ねる中で、動画の「無機質感」を消すためには、AIモデルそのものよりも、入力するテキスト(前処理)のエンジニアリングが重要であることに気づきました。

最初にハマった罠:長文テキストによる「AI感」の増幅

最初に組んだパイプラインでは、ブログやマニュアルの長文テキストをそのままAPIや生成ツールに流し込んでいました。結果として出力された動画は、非常に不自然なものになりました。

原因はシンプルで、リップシンク(口の動き)の精度は、ベースとなるTTS(Text-to-Speech)の音声データに強く依存するからです。

特に日本語のTTSモデルにおいて、以下のようなテキストを処理させると、イントネーション(ピッチアクセント)の推論が崩壊しやすくなります。

  1. 一文が長すぎる(依存関係の解析が複雑になる)
  2. 接続詞による修飾が連続する
  3. 専門用語やカタカナ語が密集している

GoogleのAI Blogの音声合成に関する研究(Text-to-Speech Research)などでも言及されていますが、TTSモデルが最も自然な推論を行えるのは、日常会話に近い「会話調の短いチャンク(意味の塊)」です。

解決策:TTS向けテキスト前処理(Text Preprocessing)の導入

動画の自然さを向上させるため、テキストをそのまま流し込むのをやめ、前処理のロジックを挟むようにしました。

以下は、Pythonで実装した簡易的なテキスト前処理のイメージです。

import re

def preprocess_for_avatar_tts(text):
    # 1. 一文を短く強制的に区切る(句点で改行を入れ、AIに「間(ポーズ)」を認識させる)
    text = re.sub(r'([。!?])', r'\1\n', text)
    
    # 2. 読点を多めに挿入し、イントネーションの崩れを防ぐ
    text = re.sub(r'(ですが|しかし|ので|から)?', r'\1', text)
    
    # 3. カタカナ語の連続を避ける(または意図的にひらがなに開いてアクセントを平坦化する)
    # 例: "ハイスペックマイクロフォン" -> "ハイスペックな、マイク"
    text = apply_custom_dictionary(text)
    
    return text

例えば、
「本日は新しいマイクのテストを行いましたが思いのほか低音が綺麗に収録されており編集作業も非常に楽でした」
という一文を、

「今日は新しいマイクを試しました。思ったより低音が綺麗で、編集も楽でした。」
と短く区切り、口語体に変換してから処理させると、映像と音声のシンクロ率が劇的に向上します。

「人っぽさ」は完璧さではなく「ノイズ」にある

検証の過程で面白かった技術的な発見は、SSML(音声合成マークアップ言語)等で発音を「完璧に調整しすぎない」ほうが、結果的にSNS等で人間らしく見えるということです。

  • 意図的にポーズ(間)を長めに取る
  • テロップの表示タイミングをミリ秒単位でわざと少しズラす

このように、システム側に少しの「雑さ(ノイズ)」を許容させることで、急に生身の人間が話しているようなリアルさが生まれます。

最近では、企業向けのよりフォーマルな解説動画に適した AI Digital Presenter 系の技術も実用レベルに達しています。用途に合わせてこれらのモデルを使い分ける際も、やはり「テキストにいかに人間らしい間を持たせるか」が最大の鍵になります。

各種ツールの検証と所感

ワークフロー構築にあたり、複数のSaaSやAPIを比較しました。その中で、フロントエンドの操作が軽く、テスト環境としてテキストの微調整とレンダリング結果の差分を素早く確認しやすかったのが Adsmaker.ai でした。こういったツールをサンドボックスとして使い、プロンプトの最適な「クセ」を見つけるのは有効な手段です。

まとめ

AI動画生成の自動化は、単に「テキストを投げれば完成する」という魔法ではありません。

日本語という複雑な言語仕様において、AIアバターに自然な振る舞いをさせるためには、「AIが処理しやすいデータ構造(短い会話調テキスト)に変換してあげる」というエンジニアリングの視点が不可欠です。

完璧なAI動画を目指すのではなく、「人間っぽく崩すためのロジック」をどう実装するか。動画生成AIをプロダクトに組み込もうとしている方の参考になれば幸いです。

Discussion