Skip to content

M-gen/LipWI2VJs

Repository files navigation

LipWI2Vjs

MFCCベースのリップシンク解析ツール。音声ファイルを解析して、リップシンクアニメーション用の母音タイミングデータを出力します。

仕組み

  1. WAV音声ファイルを読み込み
  2. 各フレームのMFCC(メル周波数ケプストラム係数)を抽出
  3. 事前キャリブレーションされた母音プロファイル(A, I, U, E, O, N)と比較
  4. 母音タイミングデータをJSONで出力
  5. (オプション)口画像を使って動画を生成

uLipSync / wLipSync と同じアプローチを採用しています。

インストール

Node.js(音声解析)

npm install

Python(動画生成)

pip install -r requirements.txt

使い方

1. 音声解析(Node.js)

node lip_sync.js <音声.wav>

<音声>_lipsync.json が生成されます。

2. 動画生成(Python)

python make_video.py -j <音声>_lipsync.json -i ./mouth_images -o output.mp4

サンプルで試す

# 解析
node lip_sync.js sample.wav

# 動画生成
python make_video.py -j sample_lipsync.json -i ./mouth_images -o sample_output.mp4

出力形式(JSON)

{
  "audioPath": "/path/to/voice.wav",
  "sampleRate": 44100,
  "duration": 37.07,
  "frameCount": 3191,
  "hopSize": 512,
  "frames": [
    { "time": 0.000, "phoneme": "N", "rms": 0.0001 },
    { "time": 0.021, "phoneme": "A", "rms": 0.0523 },
    ...
  ]
}

母音(Phoneme)

Phoneme 口の形 サンプル
A 大きく開く(あ) A
I 横に広げる(い) I
U すぼめる(う) U
E 中間(え) E
O 丸く開く(お) O
N 閉じる(無音) N

口画像

mouth_images/ フォルダに以下の画像を配置:

  • a.png - 「あ」の口
  • i.png - 「い」の口
  • u.png - 「う」の口
  • e.png - 「え」の口
  • o.png - 「お」の口
  • n.png - 閉じた口(無音時)

※すべての画像は同じサイズにしてください

API(Node.js)

const { analyzeLipSync, saveResult } = require('./lip_sync');

const result = await analyzeLipSync('voice.wav', {
  volumeThreshold: 0.005,  // 無音判定の閾値
  frameSize: 1024,         // FFTフレームサイズ
  hopSize: 512             // フレーム間のホップサイズ
});

saveResult(result, 'output.json');

依存ライブラリ

Node.js

  • meyda - 音声特徴量抽出(MFCC)
  • wav-decoder - WAVファイルデコード

Python

  • opencv-python - 画像読み込み
  • moviepy - 動画生成

プロファイル

profile.json には各母音のキャリブレーション済みMFCCデータが含まれています。このデータは wLipSync のサンプルから取得しました。

特定の声に対してより高い精度が必要な場合は、Unityの uLipSync でカスタムプロファイルを作成できます。

ライセンス

MIT License

プロファイルデータ (profile.json):

  • Copyright (c) 2021 hecomi (uLipSync)
  • Copyright (c) 2024 Noeri Huisman (wLipSync)

About

No description, website, or topics provided.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors