diff --git a/.gitignore b/.gitignore index a6d404b..810f8cf 100644 --- a/.gitignore +++ b/.gitignore @@ -8,10 +8,18 @@ voicevox-remotion-template/public/lipsync/raw/ voicevox-remotion-template/src/generated/lipsync/manifest.json voicevox-remotion-template/src/generated/lipsync/*.mouth.json +!voicevox-remotion-template/public/lipsync/raw/ +voicevox-remotion-template/public/lipsync/raw/* +!voicevox-remotion-template/public/lipsync/raw/zundamon-rework-standee-demo-zunda-001.rhubarb.json +!voicevox-remotion-template/src/generated/lipsync/manifest.json +!voicevox-remotion-template/src/generated/lipsync/zundamon-rework-standee-demo-zunda-001.mouth.json # Generated VOICEVOX audio for local scenario work voicevox-remotion-template/public/audio/**/*.wav voicevox-remotion-template/public/audio/**/lines/ +!voicevox-remotion-template/public/audio/zundamon-rework-standee-demo/ +!voicevox-remotion-template/public/audio/zundamon-rework-standee-demo/lines/ +!voicevox-remotion-template/public/audio/zundamon-rework-standee-demo/lines/zundamon-rework-standee-demo-zunda-001.wav # Build artifacts and caches dist/ diff --git a/voicevox-remotion-template/README.md b/voicevox-remotion-template/README.md index fe23527..5d97048 100644 --- a/voicevox-remotion-template/README.md +++ b/voicevox-remotion-template/README.md @@ -67,6 +67,12 @@ npm run voice:generate:pizza-oven-project-01 ``` +ずんだもん別バージョン立ち絵デモの音声を生成する場合は、次を実行します。 + +```bash +npm run voice:generate:zundamon-rework-standee-demo +``` + ### 5. 口パク指示データを生成 Rhubarb Lip Sync CLI を使い、VOICEVOX 音声から口形タイムラインを生成します。 @@ -104,6 +110,7 @@ npm run lipsync:generate:yukkuri-composition npm run lipsync:generate:pizza-kiln npm run lipsync:generate:pizza-oven-project-01 +npm run lipsync:generate:zundamon-rework-standee-demo ``` 処理順は `1. npm run voice:generate:all` または対象別の `voice:generate:*`、 @@ -163,6 +170,12 @@ - 映像の構成: `src/yukkuri-composition/index.tsx` - 立ち絵セット: `src/standee-sets.ts` +## 収録コンポジション +- `YukkuriZundamon`: ずんだもんと小夜のゆっくり解説サンプル +- `PizzaKilnSayo`: 小夜のピザ窯サンプル +- `PizzaOvenProject01`: ピザ窯制作記録サンプル +- `ZundamonReworkStandeeDemo`: `zundamon-ohnegus-rework-baby` の全表情表示と default 表情リップシンク確認デモ + ## 字幕方針 本テンプレートは、短編 VOICEVOX ドラマ動画や、実写映像を背景にした解説動画での利用を主用途としています。 @@ -200,6 +213,65 @@ 口パク画像は、立ち絵本体と同じキャンバス寸法・同じ位置合わせにしてください。 口だけが差分として重なる前提で、`LipSyncedStandeeImage` が本体画像の上に同じサイズで重ねます。 +素材ファイル名は、環境差による参照トラブルを避けるため、英数字・ハイフン・アンダースコア・ドットを基本にします。 +表情や口形の意味は、ファイル名・ディレクトリ名・必要に応じた管理用データのどれかで追えるようにしてください。 + +### 1.1. 表情と口形の管理 +現在の実装では、1 つの立ち絵ベースに対して `mouthImageDir` の中に次の 7 種類の口形画像を置く構成を標準とします。 + +```txt +a.png +i.png +u.png +e.png +o.png +closed.png +rest.png +``` + +Rhubarb が出力する `X` / `A` / `B` / `C` / `D` / `E` / `F` / `G` / `H` は、 +`src/lipsync/rhubarb-map.ts` と `scripts/lipsync-utils.js` で上記の抽象口形へ変換します。 +この変換は「音声解析結果を日本語向けの口形名へ丸める」ための共通ルールとして扱い、 +表情差分や特定素材のファイル名を直接管理する場所にはしません。 + +表情ベースが複数ある素材では、表情ごとに同じ抽象口形をそろえるのを基本方針とします。 +たとえば `default`、`blink`、`confident` のような表情がある場合は、それぞれの表情に +`a` / `i` / `u` / `e` / `o` / `closed` / `rest` 相当の画像を持たせます。 +表情側に存在しない口形がある場合は、`rest` または近い閉口画像へフォールバックできるようにします。 + +フル画像として表情と口形が一体化している素材は、既存の「本体画像 + 口だけ差分」方式へ無理に分解せず、 +表情 ID と口形 ID の組み合わせで画像を選ぶ素材として扱います。 +現時点では `mouthImageDir/{mouth}.png` の単一表情ベースが実装済みの安定形です。 + +将来的には、複数表情ベースのアバターを次のような形で扱えるように拡張する方針です。 + +```ts +expressions: { + default: { + rest: "image/example/default-rest.png", + closed: "image/example/default-closed.png", + a: "image/example/default-a.png", + i: "image/example/default-i.png", + u: "image/example/default-u.png", + e: "image/example/default-e.png", + o: "image/example/default-o.png", + }, + confident: { + rest: "image/example/confident-rest.png", + closed: "image/example/confident-closed.png", + a: "image/example/confident-a.png", + i: "image/example/confident-i.png", + u: "image/example/confident-u.png", + e: "image/example/confident-e.png", + o: "image/example/confident-o.png", + }, +} +``` + +この形では、口パクタイムラインは従来どおり Rhubarb 由来の抽象口形を返し、 +脚本や演出側が現在の表情 ID を選び、描画側が `expressions[expressionId][mouth]` を参照します。 +これにより、音声解析、表情演出、素材配置を分離して管理できます。 + ### 2. `src/standee-sets.ts` にセットを追加 `standeeSets` に、素材パスと基本レイアウトを追加します。 diff --git a/voicevox-remotion-template/package.json b/voicevox-remotion-template/package.json index 9dc3a48..a556037 100644 --- a/voicevox-remotion-template/package.json +++ b/voicevox-remotion-template/package.json @@ -12,12 +12,14 @@ "lipsync:generate:yukkuri-composition": "node scripts/generate-lipsync.js --project yukkuri-composition", "lipsync:generate:pizza-kiln": "node scripts/generate-lipsync.js --project pizza-kiln", "lipsync:generate:pizza-oven-project-01": "node scripts/generate-lipsync.js --project pizza-oven-project-01", + "lipsync:generate:zundamon-rework-standee-demo": "node scripts/generate-lipsync.js --project zundamon-rework-standee-demo", "test:lipsync": "node --test scripts/lipsync-utils.test.js", "voice:generate": "node scripts/voicevox-generate.js", "voice:generate:all": "node scripts/voicevox-generate.js --all", "voice:generate:yukkuri-composition": "node scripts/voicevox-generate.js --project yukkuri-composition", "voice:generate:pizza-kiln": "node scripts/voicevox-generate.js --project pizza-kiln", - "voice:generate:pizza-oven-project-01": "node scripts/voicevox-generate.js --project pizza-oven-project-01" + "voice:generate:pizza-oven-project-01": "node scripts/voicevox-generate.js --project pizza-oven-project-01", + "voice:generate:zundamon-rework-standee-demo": "node scripts/voicevox-generate.js --project zundamon-rework-standee-demo" }, "dependencies": { "@remotion/google-fonts": "4.0.460", diff --git a/voicevox-remotion-template/public/audio/zundamon-rework-standee-demo/lines/zundamon-rework-standee-demo-zunda-001.wav b/voicevox-remotion-template/public/audio/zundamon-rework-standee-demo/lines/zundamon-rework-standee-demo-zunda-001.wav new file mode 100644 index 0000000..a07e697 --- /dev/null +++ b/voicevox-remotion-template/public/audio/zundamon-rework-standee-demo/lines/zundamon-rework-standee-demo-zunda-001.wav Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby-default-rhubarb-mouths/a.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby-default-rhubarb-mouths/a.png new file mode 100644 index 0000000..25f44ee --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby-default-rhubarb-mouths/a.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby-default-rhubarb-mouths/closed.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby-default-rhubarb-mouths/closed.png new file mode 100644 index 0000000..178c8a9 --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby-default-rhubarb-mouths/closed.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby-default-rhubarb-mouths/e.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby-default-rhubarb-mouths/e.png new file mode 100644 index 0000000..4147470 --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby-default-rhubarb-mouths/e.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby-default-rhubarb-mouths/i.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby-default-rhubarb-mouths/i.png new file mode 100644 index 0000000..86b35f2 --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby-default-rhubarb-mouths/i.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby-default-rhubarb-mouths/o.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby-default-rhubarb-mouths/o.png new file mode 100644 index 0000000..8be8f62 --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby-default-rhubarb-mouths/o.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby-default-rhubarb-mouths/preview-contact-sheet.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby-default-rhubarb-mouths/preview-contact-sheet.png new file mode 100644 index 0000000..8fcee2a --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby-default-rhubarb-mouths/preview-contact-sheet.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby-default-rhubarb-mouths/rest.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby-default-rhubarb-mouths/rest.png new file mode 100644 index 0000000..12edd71 --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby-default-rhubarb-mouths/rest.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby-default-rhubarb-mouths/u.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby-default-rhubarb-mouths/u.png new file mode 100644 index 0000000..35a10f6 --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby-default-rhubarb-mouths/u.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/01-default-a.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/01-default-a.png new file mode 100644 index 0000000..e30a093 --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/01-default-a.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/02-default-i.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/02-default-i.png new file mode 100644 index 0000000..bd09f82 --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/02-default-i.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/03-default-u.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/03-default-u.png new file mode 100644 index 0000000..268528e --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/03-default-u.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/04-default-ni.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/04-default-ni.png new file mode 100644 index 0000000..c82a203 --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/04-default-ni.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/05-default-nihe.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/05-default-nihe.png new file mode 100644 index 0000000..172fff4 --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/05-default-nihe.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/06-default-nniya.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/06-default-nniya.png new file mode 100644 index 0000000..ab5d1cf --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/06-default-nniya.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/07-default-nfuku.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/07-default-nfuku.png new file mode 100644 index 0000000..5d7496a --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/07-default-nfuku.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/08-blink-a.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/08-blink-a.png new file mode 100644 index 0000000..2524a32 --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/08-blink-a.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/09-blink-i.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/09-blink-i.png new file mode 100644 index 0000000..314fcc8 --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/09-blink-i.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/10-blink-u.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/10-blink-u.png new file mode 100644 index 0000000..add5bc0 --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/10-blink-u.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/11-blink-ni.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/11-blink-ni.png new file mode 100644 index 0000000..d6bb005 --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/11-blink-ni.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/12-blink-nihe.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/12-blink-nihe.png new file mode 100644 index 0000000..3cdcd2e --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/12-blink-nihe.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/13-blink-nniya.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/13-blink-nniya.png new file mode 100644 index 0000000..7a0d09c --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/13-blink-nniya.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/14-blink-nfuku.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/14-blink-nfuku.png new file mode 100644 index 0000000..cbf2a0b --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/14-blink-nfuku.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/15-confident-a.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/15-confident-a.png new file mode 100644 index 0000000..f24b690 --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/15-confident-a.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/16-confident-i.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/16-confident-i.png new file mode 100644 index 0000000..fc880cb --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/16-confident-i.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/17-confident-u.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/17-confident-u.png new file mode 100644 index 0000000..30362c8 --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/17-confident-u.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/18-confident-ni.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/18-confident-ni.png new file mode 100644 index 0000000..ece64d5 --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/18-confident-ni.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/19-confident-nihe.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/19-confident-nihe.png new file mode 100644 index 0000000..2a813ef --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/19-confident-nihe.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/20-confident-nniya.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/20-confident-nniya.png new file mode 100644 index 0000000..50755df --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/20-confident-nniya.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/21-confident-nfuku.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/21-confident-nfuku.png new file mode 100644 index 0000000..284a842 --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/21-confident-nfuku.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/22-surprised-a.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/22-surprised-a.png new file mode 100644 index 0000000..0361b4a --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/22-surprised-a.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/23-surprised-i.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/23-surprised-i.png new file mode 100644 index 0000000..87c1f7c --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/23-surprised-i.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/24-surprised-u.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/24-surprised-u.png new file mode 100644 index 0000000..08514b7 --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/24-surprised-u.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/25-surprised-ni.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/25-surprised-ni.png new file mode 100644 index 0000000..85ed276 --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/25-surprised-ni.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/26-surprised-ehe.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/26-surprised-ehe.png new file mode 100644 index 0000000..e4507ad --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/26-surprised-ehe.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/27-surprised-nniya.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/27-surprised-nniya.png new file mode 100644 index 0000000..0408a26 --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/27-surprised-nniya.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/28-surprised-nfuku.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/28-surprised-nfuku.png new file mode 100644 index 0000000..d5a1553 --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/28-surprised-nfuku.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/29-exasperated-a.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/29-exasperated-a.png new file mode 100644 index 0000000..4335781 --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/29-exasperated-a.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/30-exasperated-u.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/30-exasperated-u.png new file mode 100644 index 0000000..e047f80 --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/30-exasperated-u.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/31-exasperated-i.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/31-exasperated-i.png new file mode 100644 index 0000000..21468b0 --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/31-exasperated-i.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/32-exasperated-nniya.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/32-exasperated-nniya.png new file mode 100644 index 0000000..da5391a --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/32-exasperated-nniya.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/33-exasperated-nfuku.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/33-exasperated-nfuku.png new file mode 100644 index 0000000..d6d1f1e --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/33-exasperated-nfuku.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/34-round-eyes-a.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/34-round-eyes-a.png new file mode 100644 index 0000000..d658666 --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/34-round-eyes-a.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/35-round-eyes-n.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/35-round-eyes-n.png new file mode 100644 index 0000000..32f2d75 --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/35-round-eyes-n.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/36-round-eyes-small-a.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/36-round-eyes-small-a.png new file mode 100644 index 0000000..d4f5925 --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/36-round-eyes-small-a.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/37-round-eyes-small-n.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/37-round-eyes-small-n.png new file mode 100644 index 0000000..45916bd --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/37-round-eyes-small-n.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/38-huh-a.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/38-huh-a.png new file mode 100644 index 0000000..b11dee1 --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/38-huh-a.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/39-huh-n.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/39-huh-n.png new file mode 100644 index 0000000..6947330 --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/39-huh-n.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/40-tears-a.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/40-tears-a.png new file mode 100644 index 0000000..8eea2bb --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/40-tears-a.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/41-tears-n.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/41-tears-n.png new file mode 100644 index 0000000..53db38f --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/41-tears-n.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/42-yabe-ahe-a.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/42-yabe-ahe-a.png new file mode 100644 index 0000000..e0c72ee --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/42-yabe-ahe-a.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/43-yabe-ahe-n.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/43-yabe-ahe-n.png new file mode 100644 index 0000000..bf99b03 --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/43-yabe-ahe-n.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/44-nnaa-a.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/44-nnaa-a.png new file mode 100644 index 0000000..12d6cbc --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/44-nnaa-a.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/45-nnaa-n.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/45-nnaa-n.png new file mode 100644 index 0000000..89df93d --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/45-nnaa-n.png Binary files differ diff --git a/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/46-gesu.png b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/46-gesu.png new file mode 100644 index 0000000..712c055 --- /dev/null +++ b/voicevox-remotion-template/public/image/zundamon-ohnegus-rework-baby/46-gesu.png Binary files differ diff --git a/voicevox-remotion-template/public/lipsync/raw/zundamon-rework-standee-demo-zunda-001.rhubarb.json b/voicevox-remotion-template/public/lipsync/raw/zundamon-rework-standee-demo-zunda-001.rhubarb.json new file mode 100644 index 0000000..ae827d1 --- /dev/null +++ b/voicevox-remotion-template/public/lipsync/raw/zundamon-rework-standee-demo-zunda-001.rhubarb.json @@ -0,0 +1,52 @@ +{ + "metadata": { + "soundFile": "/work/voicevox-remotion-template/public/audio/zundamon-rework-standee-demo/lines/zundamon-rework-standee-demo-zunda-001.wav", + "duration": 16.37 + }, + "mouthCues": [ + { "start": 0.00, "end": 0.07, "value": "X" }, + { "start": 0.07, "end": 0.56, "value": "B" }, + { "start": 0.56, "end": 1.72, "value": "X" }, + { "start": 1.72, "end": 1.97, "value": "B" }, + { "start": 1.97, "end": 2.04, "value": "C" }, + { "start": 2.04, "end": 2.11, "value": "B" }, + { "start": 2.11, "end": 3.61, "value": "X" }, + { "start": 3.61, "end": 3.66, "value": "B" }, + { "start": 3.66, "end": 3.70, "value": "C" }, + { "start": 3.70, "end": 3.90, "value": "A" }, + { "start": 3.90, "end": 4.01, "value": "B" }, + { "start": 4.01, "end": 5.38, "value": "X" }, + { "start": 5.38, "end": 5.90, "value": "B" }, + { "start": 5.90, "end": 7.11, "value": "X" }, + { "start": 7.11, "end": 7.16, "value": "B" }, + { "start": 7.16, "end": 7.21, "value": "C" }, + { "start": 7.21, "end": 7.42, "value": "B" }, + { "start": 7.42, "end": 7.49, "value": "C" }, + { "start": 7.49, "end": 8.68, "value": "X" }, + { "start": 8.68, "end": 9.04, "value": "F" }, + { "start": 9.04, "end": 9.65, "value": "X" }, + { "start": 9.65, "end": 9.95, "value": "B" }, + { "start": 9.95, "end": 10.71, "value": "X" }, + { "start": 10.71, "end": 10.78, "value": "B" }, + { "start": 10.78, "end": 10.84, "value": "C" }, + { "start": 10.84, "end": 10.92, "value": "A" }, + { "start": 10.92, "end": 11.04, "value": "B" }, + { "start": 11.04, "end": 11.75, "value": "X" }, + { "start": 11.75, "end": 11.79, "value": "B" }, + { "start": 11.79, "end": 11.90, "value": "C" }, + { "start": 11.90, "end": 11.98, "value": "A" }, + { "start": 11.98, "end": 12.15, "value": "B" }, + { "start": 12.15, "end": 12.74, "value": "X" }, + { "start": 12.74, "end": 13.11, "value": "B" }, + { "start": 13.11, "end": 14.80, "value": "X" }, + { "start": 14.80, "end": 14.88, "value": "B" }, + { "start": 14.88, "end": 15.09, "value": "A" }, + { "start": 15.09, "end": 15.24, "value": "B" }, + { "start": 15.24, "end": 15.72, "value": "A" }, + { "start": 15.72, "end": 15.84, "value": "B" }, + { "start": 15.84, "end": 15.92, "value": "A" }, + { "start": 15.92, "end": 16.15, "value": "F" }, + { "start": 16.15, "end": 16.31, "value": "A" }, + { "start": 16.31, "end": 16.37, "value": "X" } + ] +} diff --git a/voicevox-remotion-template/scripts/generate-lipsync.js b/voicevox-remotion-template/scripts/generate-lipsync.js index 760c46b..925702c 100644 --- a/voicevox-remotion-template/scripts/generate-lipsync.js +++ b/voicevox-remotion-template/scripts/generate-lipsync.js @@ -24,6 +24,10 @@ name: "pizza-oven-project-01", sourceManifest: "src/data/pizza-oven-project-01/voicevox-manifest.json", }, + { + name: "zundamon-rework-standee-demo", + sourceManifest: "src/data/zundamon-rework-standee-demo/voicevox-manifest.json", + }, ]; const lipsyncTargetByName = new Map( diff --git a/voicevox-remotion-template/scripts/voicevox-generate.js b/voicevox-remotion-template/scripts/voicevox-generate.js index 8f0e8b7..dc39d11 100644 --- a/voicevox-remotion-template/scripts/voicevox-generate.js +++ b/voicevox-remotion-template/scripts/voicevox-generate.js @@ -32,6 +32,12 @@ output: "public/audio/pizza-oven-project-01/lines", manifest: "src/data/pizza-oven-project-01/voicevox-manifest.json", }, + { + name: "zundamon-rework-standee-demo", + script: "src/data/zundamon-rework-standee-demo/script.ts", + output: "public/audio/zundamon-rework-standee-demo/lines", + manifest: "src/data/zundamon-rework-standee-demo/voicevox-manifest.json", + }, ]; const voiceTargetByName = new Map( diff --git a/voicevox-remotion-template/src/data/zundamon-rework-standee-demo/characters.ts b/voicevox-remotion-template/src/data/zundamon-rework-standee-demo/characters.ts new file mode 100644 index 0000000..899dd4a --- /dev/null +++ b/voicevox-remotion-template/src/data/zundamon-rework-standee-demo/characters.ts @@ -0,0 +1,31 @@ +import {getStandeeSet, type AvatarDefinition} from "../../standee-sets"; + +export type VoicevoxVoice = Readonly<{ + speakerName: string; + styleName: string; +}>; + +export type CharacterDefinition = Readonly<{ + displayName: string; + voicevox: VoicevoxVoice; + avatar: AvatarDefinition; +}>; + +export const characters = { + zundamon: { + displayName: "ずんだもん", + voicevox: { + speakerName: "ずんだもん", + styleName: "ノーマル", + }, + avatar: { + ...getStandeeSet("zundamon_ohnegus_rework_baby_default"), + accentColor: "#79d36f", + nameplatePosition: "none", + idleAnimationType: "none", + speakingAnimationType: "rhubarbLipSync", + }, + }, +} as const satisfies Record; + +export type CharacterId = keyof typeof characters; diff --git a/voicevox-remotion-template/src/data/zundamon-rework-standee-demo/script.ts b/voicevox-remotion-template/src/data/zundamon-rework-standee-demo/script.ts new file mode 100644 index 0000000..dcebf11 --- /dev/null +++ b/voicevox-remotion-template/src/data/zundamon-rework-standee-demo/script.ts @@ -0,0 +1,188 @@ +import { + defineVQTimeline, + say, + type VQCustomTimelineEvent, + type VQSpeechEvent, + type VQTimelineEvent, + type VQTimelineInputEvent, +} from "../../lib/VQRemotionLib/timeline"; +import type {VQMouthShape} from "../../lib/VQRemotionLib/types"; +import type {CharacterId, VoicevoxVoice} from "./characters"; + +export {characters} from "./characters"; +export type {CharacterDefinition, CharacterId, VoicevoxVoice} from "./characters"; + +export type ExpressionId = + | "default" + | "blink" + | "confident" + | "surprised" + | "exasperated" + | "roundEyes" + | "roundEyesSmall" + | "huh" + | "tears" + | "yabeAhe" + | "nnaa" + | "gesu"; + +export type DemoExpression = Readonly<{ + expressionId: ExpressionId; + label: string; + imagePath: string; + durationSeconds: number; +}>; + +export const demoExpressions = [ + { + expressionId: "default", + label: "default", + imagePath: "image/zundamon-ohnegus-rework-baby/06-default-nniya.png", + durationSeconds: 1.1, + }, + { + expressionId: "blink", + label: "blink", + imagePath: "image/zundamon-ohnegus-rework-baby/13-blink-nniya.png", + durationSeconds: 1.1, + }, + { + expressionId: "confident", + label: "confident", + imagePath: "image/zundamon-ohnegus-rework-baby/20-confident-nniya.png", + durationSeconds: 1.1, + }, + { + expressionId: "surprised", + label: "surprised", + imagePath: "image/zundamon-ohnegus-rework-baby/27-surprised-nniya.png", + durationSeconds: 1.1, + }, + { + expressionId: "exasperated", + label: "exasperated", + imagePath: "image/zundamon-ohnegus-rework-baby/32-exasperated-nniya.png", + durationSeconds: 1.1, + }, + { + expressionId: "roundEyes", + label: "round-eyes", + imagePath: "image/zundamon-ohnegus-rework-baby/35-round-eyes-n.png", + durationSeconds: 1.1, + }, + { + expressionId: "roundEyesSmall", + label: "round-eyes-small", + imagePath: "image/zundamon-ohnegus-rework-baby/37-round-eyes-small-n.png", + durationSeconds: 1.1, + }, + { + expressionId: "huh", + label: "huh", + imagePath: "image/zundamon-ohnegus-rework-baby/39-huh-n.png", + durationSeconds: 1.1, + }, + { + expressionId: "tears", + label: "tears", + imagePath: "image/zundamon-ohnegus-rework-baby/41-tears-n.png", + durationSeconds: 1.1, + }, + { + expressionId: "yabeAhe", + label: "yabe-ahe", + imagePath: "image/zundamon-ohnegus-rework-baby/43-yabe-ahe-n.png", + durationSeconds: 1.1, + }, + { + expressionId: "nnaa", + label: "nnaa", + imagePath: "image/zundamon-ohnegus-rework-baby/45-nnaa-n.png", + durationSeconds: 1.1, + }, + { + expressionId: "gesu", + label: "gesu", + imagePath: "image/zundamon-ohnegus-rework-baby/46-gesu.png", + durationSeconds: 1.1, + }, +] as const satisfies readonly DemoExpression[]; + +export type SpeechEvent = VQSpeechEvent; + +export type ExpressionEvent = VQCustomTimelineEvent< + "expression", + DemoExpression & {id: string} +>; + +export type MouthCycleEvent = VQCustomTimelineEvent< + "mouthCycle", + { + id: string; + label: string; + durationSeconds: number; + mouths: readonly VQMouthShape[]; + } +>; + +export type TimelineEvent = VQTimelineEvent< + CharacterId, + VoicevoxVoice, + ExpressionEvent | MouthCycleEvent +>; +export type TimelineInputEvent = VQTimelineInputEvent< + CharacterId, + VoicevoxVoice, + ExpressionEvent | MouthCycleEvent +>; + +// 用途: 表情確認用の静止フル画像イベントをタイムラインへ追加する。 +// 使用方法: expression("id", demoExpressions[0]) のように呼び、描画側で imagePath を表示する。 +// オプションや引数詳細: expressionData は表情ID、表示ラベル、public相対画像パス、表示秒数を含む。 +export const expression = ( + id: string, + expressionData: DemoExpression +): ExpressionEvent => ({ + type: "expression", + id, + expressionId: expressionData.expressionId, + label: expressionData.label, + imagePath: expressionData.imagePath, + durationSeconds: expressionData.durationSeconds, +}); + +// 用途: Rhubarb生成結果に依存せず、全口形を明示表示する確認イベントを作る。 +// 使用方法: mouthCycle("id") をタイムラインに置き、描画側で mouths を順番に切り替える。 +// オプションや引数詳細: durationSeconds は全口形を一巡させる総秒数、mouths は表示順を指定する。 +export const mouthCycle = ( + id: string, + options: Partial> = {} +): MouthCycleEvent => ({ + type: "mouthCycle", + id, + label: "rhubarb-mouths", + durationSeconds: options.durationSeconds ?? 2.8, + mouths: options.mouths ?? ["rest", "closed", "a", "i", "u", "e", "o"], +}); + +export const timeline = defineVQTimeline([ + say( + "zundamon-rework-standee-demo-zunda-001", + "zundamon", + "あ、い、う、え、お。ぱ、ぴ、ぷ、ぺ、ぽ。ん、まんま、なのだ。", + { + subtitle: + "default表情のリップシンク確認なのだ。\nあ、い、う、え、お。ぱ、ぴ、ぷ、ぺ、ぽ。", + } + ), + mouthCycle("zundamon-rework-standee-demo-mouth-cycle-001"), + ...demoExpressions.map((expressionData, index) => + expression( + `zundamon-rework-standee-demo-expression-${String(index + 1).padStart( + 2, + "0" + )}`, + expressionData + ) + ), +] satisfies readonly TimelineInputEvent[]); diff --git a/voicevox-remotion-template/src/data/zundamon-rework-standee-demo/timing.ts b/voicevox-remotion-template/src/data/zundamon-rework-standee-demo/timing.ts new file mode 100644 index 0000000..ea1931a --- /dev/null +++ b/voicevox-remotion-template/src/data/zundamon-rework-standee-demo/timing.ts @@ -0,0 +1,98 @@ +import { + defineVQChronologicalScenario, + defineVQScenarioAssetWorkflow, + totalVQChronologicalScenarioDurationInFrames, +} from "../../lib/VQRemotionLib/scenario"; +import {doesVQTimelineEventAdvanceTimeline} from "../../lib/VQRemotionLib/timeline"; +import {timeline, type SpeechEvent, type TimelineEvent} from "./script"; +import voicevoxManifest from "./voicevox-manifest.json"; + +type ManifestEntry = { + id: string; + character?: string; + speakerName?: string; + styleName?: string; + speakerId?: number; + file: string; + durationSeconds: number; +}; + +const manifestEntries = voicevoxManifest as ManifestEntry[]; +const manifestById = new Map( + manifestEntries.map((entry) => [entry.id, entry]) +); + +export const ZUNDAMON_REWORK_STANDEE_DEMO_FPS = 30; +export const ZUNDAMON_REWORK_STANDEE_DEMO_GAP_FRAMES = 6; + +export const hasAudioForSpeech = (speech: SpeechEvent) => + manifestById.has(speech.id); + +export const audioFileForSpeech = (speech: SpeechEvent) => + manifestById.get(speech.id)?.file ?? + `audio/zundamon-rework-standee-demo/lines/${speech.id}.wav`; + +export const durationForSpeech = ( + speech: SpeechEvent, + fps = ZUNDAMON_REWORK_STANDEE_DEMO_FPS +) => { + const entry = manifestById.get(speech.id); + if (entry && Number.isFinite(entry.durationSeconds)) { + return Math.max(1, Math.ceil(entry.durationSeconds * fps)); + } + + const textForEstimate = speech.readAs ?? speech.text; + const estimatedSeconds = Math.max(1.2, textForEstimate.length * 0.11); + return Math.ceil(estimatedSeconds * fps); +}; + +export const durationForTimelineEvent = ( + event: TimelineEvent, + fps = ZUNDAMON_REWORK_STANDEE_DEMO_FPS +) => { + if (event.type === "say") { + return durationForSpeech(event, fps); + } + + const durationSeconds = + "durationSeconds" in event ? event.durationSeconds : undefined; + if (typeof durationSeconds === "number" && Number.isFinite(durationSeconds)) { + return Math.max(1, Math.ceil(durationSeconds * fps)); + } + + throw new Error(`Timeline event "${event.type}" needs a duration.`); +}; + +export const zundamonReworkStandeeDemoAssetWorkflow = + defineVQScenarioAssetWorkflow({ + voicevox: { + scriptPath: "src/data/zundamon-rework-standee-demo/script.ts", + outputDir: "public/audio/zundamon-rework-standee-demo/lines", + manifestPath: + "src/data/zundamon-rework-standee-demo/voicevox-manifest.json", + }, + rhubarb: { + sourceManifestPath: + "src/data/zundamon-rework-standee-demo/voicevox-manifest.json", + manifestPath: "src/generated/lipsync/manifest.json", + outputDir: "src/generated/lipsync", + rawOutputDir: "public/lipsync/raw", + }, + }); + +export const zundamonReworkStandeeDemoScenario = + defineVQChronologicalScenario({ + timeline, + gapFrames: ZUNDAMON_REWORK_STANDEE_DEMO_GAP_FRAMES, + durationForEvent: durationForTimelineEvent, + doesEventAdvanceTimeline: doesVQTimelineEventAdvanceTimeline, + assetWorkflow: zundamonReworkStandeeDemoAssetWorkflow, + }); + +export const totalZundamonReworkStandeeDemoDurationInFrames = ( + fps = ZUNDAMON_REWORK_STANDEE_DEMO_FPS +) => + totalVQChronologicalScenarioDurationInFrames( + zundamonReworkStandeeDemoScenario, + fps + ); diff --git a/voicevox-remotion-template/src/data/zundamon-rework-standee-demo/voicevox-manifest.json b/voicevox-remotion-template/src/data/zundamon-rework-standee-demo/voicevox-manifest.json new file mode 100644 index 0000000..80f28bb --- /dev/null +++ b/voicevox-remotion-template/src/data/zundamon-rework-standee-demo/voicevox-manifest.json @@ -0,0 +1,11 @@ +[ + { + "id": "zundamon-rework-standee-demo-zunda-001", + "character": "zundamon", + "speakerName": "ずんだもん", + "styleName": "ノーマル", + "speakerId": 3, + "file": "audio/zundamon-rework-standee-demo/lines/zundamon-rework-standee-demo-zunda-001.wav", + "durationSeconds": 16.373333333333335 + } +] diff --git a/voicevox-remotion-template/src/generated/lipsync/manifest.json b/voicevox-remotion-template/src/generated/lipsync/manifest.json new file mode 100644 index 0000000..3cea8ed --- /dev/null +++ b/voicevox-remotion-template/src/generated/lipsync/manifest.json @@ -0,0 +1,8572 @@ +{ + "version": 1, + "timelines": { + "zunda-001": { + "version": 1, + "source": { + "audio": "audio/yukkuri-composition/lines/zunda-001.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 3.06, + "cues": [ + { + "start": 0, + "end": 0.1, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.1, + "end": 0.23, + "mouth": "i", + "source": "B" + }, + { + "start": 0.23, + "end": 0.31, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.31, + "end": 0.48, + "mouth": "i", + "source": "B" + }, + { + "start": 0.48, + "end": 0.62, + "mouth": "e", + "source": "C" + }, + { + "start": 0.62, + "end": 0.7, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.7, + "end": 0.85, + "mouth": "a", + "source": "D" + }, + { + "start": 0.85, + "end": 1.27, + "mouth": "i", + "source": "B" + }, + { + "start": 1.27, + "end": 1.46, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.46, + "end": 1.57, + "mouth": "i", + "source": "B" + }, + { + "start": 1.57, + "end": 1.77, + "mouth": "rest", + "source": "X" + }, + { + "start": 1.77, + "end": 1.84, + "mouth": "i", + "source": "B" + }, + { + "start": 1.84, + "end": 1.9, + "mouth": "e", + "source": "C" + }, + { + "start": 1.9, + "end": 1.97, + "mouth": "u", + "source": "F" + }, + { + "start": 1.97, + "end": 2.11, + "mouth": "i", + "source": "B" + }, + { + "start": 2.11, + "end": 2.25, + "mouth": "o", + "source": "E" + }, + { + "start": 2.25, + "end": 2.46, + "mouth": "u", + "source": "F" + }, + { + "start": 2.46, + "end": 2.69, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.69, + "end": 2.83, + "mouth": "e", + "source": "C" + }, + { + "start": 2.83, + "end": 2.91, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.91, + "end": 2.99, + "mouth": "i", + "source": "B" + }, + { + "start": 2.99, + "end": 3.06, + "mouth": "rest", + "source": "X" + } + ] + }, + "zunda-002": { + "version": 1, + "source": { + "audio": "audio/yukkuri-composition/lines/zunda-002.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 4.48, + "cues": [ + { + "start": 0, + "end": 0.12, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.12, + "end": 0.22, + "mouth": "i", + "source": "B" + }, + { + "start": 0.22, + "end": 0.29, + "mouth": "o", + "source": "E" + }, + { + "start": 0.29, + "end": 0.43, + "mouth": "u", + "source": "F" + }, + { + "start": 0.43, + "end": 0.78, + "mouth": "i", + "source": "B" + }, + { + "start": 0.78, + "end": 1.19, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.19, + "end": 1.31, + "mouth": "i", + "source": "B" + }, + { + "start": 1.31, + "end": 1.46, + "mouth": "rest", + "source": "X" + }, + { + "start": 1.46, + "end": 1.51, + "mouth": "i", + "source": "B" + }, + { + "start": 1.51, + "end": 1.59, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.59, + "end": 1.76, + "mouth": "u", + "source": "F" + }, + { + "start": 1.76, + "end": 1.97, + "mouth": "i", + "source": "B" + }, + { + "start": 1.97, + "end": 2.11, + "mouth": "o", + "source": "E" + }, + { + "start": 2.11, + "end": 2.18, + "mouth": "e", + "source": "C" + }, + { + "start": 2.18, + "end": 2.25, + "mouth": "i", + "source": "B" + }, + { + "start": 2.25, + "end": 2.33, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.33, + "end": 2.4, + "mouth": "i", + "source": "B" + }, + { + "start": 2.4, + "end": 2.75, + "mouth": "u", + "source": "F" + }, + { + "start": 2.75, + "end": 2.96, + "mouth": "i", + "source": "B" + }, + { + "start": 2.96, + "end": 3.1, + "mouth": "e", + "source": "C" + }, + { + "start": 3.1, + "end": 3.52, + "mouth": "i", + "source": "B" + }, + { + "start": 3.52, + "end": 3.82, + "mouth": "rest", + "source": "X" + }, + { + "start": 3.82, + "end": 3.94, + "mouth": "i", + "source": "B" + }, + { + "start": 3.94, + "end": 4.03, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.03, + "end": 4.09, + "mouth": "o", + "source": "E" + }, + { + "start": 4.09, + "end": 4.14, + "mouth": "e", + "source": "C" + }, + { + "start": 4.14, + "end": 4.42, + "mouth": "i", + "source": "B" + }, + { + "start": 4.42, + "end": 4.48, + "mouth": "rest", + "source": "X" + } + ] + }, + "zunda-003": { + "version": 1, + "source": { + "audio": "audio/yukkuri-composition/lines/zunda-003.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 4.39, + "cues": [ + { + "start": 0, + "end": 0.05, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.05, + "end": 0.11, + "mouth": "i", + "source": "B" + }, + { + "start": 0.11, + "end": 0.17, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.17, + "end": 0.43, + "mouth": "u", + "source": "F" + }, + { + "start": 0.43, + "end": 0.57, + "mouth": "o", + "source": "E" + }, + { + "start": 0.57, + "end": 0.78, + "mouth": "i", + "source": "B" + }, + { + "start": 0.78, + "end": 0.85, + "mouth": "e", + "source": "C" + }, + { + "start": 0.85, + "end": 0.93, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.93, + "end": 1.17, + "mouth": "i", + "source": "B" + }, + { + "start": 1.17, + "end": 1.31, + "mouth": "u", + "source": "F" + }, + { + "start": 1.31, + "end": 1.45, + "mouth": "e", + "source": "C" + }, + { + "start": 1.45, + "end": 1.53, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.53, + "end": 1.69, + "mouth": "i", + "source": "B" + }, + { + "start": 1.69, + "end": 1.87, + "mouth": "rest", + "source": "X" + }, + { + "start": 1.87, + "end": 1.95, + "mouth": "i", + "source": "B" + }, + { + "start": 1.95, + "end": 2.03, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.03, + "end": 2.14, + "mouth": "i", + "source": "B" + }, + { + "start": 2.14, + "end": 2.22, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.22, + "end": 2.3, + "mouth": "u", + "source": "F" + }, + { + "start": 2.3, + "end": 2.86, + "mouth": "i", + "source": "B" + }, + { + "start": 2.86, + "end": 2.93, + "mouth": "e", + "source": "C" + }, + { + "start": 2.93, + "end": 3.17, + "mouth": "i", + "source": "B" + }, + { + "start": 3.17, + "end": 3.21, + "mouth": "e", + "source": "C" + }, + { + "start": 3.21, + "end": 3.32, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.32, + "end": 3.41, + "mouth": "i", + "source": "B" + }, + { + "start": 3.41, + "end": 3.55, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.55, + "end": 3.76, + "mouth": "u", + "source": "F" + }, + { + "start": 3.76, + "end": 4.04, + "mouth": "i", + "source": "B" + }, + { + "start": 4.04, + "end": 4.32, + "mouth": "e", + "source": "C" + }, + { + "start": 4.32, + "end": 4.39, + "mouth": "rest", + "source": "X" + } + ] + }, + "zunda-004": { + "version": 1, + "source": { + "audio": "audio/yukkuri-composition/lines/zunda-004.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 4.32, + "cues": [ + { + "start": 0, + "end": 0.11, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.11, + "end": 0.28, + "mouth": "i", + "source": "B" + }, + { + "start": 0.28, + "end": 0.4, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.4, + "end": 0.44, + "mouth": "e", + "source": "C" + }, + { + "start": 0.44, + "end": 0.52, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.52, + "end": 0.67, + "mouth": "e", + "source": "C" + }, + { + "start": 0.67, + "end": 0.88, + "mouth": "u", + "source": "F" + }, + { + "start": 0.88, + "end": 1.02, + "mouth": "i", + "source": "B" + }, + { + "start": 1.02, + "end": 1.09, + "mouth": "e", + "source": "C" + }, + { + "start": 1.09, + "end": 1.28, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.28, + "end": 1.4, + "mouth": "e", + "source": "C" + }, + { + "start": 1.4, + "end": 1.47, + "mouth": "i", + "source": "B" + }, + { + "start": 1.47, + "end": 1.54, + "mouth": "e", + "source": "C" + }, + { + "start": 1.54, + "end": 1.68, + "mouth": "i", + "source": "B" + }, + { + "start": 1.68, + "end": 1.82, + "mouth": "e", + "source": "C" + }, + { + "start": 1.82, + "end": 1.96, + "mouth": "i", + "source": "B" + }, + { + "start": 1.96, + "end": 2.17, + "mouth": "o", + "source": "E" + }, + { + "start": 2.17, + "end": 2.34, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.34, + "end": 2.61, + "mouth": "i", + "source": "B" + }, + { + "start": 2.61, + "end": 2.69, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.69, + "end": 2.79, + "mouth": "i", + "source": "B" + }, + { + "start": 2.79, + "end": 2.86, + "mouth": "u", + "source": "F" + }, + { + "start": 2.86, + "end": 2.93, + "mouth": "i", + "source": "B" + }, + { + "start": 2.93, + "end": 3.07, + "mouth": "o", + "source": "E" + }, + { + "start": 3.07, + "end": 3.14, + "mouth": "i", + "source": "B" + }, + { + "start": 3.14, + "end": 3.35, + "mouth": "e", + "source": "C" + }, + { + "start": 3.35, + "end": 3.53, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.53, + "end": 3.77, + "mouth": "i", + "source": "B" + }, + { + "start": 3.77, + "end": 3.85, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.85, + "end": 3.91, + "mouth": "a", + "source": "D" + }, + { + "start": 3.91, + "end": 3.97, + "mouth": "i", + "source": "B" + }, + { + "start": 3.97, + "end": 4.25, + "mouth": "e", + "source": "C" + }, + { + "start": 4.25, + "end": 4.32, + "mouth": "rest", + "source": "X" + } + ] + }, + "sayo-001": { + "version": 1, + "source": { + "audio": "audio/yukkuri-composition/lines/sayo-001.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 5.83, + "cues": [ + { + "start": 0, + "end": 0.04, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.04, + "end": 0.12, + "mouth": "i", + "source": "B" + }, + { + "start": 0.12, + "end": 0.19, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.19, + "end": 0.35, + "mouth": "i", + "source": "B" + }, + { + "start": 0.35, + "end": 0.42, + "mouth": "u", + "source": "F" + }, + { + "start": 0.42, + "end": 0.77, + "mouth": "i", + "source": "B" + }, + { + "start": 0.77, + "end": 1.24, + "mouth": "rest", + "source": "X" + }, + { + "start": 1.24, + "end": 1.61, + "mouth": "i", + "source": "B" + }, + { + "start": 1.61, + "end": 1.68, + "mouth": "u", + "source": "F" + }, + { + "start": 1.68, + "end": 1.76, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.76, + "end": 1.89, + "mouth": "o", + "source": "E" + }, + { + "start": 1.89, + "end": 1.96, + "mouth": "i", + "source": "B" + }, + { + "start": 1.96, + "end": 2.04, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.04, + "end": 2.17, + "mouth": "i", + "source": "B" + }, + { + "start": 2.17, + "end": 2.29, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.29, + "end": 2.37, + "mouth": "i", + "source": "B" + }, + { + "start": 2.37, + "end": 2.46, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.46, + "end": 2.6, + "mouth": "i", + "source": "B" + }, + { + "start": 2.6, + "end": 2.67, + "mouth": "e", + "source": "C" + }, + { + "start": 2.67, + "end": 2.74, + "mouth": "i", + "source": "B" + }, + { + "start": 2.74, + "end": 3.08, + "mouth": "rest", + "source": "X" + }, + { + "start": 3.08, + "end": 3.18, + "mouth": "i", + "source": "B" + }, + { + "start": 3.18, + "end": 3.32, + "mouth": "u", + "source": "F" + }, + { + "start": 3.32, + "end": 3.4, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.4, + "end": 3.6, + "mouth": "i", + "source": "B" + }, + { + "start": 3.6, + "end": 3.68, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.68, + "end": 3.87, + "mouth": "e", + "source": "C" + }, + { + "start": 3.87, + "end": 4.15, + "mouth": "i", + "source": "B" + }, + { + "start": 4.15, + "end": 4.22, + "mouth": "e", + "source": "C" + }, + { + "start": 4.22, + "end": 4.29, + "mouth": "o", + "source": "E" + }, + { + "start": 4.29, + "end": 4.43, + "mouth": "i", + "source": "B" + }, + { + "start": 4.43, + "end": 4.5, + "mouth": "o", + "source": "E" + }, + { + "start": 4.5, + "end": 4.57, + "mouth": "u", + "source": "F" + }, + { + "start": 4.57, + "end": 4.65, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.65, + "end": 4.75, + "mouth": "e", + "source": "C" + }, + { + "start": 4.75, + "end": 4.82, + "mouth": "i", + "source": "B" + }, + { + "start": 4.82, + "end": 4.94, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.94, + "end": 5.19, + "mouth": "i", + "source": "B" + }, + { + "start": 5.19, + "end": 5.27, + "mouth": "closed", + "source": "A" + }, + { + "start": 5.27, + "end": 5.37, + "mouth": "i", + "source": "B" + }, + { + "start": 5.37, + "end": 5.45, + "mouth": "closed", + "source": "A" + }, + { + "start": 5.45, + "end": 5.61, + "mouth": "e", + "source": "C" + }, + { + "start": 5.61, + "end": 5.75, + "mouth": "i", + "source": "B" + }, + { + "start": 5.75, + "end": 5.83, + "mouth": "rest", + "source": "X" + } + ] + }, + "zunda-005": { + "version": 1, + "source": { + "audio": "audio/yukkuri-composition/lines/zunda-005.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 2.47, + "cues": [ + { + "start": 0, + "end": 0.12, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.12, + "end": 0.2, + "mouth": "i", + "source": "B" + }, + { + "start": 0.2, + "end": 0.32, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.32, + "end": 0.38, + "mouth": "e", + "source": "C" + }, + { + "start": 0.38, + "end": 0.51, + "mouth": "i", + "source": "B" + }, + { + "start": 0.51, + "end": 0.65, + "mouth": "e", + "source": "C" + }, + { + "start": 0.65, + "end": 0.74, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.74, + "end": 0.98, + "mouth": "i", + "source": "B" + }, + { + "start": 0.98, + "end": 1.16, + "mouth": "rest", + "source": "X" + }, + { + "start": 1.16, + "end": 1.2, + "mouth": "i", + "source": "B" + }, + { + "start": 1.2, + "end": 1.28, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.28, + "end": 1.38, + "mouth": "e", + "source": "C" + }, + { + "start": 1.38, + "end": 1.46, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.46, + "end": 1.76, + "mouth": "i", + "source": "B" + }, + { + "start": 1.76, + "end": 2.04, + "mouth": "e", + "source": "C" + }, + { + "start": 2.04, + "end": 2.12, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.12, + "end": 2.22, + "mouth": "a", + "source": "D" + }, + { + "start": 2.22, + "end": 2.33, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.33, + "end": 2.41, + "mouth": "i", + "source": "B" + }, + { + "start": 2.41, + "end": 2.47, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-kiln-sayo-001": { + "version": 1, + "source": { + "audio": "audio/pizza-kiln/lines/pizza-kiln-sayo-001.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 7.45, + "cues": [ + { + "start": 0, + "end": 0.04, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.04, + "end": 0.12, + "mouth": "i", + "source": "B" + }, + { + "start": 0.12, + "end": 0.2, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.2, + "end": 0.38, + "mouth": "i", + "source": "B" + }, + { + "start": 0.38, + "end": 0.45, + "mouth": "u", + "source": "F" + }, + { + "start": 0.45, + "end": 0.8, + "mouth": "i", + "source": "B" + }, + { + "start": 0.8, + "end": 1.35, + "mouth": "rest", + "source": "X" + }, + { + "start": 1.35, + "end": 1.42, + "mouth": "i", + "source": "B" + }, + { + "start": 1.42, + "end": 1.63, + "mouth": "u", + "source": "F" + }, + { + "start": 1.63, + "end": 1.74, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.74, + "end": 1.94, + "mouth": "i", + "source": "B" + }, + { + "start": 1.94, + "end": 2.37, + "mouth": "rest", + "source": "X" + }, + { + "start": 2.37, + "end": 2.45, + "mouth": "i", + "source": "B" + }, + { + "start": 2.45, + "end": 2.53, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.53, + "end": 2.64, + "mouth": "e", + "source": "C" + }, + { + "start": 2.64, + "end": 2.71, + "mouth": "i", + "source": "B" + }, + { + "start": 2.71, + "end": 2.85, + "mouth": "u", + "source": "F" + }, + { + "start": 2.85, + "end": 2.92, + "mouth": "i", + "source": "B" + }, + { + "start": 2.92, + "end": 3, + "mouth": "closed", + "source": "A" + }, + { + "start": 3, + "end": 3.22, + "mouth": "e", + "source": "C" + }, + { + "start": 3.22, + "end": 3.36, + "mouth": "i", + "source": "B" + }, + { + "start": 3.36, + "end": 3.43, + "mouth": "e", + "source": "C" + }, + { + "start": 3.43, + "end": 3.57, + "mouth": "i", + "source": "B" + }, + { + "start": 3.57, + "end": 3.64, + "mouth": "e", + "source": "C" + }, + { + "start": 3.64, + "end": 4.34, + "mouth": "i", + "source": "B" + }, + { + "start": 4.34, + "end": 4.43, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.43, + "end": 4.53, + "mouth": "u", + "source": "F" + }, + { + "start": 4.53, + "end": 4.62, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.62, + "end": 4.76, + "mouth": "i", + "source": "B" + }, + { + "start": 4.76, + "end": 5.21, + "mouth": "rest", + "source": "X" + }, + { + "start": 5.21, + "end": 5.37, + "mouth": "i", + "source": "B" + }, + { + "start": 5.37, + "end": 5.45, + "mouth": "closed", + "source": "A" + }, + { + "start": 5.45, + "end": 5.57, + "mouth": "a", + "source": "D" + }, + { + "start": 5.57, + "end": 5.64, + "mouth": "e", + "source": "C" + }, + { + "start": 5.64, + "end": 5.71, + "mouth": "i", + "source": "B" + }, + { + "start": 5.71, + "end": 5.85, + "mouth": "u", + "source": "F" + }, + { + "start": 5.85, + "end": 5.92, + "mouth": "i", + "source": "B" + }, + { + "start": 5.92, + "end": 5.99, + "mouth": "e", + "source": "C" + }, + { + "start": 5.99, + "end": 6.07, + "mouth": "closed", + "source": "A" + }, + { + "start": 6.07, + "end": 6.15, + "mouth": "i", + "source": "B" + }, + { + "start": 6.15, + "end": 6.24, + "mouth": "closed", + "source": "A" + }, + { + "start": 6.24, + "end": 6.33, + "mouth": "i", + "source": "B" + }, + { + "start": 6.33, + "end": 6.42, + "mouth": "closed", + "source": "A" + }, + { + "start": 6.42, + "end": 6.77, + "mouth": "u", + "source": "F" + }, + { + "start": 6.77, + "end": 6.84, + "mouth": "i", + "source": "B" + }, + { + "start": 6.84, + "end": 6.95, + "mouth": "closed", + "source": "A" + }, + { + "start": 6.95, + "end": 7.04, + "mouth": "i", + "source": "B" + }, + { + "start": 7.04, + "end": 7.32, + "mouth": "closed", + "source": "A" + }, + { + "start": 7.32, + "end": 7.45, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-kiln-sayo-002": { + "version": 1, + "source": { + "audio": "audio/pizza-kiln/lines/pizza-kiln-sayo-002.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 6.78, + "cues": [ + { + "start": 0, + "end": 0.05, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.05, + "end": 0.44, + "mouth": "i", + "source": "B" + }, + { + "start": 0.44, + "end": 0.52, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.52, + "end": 0.59, + "mouth": "e", + "source": "C" + }, + { + "start": 0.59, + "end": 0.66, + "mouth": "o", + "source": "E" + }, + { + "start": 0.66, + "end": 1.01, + "mouth": "e", + "source": "C" + }, + { + "start": 1.01, + "end": 1.06, + "mouth": "i", + "source": "B" + }, + { + "start": 1.06, + "end": 1.18, + "mouth": "u", + "source": "F" + }, + { + "start": 1.18, + "end": 1.25, + "mouth": "i", + "source": "B" + }, + { + "start": 1.25, + "end": 1.39, + "mouth": "u", + "source": "F" + }, + { + "start": 1.39, + "end": 1.46, + "mouth": "o", + "source": "E" + }, + { + "start": 1.46, + "end": 1.53, + "mouth": "u", + "source": "F" + }, + { + "start": 1.53, + "end": 1.61, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.61, + "end": 1.68, + "mouth": "u", + "source": "F" + }, + { + "start": 1.68, + "end": 1.96, + "mouth": "i", + "source": "B" + }, + { + "start": 1.96, + "end": 2.1, + "mouth": "u", + "source": "F" + }, + { + "start": 2.1, + "end": 2.31, + "mouth": "i", + "source": "B" + }, + { + "start": 2.31, + "end": 2.45, + "mouth": "e", + "source": "C" + }, + { + "start": 2.45, + "end": 2.59, + "mouth": "i", + "source": "B" + }, + { + "start": 2.59, + "end": 2.98, + "mouth": "rest", + "source": "X" + }, + { + "start": 2.98, + "end": 3.06, + "mouth": "i", + "source": "B" + }, + { + "start": 3.06, + "end": 3.14, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.14, + "end": 3.19, + "mouth": "e", + "source": "C" + }, + { + "start": 3.19, + "end": 3.31, + "mouth": "u", + "source": "F" + }, + { + "start": 3.31, + "end": 3.39, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.39, + "end": 3.47, + "mouth": "a", + "source": "D" + }, + { + "start": 3.47, + "end": 3.54, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.54, + "end": 3.61, + "mouth": "i", + "source": "B" + }, + { + "start": 3.61, + "end": 3.81, + "mouth": "u", + "source": "F" + }, + { + "start": 3.81, + "end": 4.02, + "mouth": "i", + "source": "B" + }, + { + "start": 4.02, + "end": 4.1, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.1, + "end": 4.27, + "mouth": "i", + "source": "B" + }, + { + "start": 4.27, + "end": 4.72, + "mouth": "rest", + "source": "X" + }, + { + "start": 4.72, + "end": 4.8, + "mouth": "i", + "source": "B" + }, + { + "start": 4.8, + "end": 4.91, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.91, + "end": 4.98, + "mouth": "a", + "source": "D" + }, + { + "start": 4.98, + "end": 5.05, + "mouth": "i", + "source": "B" + }, + { + "start": 5.05, + "end": 5.12, + "mouth": "e", + "source": "C" + }, + { + "start": 5.12, + "end": 5.19, + "mouth": "i", + "source": "B" + }, + { + "start": 5.19, + "end": 5.27, + "mouth": "closed", + "source": "A" + }, + { + "start": 5.27, + "end": 5.44, + "mouth": "e", + "source": "C" + }, + { + "start": 5.44, + "end": 5.52, + "mouth": "closed", + "source": "A" + }, + { + "start": 5.52, + "end": 5.71, + "mouth": "e", + "source": "C" + }, + { + "start": 5.71, + "end": 5.99, + "mouth": "i", + "source": "B" + }, + { + "start": 5.99, + "end": 6.11, + "mouth": "closed", + "source": "A" + }, + { + "start": 6.11, + "end": 6.2, + "mouth": "i", + "source": "B" + }, + { + "start": 6.2, + "end": 6.28, + "mouth": "closed", + "source": "A" + }, + { + "start": 6.28, + "end": 6.47, + "mouth": "i", + "source": "B" + }, + { + "start": 6.47, + "end": 6.64, + "mouth": "closed", + "source": "A" + }, + { + "start": 6.64, + "end": 6.78, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-001": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-001.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 2.03, + "cues": [ + { + "start": 0, + "end": 0.07, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.07, + "end": 0.23, + "mouth": "a", + "source": "D" + }, + { + "start": 0.23, + "end": 0.27, + "mouth": "e", + "source": "C" + }, + { + "start": 0.27, + "end": 0.6, + "mouth": "i", + "source": "B" + }, + { + "start": 0.6, + "end": 0.67, + "mouth": "u", + "source": "F" + }, + { + "start": 0.67, + "end": 0.74, + "mouth": "e", + "source": "C" + }, + { + "start": 0.74, + "end": 0.88, + "mouth": "i", + "source": "B" + }, + { + "start": 0.88, + "end": 1.15, + "mouth": "rest", + "source": "X" + }, + { + "start": 1.15, + "end": 1.23, + "mouth": "i", + "source": "B" + }, + { + "start": 1.23, + "end": 1.32, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.32, + "end": 1.36, + "mouth": "u", + "source": "F" + }, + { + "start": 1.36, + "end": 1.89, + "mouth": "i", + "source": "B" + }, + { + "start": 1.89, + "end": 2.03, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-002": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-002.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 2.11, + "cues": [ + { + "start": 0, + "end": 0.1, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.1, + "end": 0.19, + "mouth": "i", + "source": "B" + }, + { + "start": 0.19, + "end": 0.27, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.27, + "end": 0.37, + "mouth": "o", + "source": "E" + }, + { + "start": 0.37, + "end": 0.71, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.71, + "end": 0.81, + "mouth": "i", + "source": "B" + }, + { + "start": 0.81, + "end": 0.9, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.9, + "end": 0.99, + "mouth": "i", + "source": "B" + }, + { + "start": 0.99, + "end": 1.07, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.07, + "end": 1.29, + "mouth": "i", + "source": "B" + }, + { + "start": 1.29, + "end": 1.37, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.37, + "end": 1.59, + "mouth": "i", + "source": "B" + }, + { + "start": 1.59, + "end": 1.69, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.69, + "end": 1.94, + "mouth": "e", + "source": "C" + }, + { + "start": 1.94, + "end": 2.01, + "mouth": "i", + "source": "B" + }, + { + "start": 2.01, + "end": 2.11, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-003": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-003.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 3.02, + "cues": [ + { + "start": 0, + "end": 0.05, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.05, + "end": 0.13, + "mouth": "i", + "source": "B" + }, + { + "start": 0.13, + "end": 0.21, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.21, + "end": 0.49, + "mouth": "u", + "source": "F" + }, + { + "start": 0.49, + "end": 0.57, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.57, + "end": 0.69, + "mouth": "i", + "source": "B" + }, + { + "start": 0.69, + "end": 1.09, + "mouth": "rest", + "source": "X" + }, + { + "start": 1.09, + "end": 1.17, + "mouth": "i", + "source": "B" + }, + { + "start": 1.17, + "end": 1.29, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.29, + "end": 1.49, + "mouth": "u", + "source": "F" + }, + { + "start": 1.49, + "end": 1.56, + "mouth": "i", + "source": "B" + }, + { + "start": 1.56, + "end": 1.64, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.64, + "end": 2.06, + "mouth": "i", + "source": "B" + }, + { + "start": 2.06, + "end": 2.27, + "mouth": "e", + "source": "C" + }, + { + "start": 2.27, + "end": 2.34, + "mouth": "i", + "source": "B" + }, + { + "start": 2.34, + "end": 2.45, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.45, + "end": 2.62, + "mouth": "i", + "source": "B" + }, + { + "start": 2.62, + "end": 2.7, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.7, + "end": 2.93, + "mouth": "i", + "source": "B" + }, + { + "start": 2.93, + "end": 3.02, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-004": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-004.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 0.99, + "cues": [ + { + "start": 0, + "end": 0.09, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.09, + "end": 0.18, + "mouth": "i", + "source": "B" + }, + { + "start": 0.18, + "end": 0.46, + "mouth": "e", + "source": "C" + }, + { + "start": 0.46, + "end": 0.63, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.63, + "end": 0.71, + "mouth": "i", + "source": "B" + }, + { + "start": 0.71, + "end": 0.82, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.82, + "end": 0.91, + "mouth": "i", + "source": "B" + }, + { + "start": 0.91, + "end": 0.99, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-005": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-005.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 6.58, + "cues": [ + { + "start": 0, + "end": 0.09, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.09, + "end": 0.23, + "mouth": "i", + "source": "B" + }, + { + "start": 0.23, + "end": 0.31, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.31, + "end": 0.44, + "mouth": "e", + "source": "C" + }, + { + "start": 0.44, + "end": 0.52, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.52, + "end": 0.72, + "mouth": "e", + "source": "C" + }, + { + "start": 0.72, + "end": 0.79, + "mouth": "i", + "source": "B" + }, + { + "start": 0.79, + "end": 0.87, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.87, + "end": 1.04, + "mouth": "e", + "source": "C" + }, + { + "start": 1.04, + "end": 1.11, + "mouth": "i", + "source": "B" + }, + { + "start": 1.11, + "end": 1.32, + "mouth": "u", + "source": "F" + }, + { + "start": 1.32, + "end": 1.6, + "mouth": "i", + "source": "B" + }, + { + "start": 1.6, + "end": 2.02, + "mouth": "rest", + "source": "X" + }, + { + "start": 2.02, + "end": 2.07, + "mouth": "i", + "source": "B" + }, + { + "start": 2.07, + "end": 2.19, + "mouth": "e", + "source": "C" + }, + { + "start": 2.19, + "end": 2.96, + "mouth": "i", + "source": "B" + }, + { + "start": 2.96, + "end": 3.08, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.08, + "end": 3.16, + "mouth": "u", + "source": "F" + }, + { + "start": 3.16, + "end": 3.24, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.24, + "end": 3.54, + "mouth": "o", + "source": "E" + }, + { + "start": 3.54, + "end": 3.65, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.65, + "end": 3.71, + "mouth": "a", + "source": "D" + }, + { + "start": 3.71, + "end": 3.98, + "mouth": "i", + "source": "B" + }, + { + "start": 3.98, + "end": 4.05, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.05, + "end": 4.12, + "mouth": "i", + "source": "B" + }, + { + "start": 4.12, + "end": 4.18, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.18, + "end": 4.32, + "mouth": "i", + "source": "B" + }, + { + "start": 4.32, + "end": 4.47, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.47, + "end": 4.65, + "mouth": "i", + "source": "B" + }, + { + "start": 4.65, + "end": 4.75, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.75, + "end": 4.98, + "mouth": "i", + "source": "B" + }, + { + "start": 4.98, + "end": 5.12, + "mouth": "e", + "source": "C" + }, + { + "start": 5.12, + "end": 5.26, + "mouth": "i", + "source": "B" + }, + { + "start": 5.26, + "end": 5.33, + "mouth": "e", + "source": "C" + }, + { + "start": 5.33, + "end": 5.4, + "mouth": "i", + "source": "B" + }, + { + "start": 5.4, + "end": 5.47, + "mouth": "u", + "source": "F" + }, + { + "start": 5.47, + "end": 5.55, + "mouth": "closed", + "source": "A" + }, + { + "start": 5.55, + "end": 5.84, + "mouth": "i", + "source": "B" + }, + { + "start": 5.84, + "end": 5.88, + "mouth": "closed", + "source": "A" + }, + { + "start": 5.88, + "end": 5.95, + "mouth": "i", + "source": "B" + }, + { + "start": 5.95, + "end": 6.02, + "mouth": "closed", + "source": "A" + }, + { + "start": 6.02, + "end": 6.06, + "mouth": "e", + "source": "C" + }, + { + "start": 6.06, + "end": 6.1, + "mouth": "i", + "source": "B" + }, + { + "start": 6.1, + "end": 6.21, + "mouth": "closed", + "source": "A" + }, + { + "start": 6.21, + "end": 6.41, + "mouth": "e", + "source": "C" + }, + { + "start": 6.41, + "end": 6.48, + "mouth": "i", + "source": "B" + }, + { + "start": 6.48, + "end": 6.58, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-006": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-006.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 2.57, + "cues": [ + { + "start": 0, + "end": 0.02, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.02, + "end": 0.1, + "mouth": "i", + "source": "B" + }, + { + "start": 0.1, + "end": 0.22, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.22, + "end": 0.38, + "mouth": "e", + "source": "C" + }, + { + "start": 0.38, + "end": 0.45, + "mouth": "i", + "source": "B" + }, + { + "start": 0.45, + "end": 0.52, + "mouth": "e", + "source": "C" + }, + { + "start": 0.52, + "end": 0.59, + "mouth": "i", + "source": "B" + }, + { + "start": 0.59, + "end": 0.8, + "mouth": "e", + "source": "C" + }, + { + "start": 0.8, + "end": 1.01, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.01, + "end": 1.11, + "mouth": "i", + "source": "B" + }, + { + "start": 1.11, + "end": 1.19, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.19, + "end": 1.24, + "mouth": "e", + "source": "C" + }, + { + "start": 1.24, + "end": 1.49, + "mouth": "i", + "source": "B" + }, + { + "start": 1.49, + "end": 1.55, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.55, + "end": 1.61, + "mouth": "i", + "source": "B" + }, + { + "start": 1.61, + "end": 1.69, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.69, + "end": 1.81, + "mouth": "e", + "source": "C" + }, + { + "start": 1.81, + "end": 2.09, + "mouth": "i", + "source": "B" + }, + { + "start": 2.09, + "end": 2.17, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.17, + "end": 2.23, + "mouth": "e", + "source": "C" + }, + { + "start": 2.23, + "end": 2.43, + "mouth": "i", + "source": "B" + }, + { + "start": 2.43, + "end": 2.57, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-007": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-007.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 5.8, + "cues": [ + { + "start": 0, + "end": 0.03, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.03, + "end": 0.11, + "mouth": "i", + "source": "B" + }, + { + "start": 0.11, + "end": 0.19, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.19, + "end": 0.25, + "mouth": "i", + "source": "B" + }, + { + "start": 0.25, + "end": 0.37, + "mouth": "e", + "source": "C" + }, + { + "start": 0.37, + "end": 0.44, + "mouth": "i", + "source": "B" + }, + { + "start": 0.44, + "end": 0.51, + "mouth": "a", + "source": "D" + }, + { + "start": 0.51, + "end": 0.58, + "mouth": "i", + "source": "B" + }, + { + "start": 0.58, + "end": 0.66, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.66, + "end": 0.75, + "mouth": "o", + "source": "E" + }, + { + "start": 0.75, + "end": 0.82, + "mouth": "e", + "source": "C" + }, + { + "start": 0.82, + "end": 0.96, + "mouth": "i", + "source": "B" + }, + { + "start": 0.96, + "end": 1.12, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.12, + "end": 1.23, + "mouth": "i", + "source": "B" + }, + { + "start": 1.23, + "end": 1.31, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.31, + "end": 1.56, + "mouth": "e", + "source": "C" + }, + { + "start": 1.56, + "end": 2.05, + "mouth": "i", + "source": "B" + }, + { + "start": 2.05, + "end": 2.12, + "mouth": "u", + "source": "F" + }, + { + "start": 2.12, + "end": 2.48, + "mouth": "i", + "source": "B" + }, + { + "start": 2.48, + "end": 2.65, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.65, + "end": 3, + "mouth": "i", + "source": "B" + }, + { + "start": 3, + "end": 3.14, + "mouth": "e", + "source": "C" + }, + { + "start": 3.14, + "end": 3.22, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.22, + "end": 3.47, + "mouth": "u", + "source": "F" + }, + { + "start": 3.47, + "end": 3.75, + "mouth": "i", + "source": "B" + }, + { + "start": 3.75, + "end": 3.82, + "mouth": "e", + "source": "C" + }, + { + "start": 3.82, + "end": 3.96, + "mouth": "i", + "source": "B" + }, + { + "start": 3.96, + "end": 4.17, + "mouth": "e", + "source": "C" + }, + { + "start": 4.17, + "end": 4.24, + "mouth": "i", + "source": "B" + }, + { + "start": 4.24, + "end": 4.45, + "mouth": "o", + "source": "E" + }, + { + "start": 4.45, + "end": 4.53, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.53, + "end": 4.75, + "mouth": "u", + "source": "F" + }, + { + "start": 4.75, + "end": 4.86, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.86, + "end": 5.02, + "mouth": "i", + "source": "B" + }, + { + "start": 5.02, + "end": 5.23, + "mouth": "e", + "source": "C" + }, + { + "start": 5.23, + "end": 5.37, + "mouth": "i", + "source": "B" + }, + { + "start": 5.37, + "end": 5.46, + "mouth": "closed", + "source": "A" + }, + { + "start": 5.46, + "end": 5.57, + "mouth": "i", + "source": "B" + }, + { + "start": 5.57, + "end": 5.64, + "mouth": "e", + "source": "C" + }, + { + "start": 5.64, + "end": 5.71, + "mouth": "i", + "source": "B" + }, + { + "start": 5.71, + "end": 5.8, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-008": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-008.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 6.34, + "cues": [ + { + "start": 0, + "end": 0.09, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.09, + "end": 0.16, + "mouth": "i", + "source": "B" + }, + { + "start": 0.16, + "end": 0.23, + "mouth": "e", + "source": "C" + }, + { + "start": 0.23, + "end": 0.51, + "mouth": "i", + "source": "B" + }, + { + "start": 0.51, + "end": 0.59, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.59, + "end": 0.74, + "mouth": "o", + "source": "E" + }, + { + "start": 0.74, + "end": 0.83, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.83, + "end": 1.13, + "mouth": "i", + "source": "B" + }, + { + "start": 1.13, + "end": 1.21, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.21, + "end": 1.29, + "mouth": "i", + "source": "B" + }, + { + "start": 1.29, + "end": 1.36, + "mouth": "o", + "source": "E" + }, + { + "start": 1.36, + "end": 1.78, + "mouth": "i", + "source": "B" + }, + { + "start": 1.78, + "end": 1.86, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.86, + "end": 2.18, + "mouth": "i", + "source": "B" + }, + { + "start": 2.18, + "end": 2.59, + "mouth": "rest", + "source": "X" + }, + { + "start": 2.59, + "end": 2.65, + "mouth": "i", + "source": "B" + }, + { + "start": 2.65, + "end": 2.71, + "mouth": "o", + "source": "E" + }, + { + "start": 2.71, + "end": 2.78, + "mouth": "a", + "source": "D" + }, + { + "start": 2.78, + "end": 3.48, + "mouth": "i", + "source": "B" + }, + { + "start": 3.48, + "end": 3.56, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.56, + "end": 3.62, + "mouth": "i", + "source": "B" + }, + { + "start": 3.62, + "end": 3.67, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.67, + "end": 3.81, + "mouth": "a", + "source": "D" + }, + { + "start": 3.81, + "end": 3.87, + "mouth": "e", + "source": "C" + }, + { + "start": 3.87, + "end": 3.95, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.95, + "end": 4.1, + "mouth": "e", + "source": "C" + }, + { + "start": 4.1, + "end": 4.17, + "mouth": "i", + "source": "B" + }, + { + "start": 4.17, + "end": 4.31, + "mouth": "e", + "source": "C" + }, + { + "start": 4.31, + "end": 4.52, + "mouth": "i", + "source": "B" + }, + { + "start": 4.52, + "end": 4.59, + "mouth": "e", + "source": "C" + }, + { + "start": 4.59, + "end": 4.87, + "mouth": "i", + "source": "B" + }, + { + "start": 4.87, + "end": 4.95, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.95, + "end": 5.24, + "mouth": "e", + "source": "C" + }, + { + "start": 5.24, + "end": 5.32, + "mouth": "closed", + "source": "A" + }, + { + "start": 5.32, + "end": 5.73, + "mouth": "i", + "source": "B" + }, + { + "start": 5.73, + "end": 5.82, + "mouth": "closed", + "source": "A" + }, + { + "start": 5.82, + "end": 5.89, + "mouth": "e", + "source": "C" + }, + { + "start": 5.89, + "end": 5.96, + "mouth": "i", + "source": "B" + }, + { + "start": 5.96, + "end": 6.24, + "mouth": "e", + "source": "C" + }, + { + "start": 6.24, + "end": 6.34, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-009": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-009.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 3.22, + "cues": [ + { + "start": 0, + "end": 0.03, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.03, + "end": 0.11, + "mouth": "i", + "source": "B" + }, + { + "start": 0.11, + "end": 0.19, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.19, + "end": 0.28, + "mouth": "e", + "source": "C" + }, + { + "start": 0.28, + "end": 0.42, + "mouth": "i", + "source": "B" + }, + { + "start": 0.42, + "end": 0.49, + "mouth": "u", + "source": "F" + }, + { + "start": 0.49, + "end": 0.7, + "mouth": "i", + "source": "B" + }, + { + "start": 0.7, + "end": 1.17, + "mouth": "rest", + "source": "X" + }, + { + "start": 1.17, + "end": 1.22, + "mouth": "i", + "source": "B" + }, + { + "start": 1.22, + "end": 1.27, + "mouth": "e", + "source": "C" + }, + { + "start": 1.27, + "end": 1.34, + "mouth": "i", + "source": "B" + }, + { + "start": 1.34, + "end": 1.62, + "mouth": "e", + "source": "C" + }, + { + "start": 1.62, + "end": 1.69, + "mouth": "i", + "source": "B" + }, + { + "start": 1.69, + "end": 1.81, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.81, + "end": 1.87, + "mouth": "e", + "source": "C" + }, + { + "start": 1.87, + "end": 1.93, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.93, + "end": 1.99, + "mouth": "o", + "source": "E" + }, + { + "start": 1.99, + "end": 2.07, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.07, + "end": 2.2, + "mouth": "a", + "source": "D" + }, + { + "start": 2.2, + "end": 2.34, + "mouth": "i", + "source": "B" + }, + { + "start": 2.34, + "end": 2.53, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.53, + "end": 2.69, + "mouth": "i", + "source": "B" + }, + { + "start": 2.69, + "end": 2.77, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.77, + "end": 2.91, + "mouth": "e", + "source": "C" + }, + { + "start": 2.91, + "end": 3.08, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.08, + "end": 3.22, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-010": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-010.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 4.36, + "cues": [ + { + "start": 0, + "end": 0.07, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.07, + "end": 0.26, + "mouth": "a", + "source": "D" + }, + { + "start": 0.26, + "end": 0.34, + "mouth": "e", + "source": "C" + }, + { + "start": 0.34, + "end": 0.42, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.42, + "end": 0.77, + "mouth": "i", + "source": "B" + }, + { + "start": 0.77, + "end": 0.84, + "mouth": "e", + "source": "C" + }, + { + "start": 0.84, + "end": 0.93, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.93, + "end": 1.19, + "mouth": "i", + "source": "B" + }, + { + "start": 1.19, + "end": 1.58, + "mouth": "rest", + "source": "X" + }, + { + "start": 1.58, + "end": 1.66, + "mouth": "i", + "source": "B" + }, + { + "start": 1.66, + "end": 1.73, + "mouth": "a", + "source": "D" + }, + { + "start": 1.73, + "end": 1.81, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.81, + "end": 2.13, + "mouth": "i", + "source": "B" + }, + { + "start": 2.13, + "end": 2.34, + "mouth": "e", + "source": "C" + }, + { + "start": 2.34, + "end": 2.41, + "mouth": "i", + "source": "B" + }, + { + "start": 2.41, + "end": 2.48, + "mouth": "u", + "source": "F" + }, + { + "start": 2.48, + "end": 2.69, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.69, + "end": 2.8, + "mouth": "i", + "source": "B" + }, + { + "start": 2.8, + "end": 3.01, + "mouth": "e", + "source": "C" + }, + { + "start": 3.01, + "end": 3.08, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.08, + "end": 3.15, + "mouth": "u", + "source": "F" + }, + { + "start": 3.15, + "end": 3.22, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.22, + "end": 3.4, + "mouth": "e", + "source": "C" + }, + { + "start": 3.4, + "end": 3.75, + "mouth": "i", + "source": "B" + }, + { + "start": 3.75, + "end": 3.84, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.84, + "end": 3.99, + "mouth": "i", + "source": "B" + }, + { + "start": 3.99, + "end": 4.13, + "mouth": "e", + "source": "C" + }, + { + "start": 4.13, + "end": 4.27, + "mouth": "i", + "source": "B" + }, + { + "start": 4.27, + "end": 4.36, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-011": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-011.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 5.01, + "cues": [ + { + "start": 0, + "end": 0.08, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.08, + "end": 0.43, + "mouth": "i", + "source": "B" + }, + { + "start": 0.43, + "end": 0.55, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.55, + "end": 0.61, + "mouth": "i", + "source": "B" + }, + { + "start": 0.61, + "end": 0.66, + "mouth": "e", + "source": "C" + }, + { + "start": 0.66, + "end": 0.73, + "mouth": "i", + "source": "B" + }, + { + "start": 0.73, + "end": 0.87, + "mouth": "e", + "source": "C" + }, + { + "start": 0.87, + "end": 1.01, + "mouth": "i", + "source": "B" + }, + { + "start": 1.01, + "end": 1.22, + "mouth": "o", + "source": "E" + }, + { + "start": 1.22, + "end": 1.29, + "mouth": "e", + "source": "C" + }, + { + "start": 1.29, + "end": 1.44, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.44, + "end": 1.58, + "mouth": "i", + "source": "B" + }, + { + "start": 1.58, + "end": 1.66, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.66, + "end": 1.73, + "mouth": "e", + "source": "C" + }, + { + "start": 1.73, + "end": 1.79, + "mouth": "i", + "source": "B" + }, + { + "start": 1.79, + "end": 1.87, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.87, + "end": 2.01, + "mouth": "i", + "source": "B" + }, + { + "start": 2.01, + "end": 2.11, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.11, + "end": 2.48, + "mouth": "i", + "source": "B" + }, + { + "start": 2.48, + "end": 2.77, + "mouth": "rest", + "source": "X" + }, + { + "start": 2.77, + "end": 2.85, + "mouth": "i", + "source": "B" + }, + { + "start": 2.85, + "end": 2.93, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.93, + "end": 2.97, + "mouth": "i", + "source": "B" + }, + { + "start": 2.97, + "end": 3.01, + "mouth": "e", + "source": "C" + }, + { + "start": 3.01, + "end": 3.15, + "mouth": "a", + "source": "D" + }, + { + "start": 3.15, + "end": 3.22, + "mouth": "o", + "source": "E" + }, + { + "start": 3.22, + "end": 3.29, + "mouth": "e", + "source": "C" + }, + { + "start": 3.29, + "end": 3.36, + "mouth": "i", + "source": "B" + }, + { + "start": 3.36, + "end": 3.57, + "mouth": "e", + "source": "C" + }, + { + "start": 3.57, + "end": 3.64, + "mouth": "i", + "source": "B" + }, + { + "start": 3.64, + "end": 3.72, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.72, + "end": 3.84, + "mouth": "e", + "source": "C" + }, + { + "start": 3.84, + "end": 3.98, + "mouth": "i", + "source": "B" + }, + { + "start": 3.98, + "end": 4.06, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.06, + "end": 4.53, + "mouth": "i", + "source": "B" + }, + { + "start": 4.53, + "end": 4.61, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.61, + "end": 4.68, + "mouth": "e", + "source": "C" + }, + { + "start": 4.68, + "end": 4.88, + "mouth": "i", + "source": "B" + }, + { + "start": 4.88, + "end": 5.01, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-012": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-012.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 7.13, + "cues": [ + { + "start": 0, + "end": 0.01, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.01, + "end": 0.08, + "mouth": "i", + "source": "B" + }, + { + "start": 0.08, + "end": 0.15, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.15, + "end": 0.34, + "mouth": "e", + "source": "C" + }, + { + "start": 0.34, + "end": 0.38, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.38, + "end": 0.46, + "mouth": "i", + "source": "B" + }, + { + "start": 0.46, + "end": 0.54, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.54, + "end": 0.83, + "mouth": "i", + "source": "B" + }, + { + "start": 0.83, + "end": 0.89, + "mouth": "e", + "source": "C" + }, + { + "start": 0.89, + "end": 1.03, + "mouth": "i", + "source": "B" + }, + { + "start": 1.03, + "end": 1.22, + "mouth": "a", + "source": "D" + }, + { + "start": 1.22, + "end": 1.27, + "mouth": "o", + "source": "E" + }, + { + "start": 1.27, + "end": 1.45, + "mouth": "u", + "source": "F" + }, + { + "start": 1.45, + "end": 1.55, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.55, + "end": 1.71, + "mouth": "i", + "source": "B" + }, + { + "start": 1.71, + "end": 2.02, + "mouth": "rest", + "source": "X" + }, + { + "start": 2.02, + "end": 2.1, + "mouth": "i", + "source": "B" + }, + { + "start": 2.1, + "end": 2.18, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.18, + "end": 2.29, + "mouth": "e", + "source": "C" + }, + { + "start": 2.29, + "end": 2.37, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.37, + "end": 2.46, + "mouth": "e", + "source": "C" + }, + { + "start": 2.46, + "end": 2.88, + "mouth": "i", + "source": "B" + }, + { + "start": 2.88, + "end": 3.23, + "mouth": "u", + "source": "F" + }, + { + "start": 3.23, + "end": 3.31, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.31, + "end": 3.35, + "mouth": "e", + "source": "C" + }, + { + "start": 3.35, + "end": 3.67, + "mouth": "i", + "source": "B" + }, + { + "start": 3.67, + "end": 3.75, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.75, + "end": 4.19, + "mouth": "i", + "source": "B" + }, + { + "start": 4.19, + "end": 4.33, + "mouth": "e", + "source": "C" + }, + { + "start": 4.33, + "end": 4.54, + "mouth": "a", + "source": "D" + }, + { + "start": 4.54, + "end": 4.61, + "mouth": "i", + "source": "B" + }, + { + "start": 4.61, + "end": 4.81, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.81, + "end": 4.94, + "mouth": "i", + "source": "B" + }, + { + "start": 4.94, + "end": 5.01, + "mouth": "e", + "source": "C" + }, + { + "start": 5.01, + "end": 5.29, + "mouth": "i", + "source": "B" + }, + { + "start": 5.29, + "end": 5.37, + "mouth": "closed", + "source": "A" + }, + { + "start": 5.37, + "end": 5.68, + "mouth": "i", + "source": "B" + }, + { + "start": 5.68, + "end": 5.76, + "mouth": "closed", + "source": "A" + }, + { + "start": 5.76, + "end": 6.13, + "mouth": "i", + "source": "B" + }, + { + "start": 6.13, + "end": 6.21, + "mouth": "closed", + "source": "A" + }, + { + "start": 6.21, + "end": 6.29, + "mouth": "e", + "source": "C" + }, + { + "start": 6.29, + "end": 6.71, + "mouth": "i", + "source": "B" + }, + { + "start": 6.71, + "end": 6.81, + "mouth": "closed", + "source": "A" + }, + { + "start": 6.81, + "end": 6.98, + "mouth": "e", + "source": "C" + }, + { + "start": 6.98, + "end": 7.05, + "mouth": "i", + "source": "B" + }, + { + "start": 7.05, + "end": 7.13, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-013": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-013.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 3.53, + "cues": [ + { + "start": 0, + "end": 0.08, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.08, + "end": 0.12, + "mouth": "i", + "source": "B" + }, + { + "start": 0.12, + "end": 0.16, + "mouth": "e", + "source": "C" + }, + { + "start": 0.16, + "end": 0.3, + "mouth": "a", + "source": "D" + }, + { + "start": 0.3, + "end": 0.51, + "mouth": "e", + "source": "C" + }, + { + "start": 0.51, + "end": 0.65, + "mouth": "i", + "source": "B" + }, + { + "start": 0.65, + "end": 0.79, + "mouth": "e", + "source": "C" + }, + { + "start": 0.79, + "end": 0.87, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.87, + "end": 0.95, + "mouth": "u", + "source": "F" + }, + { + "start": 0.95, + "end": 1.16, + "mouth": "i", + "source": "B" + }, + { + "start": 1.16, + "end": 1.3, + "mouth": "e", + "source": "C" + }, + { + "start": 1.3, + "end": 1.38, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.38, + "end": 1.6, + "mouth": "i", + "source": "B" + }, + { + "start": 1.6, + "end": 1.68, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.68, + "end": 1.78, + "mouth": "i", + "source": "B" + }, + { + "start": 1.78, + "end": 1.88, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.88, + "end": 2.03, + "mouth": "e", + "source": "C" + }, + { + "start": 2.03, + "end": 2.17, + "mouth": "u", + "source": "F" + }, + { + "start": 2.17, + "end": 2.38, + "mouth": "i", + "source": "B" + }, + { + "start": 2.38, + "end": 2.45, + "mouth": "a", + "source": "D" + }, + { + "start": 2.45, + "end": 2.66, + "mouth": "i", + "source": "B" + }, + { + "start": 2.66, + "end": 2.74, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.74, + "end": 3.11, + "mouth": "i", + "source": "B" + }, + { + "start": 3.11, + "end": 3.19, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.19, + "end": 3.37, + "mouth": "e", + "source": "C" + }, + { + "start": 3.37, + "end": 3.44, + "mouth": "i", + "source": "B" + }, + { + "start": 3.44, + "end": 3.53, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-014": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-014.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 4.86, + "cues": [ + { + "start": 0, + "end": 0.09, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.09, + "end": 0.15, + "mouth": "i", + "source": "B" + }, + { + "start": 0.15, + "end": 0.21, + "mouth": "e", + "source": "C" + }, + { + "start": 0.21, + "end": 0.29, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.29, + "end": 0.37, + "mouth": "u", + "source": "F" + }, + { + "start": 0.37, + "end": 0.51, + "mouth": "i", + "source": "B" + }, + { + "start": 0.51, + "end": 0.58, + "mouth": "u", + "source": "F" + }, + { + "start": 0.58, + "end": 0.69, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.69, + "end": 0.88, + "mouth": "e", + "source": "C" + }, + { + "start": 0.88, + "end": 0.96, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.96, + "end": 1.09, + "mouth": "e", + "source": "C" + }, + { + "start": 1.09, + "end": 1.17, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.17, + "end": 1.22, + "mouth": "e", + "source": "C" + }, + { + "start": 1.22, + "end": 1.34, + "mouth": "i", + "source": "B" + }, + { + "start": 1.34, + "end": 1.55, + "mouth": "u", + "source": "F" + }, + { + "start": 1.55, + "end": 1.63, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.63, + "end": 1.72, + "mouth": "e", + "source": "C" + }, + { + "start": 1.72, + "end": 1.8, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.8, + "end": 1.98, + "mouth": "i", + "source": "B" + }, + { + "start": 1.98, + "end": 2.21, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.21, + "end": 2.77, + "mouth": "i", + "source": "B" + }, + { + "start": 2.77, + "end": 2.84, + "mouth": "e", + "source": "C" + }, + { + "start": 2.84, + "end": 3.2, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.2, + "end": 3.6, + "mouth": "rest", + "source": "X" + }, + { + "start": 3.6, + "end": 3.67, + "mouth": "i", + "source": "B" + }, + { + "start": 3.67, + "end": 3.76, + "mouth": "a", + "source": "D" + }, + { + "start": 3.76, + "end": 3.8, + "mouth": "e", + "source": "C" + }, + { + "start": 3.8, + "end": 4.07, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.07, + "end": 4.24, + "mouth": "i", + "source": "B" + }, + { + "start": 4.24, + "end": 4.36, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.36, + "end": 4.41, + "mouth": "i", + "source": "B" + }, + { + "start": 4.41, + "end": 4.49, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.49, + "end": 4.64, + "mouth": "e", + "source": "C" + }, + { + "start": 4.64, + "end": 4.78, + "mouth": "i", + "source": "B" + }, + { + "start": 4.78, + "end": 4.86, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-015": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-015.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 3.16, + "cues": [ + { + "start": 0, + "end": 0.05, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.05, + "end": 0.13, + "mouth": "i", + "source": "B" + }, + { + "start": 0.13, + "end": 0.21, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.21, + "end": 0.3, + "mouth": "u", + "source": "F" + }, + { + "start": 0.3, + "end": 0.5, + "mouth": "i", + "source": "B" + }, + { + "start": 0.5, + "end": 0.56, + "mouth": "e", + "source": "C" + }, + { + "start": 0.56, + "end": 0.91, + "mouth": "i", + "source": "B" + }, + { + "start": 0.91, + "end": 1.05, + "mouth": "a", + "source": "D" + }, + { + "start": 1.05, + "end": 1.12, + "mouth": "e", + "source": "C" + }, + { + "start": 1.12, + "end": 1.2, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.2, + "end": 1.45, + "mouth": "i", + "source": "B" + }, + { + "start": 1.45, + "end": 1.53, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.53, + "end": 1.69, + "mouth": "o", + "source": "E" + }, + { + "start": 1.69, + "end": 1.77, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.77, + "end": 1.85, + "mouth": "i", + "source": "B" + }, + { + "start": 1.85, + "end": 2.02, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.02, + "end": 2.11, + "mouth": "e", + "source": "C" + }, + { + "start": 2.11, + "end": 2.25, + "mouth": "i", + "source": "B" + }, + { + "start": 2.25, + "end": 2.33, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.33, + "end": 2.69, + "mouth": "i", + "source": "B" + }, + { + "start": 2.69, + "end": 2.78, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.78, + "end": 2.86, + "mouth": "e", + "source": "C" + }, + { + "start": 2.86, + "end": 3.03, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.03, + "end": 3.16, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-016": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-016.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 7, + "cues": [ + { + "start": 0, + "end": 0.04, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.04, + "end": 0.12, + "mouth": "i", + "source": "B" + }, + { + "start": 0.12, + "end": 0.22, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.22, + "end": 0.38, + "mouth": "o", + "source": "E" + }, + { + "start": 0.38, + "end": 0.46, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.46, + "end": 0.53, + "mouth": "u", + "source": "F" + }, + { + "start": 0.53, + "end": 0.59, + "mouth": "e", + "source": "C" + }, + { + "start": 0.59, + "end": 0.74, + "mouth": "i", + "source": "B" + }, + { + "start": 0.74, + "end": 0.8, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.8, + "end": 0.88, + "mouth": "e", + "source": "C" + }, + { + "start": 0.88, + "end": 0.98, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.98, + "end": 1.08, + "mouth": "i", + "source": "B" + }, + { + "start": 1.08, + "end": 1.22, + "mouth": "e", + "source": "C" + }, + { + "start": 1.22, + "end": 1.28, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.28, + "end": 1.34, + "mouth": "e", + "source": "C" + }, + { + "start": 1.34, + "end": 1.42, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.42, + "end": 1.53, + "mouth": "o", + "source": "E" + }, + { + "start": 1.53, + "end": 1.67, + "mouth": "i", + "source": "B" + }, + { + "start": 1.67, + "end": 1.75, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.75, + "end": 1.85, + "mouth": "e", + "source": "C" + }, + { + "start": 1.85, + "end": 1.93, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.93, + "end": 2.05, + "mouth": "i", + "source": "B" + }, + { + "start": 2.05, + "end": 2.14, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.14, + "end": 2.25, + "mouth": "e", + "source": "C" + }, + { + "start": 2.25, + "end": 2.39, + "mouth": "o", + "source": "E" + }, + { + "start": 2.39, + "end": 2.51, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.51, + "end": 2.55, + "mouth": "i", + "source": "B" + }, + { + "start": 2.55, + "end": 2.59, + "mouth": "e", + "source": "C" + }, + { + "start": 2.59, + "end": 2.68, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.68, + "end": 2.96, + "mouth": "i", + "source": "B" + }, + { + "start": 2.96, + "end": 3.07, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.07, + "end": 3.2, + "mouth": "e", + "source": "C" + }, + { + "start": 3.2, + "end": 3.27, + "mouth": "o", + "source": "E" + }, + { + "start": 3.27, + "end": 3.55, + "mouth": "e", + "source": "C" + }, + { + "start": 3.55, + "end": 3.62, + "mouth": "i", + "source": "B" + }, + { + "start": 3.62, + "end": 3.78, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.78, + "end": 4.07, + "mouth": "i", + "source": "B" + }, + { + "start": 4.07, + "end": 4.51, + "mouth": "rest", + "source": "X" + }, + { + "start": 4.51, + "end": 4.76, + "mouth": "i", + "source": "B" + }, + { + "start": 4.76, + "end": 4.84, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.84, + "end": 4.92, + "mouth": "e", + "source": "C" + }, + { + "start": 4.92, + "end": 5.03, + "mouth": "closed", + "source": "A" + }, + { + "start": 5.03, + "end": 5.07, + "mouth": "i", + "source": "B" + }, + { + "start": 5.07, + "end": 5.11, + "mouth": "e", + "source": "C" + }, + { + "start": 5.11, + "end": 5.21, + "mouth": "a", + "source": "D" + }, + { + "start": 5.21, + "end": 5.25, + "mouth": "e", + "source": "C" + }, + { + "start": 5.25, + "end": 5.35, + "mouth": "closed", + "source": "A" + }, + { + "start": 5.35, + "end": 5.44, + "mouth": "e", + "source": "C" + }, + { + "start": 5.44, + "end": 5.86, + "mouth": "i", + "source": "B" + }, + { + "start": 5.86, + "end": 5.94, + "mouth": "closed", + "source": "A" + }, + { + "start": 5.94, + "end": 6.21, + "mouth": "i", + "source": "B" + }, + { + "start": 6.21, + "end": 6.28, + "mouth": "e", + "source": "C" + }, + { + "start": 6.28, + "end": 6.45, + "mouth": "closed", + "source": "A" + }, + { + "start": 6.45, + "end": 6.49, + "mouth": "e", + "source": "C" + }, + { + "start": 6.49, + "end": 6.53, + "mouth": "i", + "source": "B" + }, + { + "start": 6.53, + "end": 6.61, + "mouth": "closed", + "source": "A" + }, + { + "start": 6.61, + "end": 6.7, + "mouth": "i", + "source": "B" + }, + { + "start": 6.7, + "end": 6.87, + "mouth": "closed", + "source": "A" + }, + { + "start": 6.87, + "end": 7, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-017": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-017.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 6.02, + "cues": [ + { + "start": 0, + "end": 0.03, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.03, + "end": 0.09, + "mouth": "i", + "source": "B" + }, + { + "start": 0.09, + "end": 0.15, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.15, + "end": 0.21, + "mouth": "e", + "source": "C" + }, + { + "start": 0.21, + "end": 0.29, + "mouth": "a", + "source": "D" + }, + { + "start": 0.29, + "end": 0.33, + "mouth": "e", + "source": "C" + }, + { + "start": 0.33, + "end": 0.4, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.4, + "end": 0.47, + "mouth": "i", + "source": "B" + }, + { + "start": 0.47, + "end": 0.55, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.55, + "end": 0.63, + "mouth": "e", + "source": "C" + }, + { + "start": 0.63, + "end": 0.7, + "mouth": "i", + "source": "B" + }, + { + "start": 0.7, + "end": 0.84, + "mouth": "e", + "source": "C" + }, + { + "start": 0.84, + "end": 0.92, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.92, + "end": 1.08, + "mouth": "u", + "source": "F" + }, + { + "start": 1.08, + "end": 1.22, + "mouth": "i", + "source": "B" + }, + { + "start": 1.22, + "end": 1.32, + "mouth": "a", + "source": "D" + }, + { + "start": 1.32, + "end": 1.36, + "mouth": "e", + "source": "C" + }, + { + "start": 1.36, + "end": 1.47, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.47, + "end": 1.52, + "mouth": "e", + "source": "C" + }, + { + "start": 1.52, + "end": 1.57, + "mouth": "i", + "source": "B" + }, + { + "start": 1.57, + "end": 1.64, + "mouth": "u", + "source": "F" + }, + { + "start": 1.64, + "end": 1.85, + "mouth": "e", + "source": "C" + }, + { + "start": 1.85, + "end": 1.92, + "mouth": "i", + "source": "B" + }, + { + "start": 1.92, + "end": 2, + "mouth": "closed", + "source": "A" + }, + { + "start": 2, + "end": 2.21, + "mouth": "i", + "source": "B" + }, + { + "start": 2.21, + "end": 2.26, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.26, + "end": 2.31, + "mouth": "e", + "source": "C" + }, + { + "start": 2.31, + "end": 2.37, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.37, + "end": 2.43, + "mouth": "i", + "source": "B" + }, + { + "start": 2.43, + "end": 2.49, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.49, + "end": 2.75, + "mouth": "i", + "source": "B" + }, + { + "start": 2.75, + "end": 3.17, + "mouth": "rest", + "source": "X" + }, + { + "start": 3.17, + "end": 3.41, + "mouth": "e", + "source": "C" + }, + { + "start": 3.41, + "end": 3.49, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.49, + "end": 3.58, + "mouth": "a", + "source": "D" + }, + { + "start": 3.58, + "end": 3.79, + "mouth": "e", + "source": "C" + }, + { + "start": 3.79, + "end": 3.86, + "mouth": "i", + "source": "B" + }, + { + "start": 3.86, + "end": 3.93, + "mouth": "e", + "source": "C" + }, + { + "start": 3.93, + "end": 4.07, + "mouth": "a", + "source": "D" + }, + { + "start": 4.07, + "end": 4.14, + "mouth": "i", + "source": "B" + }, + { + "start": 4.14, + "end": 4.2, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.2, + "end": 4.26, + "mouth": "u", + "source": "F" + }, + { + "start": 4.26, + "end": 4.32, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.32, + "end": 4.53, + "mouth": "i", + "source": "B" + }, + { + "start": 4.53, + "end": 4.67, + "mouth": "e", + "source": "C" + }, + { + "start": 4.67, + "end": 4.75, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.75, + "end": 4.98, + "mouth": "e", + "source": "C" + }, + { + "start": 4.98, + "end": 5.07, + "mouth": "closed", + "source": "A" + }, + { + "start": 5.07, + "end": 5.21, + "mouth": "e", + "source": "C" + }, + { + "start": 5.21, + "end": 5.35, + "mouth": "i", + "source": "B" + }, + { + "start": 5.35, + "end": 5.42, + "mouth": "e", + "source": "C" + }, + { + "start": 5.42, + "end": 5.57, + "mouth": "i", + "source": "B" + }, + { + "start": 5.57, + "end": 5.63, + "mouth": "closed", + "source": "A" + }, + { + "start": 5.63, + "end": 5.69, + "mouth": "i", + "source": "B" + }, + { + "start": 5.69, + "end": 5.77, + "mouth": "closed", + "source": "A" + }, + { + "start": 5.77, + "end": 5.89, + "mouth": "i", + "source": "B" + }, + { + "start": 5.89, + "end": 6.02, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-018": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-018.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 3.63, + "cues": [ + { + "start": 0, + "end": 0.02, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.02, + "end": 0.1, + "mouth": "i", + "source": "B" + }, + { + "start": 0.1, + "end": 0.17, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.17, + "end": 0.27, + "mouth": "i", + "source": "B" + }, + { + "start": 0.27, + "end": 0.41, + "mouth": "u", + "source": "F" + }, + { + "start": 0.41, + "end": 0.69, + "mouth": "i", + "source": "B" + }, + { + "start": 0.69, + "end": 0.83, + "mouth": "a", + "source": "D" + }, + { + "start": 0.83, + "end": 0.9, + "mouth": "e", + "source": "C" + }, + { + "start": 0.9, + "end": 1.46, + "mouth": "i", + "source": "B" + }, + { + "start": 1.46, + "end": 1.6, + "mouth": "e", + "source": "C" + }, + { + "start": 1.6, + "end": 1.74, + "mouth": "i", + "source": "B" + }, + { + "start": 1.74, + "end": 2.01, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.01, + "end": 2.16, + "mouth": "i", + "source": "B" + }, + { + "start": 2.16, + "end": 2.26, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.26, + "end": 2.4, + "mouth": "e", + "source": "C" + }, + { + "start": 2.4, + "end": 2.48, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.48, + "end": 2.82, + "mouth": "i", + "source": "B" + }, + { + "start": 2.82, + "end": 2.9, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.9, + "end": 2.94, + "mouth": "e", + "source": "C" + }, + { + "start": 2.94, + "end": 2.98, + "mouth": "i", + "source": "B" + }, + { + "start": 2.98, + "end": 3.08, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.08, + "end": 3.22, + "mouth": "o", + "source": "E" + }, + { + "start": 3.22, + "end": 3.3, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.3, + "end": 3.42, + "mouth": "e", + "source": "C" + }, + { + "start": 3.42, + "end": 3.56, + "mouth": "i", + "source": "B" + }, + { + "start": 3.56, + "end": 3.63, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-019": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-019.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 6.49, + "cues": [ + { + "start": 0, + "end": 0.04, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.04, + "end": 0.12, + "mouth": "i", + "source": "B" + }, + { + "start": 0.12, + "end": 0.22, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.22, + "end": 0.38, + "mouth": "o", + "source": "E" + }, + { + "start": 0.38, + "end": 0.46, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.46, + "end": 0.53, + "mouth": "u", + "source": "F" + }, + { + "start": 0.53, + "end": 0.59, + "mouth": "e", + "source": "C" + }, + { + "start": 0.59, + "end": 0.73, + "mouth": "i", + "source": "B" + }, + { + "start": 0.73, + "end": 0.99, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.99, + "end": 1.08, + "mouth": "i", + "source": "B" + }, + { + "start": 1.08, + "end": 1.36, + "mouth": "e", + "source": "C" + }, + { + "start": 1.36, + "end": 1.5, + "mouth": "o", + "source": "E" + }, + { + "start": 1.5, + "end": 1.91, + "mouth": "rest", + "source": "X" + }, + { + "start": 1.91, + "end": 2.03, + "mouth": "i", + "source": "B" + }, + { + "start": 2.03, + "end": 2.1, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.1, + "end": 2.29, + "mouth": "e", + "source": "C" + }, + { + "start": 2.29, + "end": 2.5, + "mouth": "o", + "source": "E" + }, + { + "start": 2.5, + "end": 2.57, + "mouth": "i", + "source": "B" + }, + { + "start": 2.57, + "end": 2.64, + "mouth": "e", + "source": "C" + }, + { + "start": 2.64, + "end": 2.78, + "mouth": "i", + "source": "B" + }, + { + "start": 2.78, + "end": 2.85, + "mouth": "e", + "source": "C" + }, + { + "start": 2.85, + "end": 2.92, + "mouth": "i", + "source": "B" + }, + { + "start": 2.92, + "end": 3, + "mouth": "closed", + "source": "A" + }, + { + "start": 3, + "end": 3.1, + "mouth": "a", + "source": "D" + }, + { + "start": 3.1, + "end": 3.14, + "mouth": "e", + "source": "C" + }, + { + "start": 3.14, + "end": 3.22, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.22, + "end": 3.82, + "mouth": "i", + "source": "B" + }, + { + "start": 3.82, + "end": 4.1, + "mouth": "a", + "source": "D" + }, + { + "start": 4.1, + "end": 4.17, + "mouth": "e", + "source": "C" + }, + { + "start": 4.17, + "end": 4.25, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.25, + "end": 4.31, + "mouth": "i", + "source": "B" + }, + { + "start": 4.31, + "end": 4.43, + "mouth": "e", + "source": "C" + }, + { + "start": 4.43, + "end": 4.5, + "mouth": "i", + "source": "B" + }, + { + "start": 4.5, + "end": 4.58, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.58, + "end": 4.73, + "mouth": "e", + "source": "C" + }, + { + "start": 4.73, + "end": 4.8, + "mouth": "i", + "source": "B" + }, + { + "start": 4.8, + "end": 4.9, + "mouth": "a", + "source": "D" + }, + { + "start": 4.9, + "end": 4.94, + "mouth": "e", + "source": "C" + }, + { + "start": 4.94, + "end": 5.02, + "mouth": "closed", + "source": "A" + }, + { + "start": 5.02, + "end": 5.25, + "mouth": "i", + "source": "B" + }, + { + "start": 5.25, + "end": 5.45, + "mouth": "closed", + "source": "A" + }, + { + "start": 5.45, + "end": 5.53, + "mouth": "i", + "source": "B" + }, + { + "start": 5.53, + "end": 5.62, + "mouth": "closed", + "source": "A" + }, + { + "start": 5.62, + "end": 5.69, + "mouth": "i", + "source": "B" + }, + { + "start": 5.69, + "end": 5.82, + "mouth": "u", + "source": "F" + }, + { + "start": 5.82, + "end": 5.9, + "mouth": "closed", + "source": "A" + }, + { + "start": 5.9, + "end": 6.13, + "mouth": "i", + "source": "B" + }, + { + "start": 6.13, + "end": 6.34, + "mouth": "e", + "source": "C" + }, + { + "start": 6.34, + "end": 6.41, + "mouth": "i", + "source": "B" + }, + { + "start": 6.41, + "end": 6.49, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-020": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-020.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 3.6, + "cues": [ + { + "start": 0, + "end": 0.11, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.11, + "end": 0.32, + "mouth": "i", + "source": "B" + }, + { + "start": 0.32, + "end": 0.4, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.4, + "end": 0.58, + "mouth": "e", + "source": "C" + }, + { + "start": 0.58, + "end": 0.65, + "mouth": "i", + "source": "B" + }, + { + "start": 0.65, + "end": 0.75, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.75, + "end": 0.93, + "mouth": "u", + "source": "F" + }, + { + "start": 0.93, + "end": 1.01, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.01, + "end": 1.14, + "mouth": "i", + "source": "B" + }, + { + "start": 1.14, + "end": 1.47, + "mouth": "rest", + "source": "X" + }, + { + "start": 1.47, + "end": 1.55, + "mouth": "i", + "source": "B" + }, + { + "start": 1.55, + "end": 1.63, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.63, + "end": 2.08, + "mouth": "i", + "source": "B" + }, + { + "start": 2.08, + "end": 2.16, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.16, + "end": 2.23, + "mouth": "i", + "source": "B" + }, + { + "start": 2.23, + "end": 2.3, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.3, + "end": 2.38, + "mouth": "i", + "source": "B" + }, + { + "start": 2.38, + "end": 2.45, + "mouth": "a", + "source": "D" + }, + { + "start": 2.45, + "end": 2.52, + "mouth": "u", + "source": "F" + }, + { + "start": 2.52, + "end": 2.6, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.6, + "end": 2.92, + "mouth": "i", + "source": "B" + }, + { + "start": 2.92, + "end": 3, + "mouth": "closed", + "source": "A" + }, + { + "start": 3, + "end": 3.04, + "mouth": "e", + "source": "C" + }, + { + "start": 3.04, + "end": 3.08, + "mouth": "i", + "source": "B" + }, + { + "start": 3.08, + "end": 3.2, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.2, + "end": 3.31, + "mouth": "e", + "source": "C" + }, + { + "start": 3.31, + "end": 3.52, + "mouth": "o", + "source": "E" + }, + { + "start": 3.52, + "end": 3.6, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-021": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-021.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 0.99, + "cues": [ + { + "start": 0, + "end": 0.08, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.08, + "end": 0.22, + "mouth": "i", + "source": "B" + }, + { + "start": 0.22, + "end": 0.29, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.29, + "end": 0.36, + "mouth": "i", + "source": "B" + }, + { + "start": 0.36, + "end": 0.44, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.44, + "end": 0.51, + "mouth": "e", + "source": "C" + }, + { + "start": 0.51, + "end": 0.65, + "mouth": "i", + "source": "B" + }, + { + "start": 0.65, + "end": 0.72, + "mouth": "e", + "source": "C" + }, + { + "start": 0.72, + "end": 0.93, + "mouth": "i", + "source": "B" + }, + { + "start": 0.93, + "end": 0.99, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-022": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-022.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 5.3, + "cues": [ + { + "start": 0, + "end": 0.11, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.11, + "end": 0.27, + "mouth": "i", + "source": "B" + }, + { + "start": 0.27, + "end": 0.34, + "mouth": "u", + "source": "F" + }, + { + "start": 0.34, + "end": 0.42, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.42, + "end": 0.5, + "mouth": "o", + "source": "E" + }, + { + "start": 0.5, + "end": 0.64, + "mouth": "u", + "source": "F" + }, + { + "start": 0.64, + "end": 0.72, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.72, + "end": 0.78, + "mouth": "a", + "source": "D" + }, + { + "start": 0.78, + "end": 0.9, + "mouth": "i", + "source": "B" + }, + { + "start": 0.9, + "end": 1.02, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.02, + "end": 1.06, + "mouth": "i", + "source": "B" + }, + { + "start": 1.06, + "end": 1.1, + "mouth": "e", + "source": "C" + }, + { + "start": 1.1, + "end": 1.17, + "mouth": "a", + "source": "D" + }, + { + "start": 1.17, + "end": 1.66, + "mouth": "i", + "source": "B" + }, + { + "start": 1.66, + "end": 1.74, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.74, + "end": 1.96, + "mouth": "i", + "source": "B" + }, + { + "start": 1.96, + "end": 2.02, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.02, + "end": 2.08, + "mouth": "i", + "source": "B" + }, + { + "start": 2.08, + "end": 2.16, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.16, + "end": 2.52, + "mouth": "i", + "source": "B" + }, + { + "start": 2.52, + "end": 2.94, + "mouth": "rest", + "source": "X" + }, + { + "start": 2.94, + "end": 3.04, + "mouth": "i", + "source": "B" + }, + { + "start": 3.04, + "end": 3.18, + "mouth": "u", + "source": "F" + }, + { + "start": 3.18, + "end": 3.32, + "mouth": "e", + "source": "C" + }, + { + "start": 3.32, + "end": 3.39, + "mouth": "i", + "source": "B" + }, + { + "start": 3.39, + "end": 3.6, + "mouth": "a", + "source": "D" + }, + { + "start": 3.6, + "end": 3.74, + "mouth": "i", + "source": "B" + }, + { + "start": 3.74, + "end": 3.82, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.82, + "end": 3.92, + "mouth": "e", + "source": "C" + }, + { + "start": 3.92, + "end": 3.94, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.94, + "end": 4, + "mouth": "i", + "source": "B" + }, + { + "start": 4, + "end": 4.06, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.06, + "end": 4.19, + "mouth": "e", + "source": "C" + }, + { + "start": 4.19, + "end": 4.47, + "mouth": "u", + "source": "F" + }, + { + "start": 4.47, + "end": 4.61, + "mouth": "i", + "source": "B" + }, + { + "start": 4.61, + "end": 4.91, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.91, + "end": 4.99, + "mouth": "e", + "source": "C" + }, + { + "start": 4.99, + "end": 5.16, + "mouth": "closed", + "source": "A" + }, + { + "start": 5.16, + "end": 5.3, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-023": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-023.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 2.9, + "cues": [ + { + "start": 0, + "end": 0.04, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.04, + "end": 0.12, + "mouth": "i", + "source": "B" + }, + { + "start": 0.12, + "end": 0.2, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.2, + "end": 0.32, + "mouth": "i", + "source": "B" + }, + { + "start": 0.32, + "end": 0.44, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.44, + "end": 0.62, + "mouth": "i", + "source": "B" + }, + { + "start": 0.62, + "end": 0.7, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.7, + "end": 1.01, + "mouth": "i", + "source": "B" + }, + { + "start": 1.01, + "end": 1.08, + "mouth": "o", + "source": "E" + }, + { + "start": 1.08, + "end": 1.15, + "mouth": "i", + "source": "B" + }, + { + "start": 1.15, + "end": 1.36, + "mouth": "e", + "source": "C" + }, + { + "start": 1.36, + "end": 1.85, + "mouth": "i", + "source": "B" + }, + { + "start": 1.85, + "end": 1.92, + "mouth": "o", + "source": "E" + }, + { + "start": 1.92, + "end": 2.33, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.33, + "end": 2.42, + "mouth": "i", + "source": "B" + }, + { + "start": 2.42, + "end": 2.76, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.76, + "end": 2.9, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-024": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-024.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 5.66, + "cues": [ + { + "start": 0, + "end": 0.08, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.08, + "end": 0.12, + "mouth": "i", + "source": "B" + }, + { + "start": 0.12, + "end": 0.16, + "mouth": "e", + "source": "C" + }, + { + "start": 0.16, + "end": 0.37, + "mouth": "i", + "source": "B" + }, + { + "start": 0.37, + "end": 0.44, + "mouth": "e", + "source": "C" + }, + { + "start": 0.44, + "end": 0.58, + "mouth": "a", + "source": "D" + }, + { + "start": 0.58, + "end": 0.65, + "mouth": "e", + "source": "C" + }, + { + "start": 0.65, + "end": 0.73, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.73, + "end": 0.87, + "mouth": "i", + "source": "B" + }, + { + "start": 0.87, + "end": 0.95, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.95, + "end": 1.1, + "mouth": "e", + "source": "C" + }, + { + "start": 1.1, + "end": 1.31, + "mouth": "i", + "source": "B" + }, + { + "start": 1.31, + "end": 1.82, + "mouth": "rest", + "source": "X" + }, + { + "start": 1.82, + "end": 1.86, + "mouth": "i", + "source": "B" + }, + { + "start": 1.86, + "end": 1.97, + "mouth": "u", + "source": "F" + }, + { + "start": 1.97, + "end": 2.05, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.05, + "end": 2.2, + "mouth": "u", + "source": "F" + }, + { + "start": 2.2, + "end": 2.28, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.28, + "end": 2.44, + "mouth": "e", + "source": "C" + }, + { + "start": 2.44, + "end": 2.58, + "mouth": "i", + "source": "B" + }, + { + "start": 2.58, + "end": 2.65, + "mouth": "e", + "source": "C" + }, + { + "start": 2.65, + "end": 2.72, + "mouth": "i", + "source": "B" + }, + { + "start": 2.72, + "end": 3.12, + "mouth": "rest", + "source": "X" + }, + { + "start": 3.12, + "end": 3.69, + "mouth": "i", + "source": "B" + }, + { + "start": 3.69, + "end": 3.83, + "mouth": "a", + "source": "D" + }, + { + "start": 3.83, + "end": 3.9, + "mouth": "e", + "source": "C" + }, + { + "start": 3.9, + "end": 3.99, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.99, + "end": 4.06, + "mouth": "i", + "source": "B" + }, + { + "start": 4.06, + "end": 4.12, + "mouth": "e", + "source": "C" + }, + { + "start": 4.12, + "end": 4.2, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.2, + "end": 4.28, + "mouth": "i", + "source": "B" + }, + { + "start": 4.28, + "end": 4.36, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.36, + "end": 4.43, + "mouth": "i", + "source": "B" + }, + { + "start": 4.43, + "end": 4.64, + "mouth": "u", + "source": "F" + }, + { + "start": 4.64, + "end": 4.78, + "mouth": "i", + "source": "B" + }, + { + "start": 4.78, + "end": 4.86, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.86, + "end": 4.95, + "mouth": "o", + "source": "E" + }, + { + "start": 4.95, + "end": 5.16, + "mouth": "i", + "source": "B" + }, + { + "start": 5.16, + "end": 5.24, + "mouth": "closed", + "source": "A" + }, + { + "start": 5.24, + "end": 5.35, + "mouth": "i", + "source": "B" + }, + { + "start": 5.35, + "end": 5.52, + "mouth": "closed", + "source": "A" + }, + { + "start": 5.52, + "end": 5.66, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-025": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-025.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 2.66, + "cues": [ + { + "start": 0, + "end": 0.09, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.09, + "end": 0.47, + "mouth": "i", + "source": "B" + }, + { + "start": 0.47, + "end": 0.61, + "mouth": "e", + "source": "C" + }, + { + "start": 0.61, + "end": 1.1, + "mouth": "i", + "source": "B" + }, + { + "start": 1.1, + "end": 1.21, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.21, + "end": 1.26, + "mouth": "o", + "source": "E" + }, + { + "start": 1.26, + "end": 1.3, + "mouth": "e", + "source": "C" + }, + { + "start": 1.3, + "end": 1.38, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.38, + "end": 1.44, + "mouth": "e", + "source": "C" + }, + { + "start": 1.44, + "end": 1.64, + "mouth": "i", + "source": "B" + }, + { + "start": 1.64, + "end": 1.72, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.72, + "end": 1.77, + "mouth": "i", + "source": "B" + }, + { + "start": 1.77, + "end": 1.88, + "mouth": "o", + "source": "E" + }, + { + "start": 1.88, + "end": 1.95, + "mouth": "i", + "source": "B" + }, + { + "start": 1.95, + "end": 2.03, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.03, + "end": 2.11, + "mouth": "i", + "source": "B" + }, + { + "start": 2.11, + "end": 2.25, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.25, + "end": 2.55, + "mouth": "u", + "source": "F" + }, + { + "start": 2.55, + "end": 2.66, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-026": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-026.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 1.93, + "cues": [ + { + "start": 0, + "end": 0.04, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.04, + "end": 0.12, + "mouth": "i", + "source": "B" + }, + { + "start": 0.12, + "end": 0.2, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.2, + "end": 0.31, + "mouth": "e", + "source": "C" + }, + { + "start": 0.31, + "end": 0.43, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.43, + "end": 0.5, + "mouth": "u", + "source": "F" + }, + { + "start": 0.5, + "end": 0.63, + "mouth": "i", + "source": "B" + }, + { + "start": 0.63, + "end": 0.77, + "mouth": "e", + "source": "C" + }, + { + "start": 0.77, + "end": 0.98, + "mouth": "u", + "source": "F" + }, + { + "start": 0.98, + "end": 1.06, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.06, + "end": 1.16, + "mouth": "i", + "source": "B" + }, + { + "start": 1.16, + "end": 1.24, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.24, + "end": 1.39, + "mouth": "e", + "source": "C" + }, + { + "start": 1.39, + "end": 1.46, + "mouth": "u", + "source": "F" + }, + { + "start": 1.46, + "end": 1.54, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.54, + "end": 1.84, + "mouth": "i", + "source": "B" + }, + { + "start": 1.84, + "end": 1.93, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-027": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-027.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 0.88, + "cues": [ + { + "start": 0, + "end": 0.08, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.08, + "end": 0.25, + "mouth": "e", + "source": "C" + }, + { + "start": 0.25, + "end": 0.52, + "mouth": "i", + "source": "B" + }, + { + "start": 0.52, + "end": 0.65, + "mouth": "u", + "source": "F" + }, + { + "start": 0.65, + "end": 0.73, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.73, + "end": 0.81, + "mouth": "i", + "source": "B" + }, + { + "start": 0.81, + "end": 0.88, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-028": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-028.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 5.32, + "cues": [ + { + "start": 0, + "end": 0.1, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.1, + "end": 0.32, + "mouth": "i", + "source": "B" + }, + { + "start": 0.32, + "end": 0.39, + "mouth": "e", + "source": "C" + }, + { + "start": 0.39, + "end": 0.67, + "mouth": "i", + "source": "B" + }, + { + "start": 0.67, + "end": 0.75, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.75, + "end": 0.83, + "mouth": "i", + "source": "B" + }, + { + "start": 0.83, + "end": 0.92, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.92, + "end": 1.08, + "mouth": "e", + "source": "C" + }, + { + "start": 1.08, + "end": 1.57, + "mouth": "i", + "source": "B" + }, + { + "start": 1.57, + "end": 1.66, + "mouth": "u", + "source": "F" + }, + { + "start": 1.66, + "end": 1.73, + "mouth": "e", + "source": "C" + }, + { + "start": 1.73, + "end": 1.8, + "mouth": "a", + "source": "D" + }, + { + "start": 1.8, + "end": 1.88, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.88, + "end": 1.94, + "mouth": "a", + "source": "D" + }, + { + "start": 1.94, + "end": 2.06, + "mouth": "e", + "source": "C" + }, + { + "start": 2.06, + "end": 2.18, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.18, + "end": 2.67, + "mouth": "u", + "source": "F" + }, + { + "start": 2.67, + "end": 2.88, + "mouth": "i", + "source": "B" + }, + { + "start": 2.88, + "end": 2.96, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.96, + "end": 3.08, + "mouth": "i", + "source": "B" + }, + { + "start": 3.08, + "end": 3.15, + "mouth": "e", + "source": "C" + }, + { + "start": 3.15, + "end": 3.22, + "mouth": "i", + "source": "B" + }, + { + "start": 3.22, + "end": 3.62, + "mouth": "rest", + "source": "X" + }, + { + "start": 3.62, + "end": 3.76, + "mouth": "i", + "source": "B" + }, + { + "start": 3.76, + "end": 3.84, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.84, + "end": 4.01, + "mouth": "a", + "source": "D" + }, + { + "start": 4.01, + "end": 4.08, + "mouth": "e", + "source": "C" + }, + { + "start": 4.08, + "end": 4.15, + "mouth": "i", + "source": "B" + }, + { + "start": 4.15, + "end": 4.29, + "mouth": "u", + "source": "F" + }, + { + "start": 4.29, + "end": 4.35, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.35, + "end": 4.41, + "mouth": "i", + "source": "B" + }, + { + "start": 4.41, + "end": 4.47, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.47, + "end": 4.84, + "mouth": "i", + "source": "B" + }, + { + "start": 4.84, + "end": 5.01, + "mouth": "closed", + "source": "A" + }, + { + "start": 5.01, + "end": 5.18, + "mouth": "i", + "source": "B" + }, + { + "start": 5.18, + "end": 5.32, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-029": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-029.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 2.1, + "cues": [ + { + "start": 0, + "end": 0.06, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.06, + "end": 0.27, + "mouth": "i", + "source": "B" + }, + { + "start": 0.27, + "end": 0.48, + "mouth": "e", + "source": "C" + }, + { + "start": 0.48, + "end": 0.62, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.62, + "end": 0.95, + "mouth": "i", + "source": "B" + }, + { + "start": 0.95, + "end": 1.23, + "mouth": "o", + "source": "E" + }, + { + "start": 1.23, + "end": 1.37, + "mouth": "i", + "source": "B" + }, + { + "start": 1.37, + "end": 1.45, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.45, + "end": 1.52, + "mouth": "o", + "source": "E" + }, + { + "start": 1.52, + "end": 1.66, + "mouth": "i", + "source": "B" + }, + { + "start": 1.66, + "end": 1.73, + "mouth": "e", + "source": "C" + }, + { + "start": 1.73, + "end": 2.01, + "mouth": "i", + "source": "B" + }, + { + "start": 2.01, + "end": 2.1, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-030": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-030.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 6.24, + "cues": [ + { + "start": 0, + "end": 0.07, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.07, + "end": 0.16, + "mouth": "a", + "source": "D" + }, + { + "start": 0.16, + "end": 0.2, + "mouth": "e", + "source": "C" + }, + { + "start": 0.2, + "end": 0.28, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.28, + "end": 0.51, + "mouth": "e", + "source": "C" + }, + { + "start": 0.51, + "end": 0.65, + "mouth": "i", + "source": "B" + }, + { + "start": 0.65, + "end": 0.82, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.82, + "end": 1.09, + "mouth": "i", + "source": "B" + }, + { + "start": 1.09, + "end": 1.17, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.17, + "end": 1.36, + "mouth": "u", + "source": "F" + }, + { + "start": 1.36, + "end": 1.64, + "mouth": "i", + "source": "B" + }, + { + "start": 1.64, + "end": 1.85, + "mouth": "e", + "source": "C" + }, + { + "start": 1.85, + "end": 2.38, + "mouth": "i", + "source": "B" + }, + { + "start": 2.38, + "end": 2.4, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.4, + "end": 2.47, + "mouth": "i", + "source": "B" + }, + { + "start": 2.47, + "end": 2.54, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.54, + "end": 2.6, + "mouth": "e", + "source": "C" + }, + { + "start": 2.6, + "end": 2.87, + "mouth": "i", + "source": "B" + }, + { + "start": 2.87, + "end": 3.28, + "mouth": "rest", + "source": "X" + }, + { + "start": 3.28, + "end": 3.36, + "mouth": "i", + "source": "B" + }, + { + "start": 3.36, + "end": 3.44, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.44, + "end": 3.5, + "mouth": "i", + "source": "B" + }, + { + "start": 3.5, + "end": 3.69, + "mouth": "e", + "source": "C" + }, + { + "start": 3.69, + "end": 3.76, + "mouth": "i", + "source": "B" + }, + { + "start": 3.76, + "end": 3.83, + "mouth": "u", + "source": "F" + }, + { + "start": 3.83, + "end": 3.9, + "mouth": "o", + "source": "E" + }, + { + "start": 3.9, + "end": 3.98, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.98, + "end": 4.12, + "mouth": "o", + "source": "E" + }, + { + "start": 4.12, + "end": 4.19, + "mouth": "u", + "source": "F" + }, + { + "start": 4.19, + "end": 4.33, + "mouth": "i", + "source": "B" + }, + { + "start": 4.33, + "end": 4.41, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.41, + "end": 4.49, + "mouth": "e", + "source": "C" + }, + { + "start": 4.49, + "end": 4.59, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.59, + "end": 4.75, + "mouth": "o", + "source": "E" + }, + { + "start": 4.75, + "end": 4.89, + "mouth": "u", + "source": "F" + }, + { + "start": 4.89, + "end": 4.96, + "mouth": "e", + "source": "C" + }, + { + "start": 4.96, + "end": 5.31, + "mouth": "i", + "source": "B" + }, + { + "start": 5.31, + "end": 5.37, + "mouth": "closed", + "source": "A" + }, + { + "start": 5.37, + "end": 5.43, + "mouth": "i", + "source": "B" + }, + { + "start": 5.43, + "end": 5.49, + "mouth": "closed", + "source": "A" + }, + { + "start": 5.49, + "end": 5.58, + "mouth": "i", + "source": "B" + }, + { + "start": 5.58, + "end": 5.66, + "mouth": "closed", + "source": "A" + }, + { + "start": 5.66, + "end": 5.74, + "mouth": "i", + "source": "B" + }, + { + "start": 5.74, + "end": 5.82, + "mouth": "closed", + "source": "A" + }, + { + "start": 5.82, + "end": 5.93, + "mouth": "i", + "source": "B" + }, + { + "start": 5.93, + "end": 6.1, + "mouth": "closed", + "source": "A" + }, + { + "start": 6.1, + "end": 6.24, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-031": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-031.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 6.33, + "cues": [ + { + "start": 0, + "end": 0.08, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.08, + "end": 0.13, + "mouth": "i", + "source": "B" + }, + { + "start": 0.13, + "end": 0.25, + "mouth": "e", + "source": "C" + }, + { + "start": 0.25, + "end": 0.4, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.4, + "end": 0.55, + "mouth": "i", + "source": "B" + }, + { + "start": 0.55, + "end": 0.69, + "mouth": "e", + "source": "C" + }, + { + "start": 0.69, + "end": 0.83, + "mouth": "i", + "source": "B" + }, + { + "start": 0.83, + "end": 1.14, + "mouth": "rest", + "source": "X" + }, + { + "start": 1.14, + "end": 1.24, + "mouth": "i", + "source": "B" + }, + { + "start": 1.24, + "end": 1.31, + "mouth": "e", + "source": "C" + }, + { + "start": 1.31, + "end": 1.45, + "mouth": "u", + "source": "F" + }, + { + "start": 1.45, + "end": 1.52, + "mouth": "i", + "source": "B" + }, + { + "start": 1.52, + "end": 1.6, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.6, + "end": 1.74, + "mouth": "o", + "source": "E" + }, + { + "start": 1.74, + "end": 1.81, + "mouth": "u", + "source": "F" + }, + { + "start": 1.81, + "end": 1.94, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.94, + "end": 2.03, + "mouth": "o", + "source": "E" + }, + { + "start": 2.03, + "end": 2.32, + "mouth": "e", + "source": "C" + }, + { + "start": 2.32, + "end": 2.38, + "mouth": "i", + "source": "B" + }, + { + "start": 2.38, + "end": 2.43, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.43, + "end": 2.51, + "mouth": "i", + "source": "B" + }, + { + "start": 2.51, + "end": 2.59, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.59, + "end": 2.69, + "mouth": "a", + "source": "D" + }, + { + "start": 2.69, + "end": 2.76, + "mouth": "i", + "source": "B" + }, + { + "start": 2.76, + "end": 3.04, + "mouth": "e", + "source": "C" + }, + { + "start": 3.04, + "end": 3.53, + "mouth": "i", + "source": "B" + }, + { + "start": 3.53, + "end": 3.6, + "mouth": "e", + "source": "C" + }, + { + "start": 3.6, + "end": 3.67, + "mouth": "i", + "source": "B" + }, + { + "start": 3.67, + "end": 3.75, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.75, + "end": 3.84, + "mouth": "e", + "source": "C" + }, + { + "start": 3.84, + "end": 3.92, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.92, + "end": 4.08, + "mouth": "i", + "source": "B" + }, + { + "start": 4.08, + "end": 4.15, + "mouth": "e", + "source": "C" + }, + { + "start": 4.15, + "end": 4.22, + "mouth": "i", + "source": "B" + }, + { + "start": 4.22, + "end": 4.62, + "mouth": "rest", + "source": "X" + }, + { + "start": 4.62, + "end": 4.66, + "mouth": "e", + "source": "C" + }, + { + "start": 4.66, + "end": 4.74, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.74, + "end": 4.87, + "mouth": "i", + "source": "B" + }, + { + "start": 4.87, + "end": 4.95, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.95, + "end": 5.48, + "mouth": "i", + "source": "B" + }, + { + "start": 5.48, + "end": 5.69, + "mouth": "u", + "source": "F" + }, + { + "start": 5.69, + "end": 5.77, + "mouth": "closed", + "source": "A" + }, + { + "start": 5.77, + "end": 5.84, + "mouth": "e", + "source": "C" + }, + { + "start": 5.84, + "end": 5.97, + "mouth": "i", + "source": "B" + }, + { + "start": 5.97, + "end": 6.11, + "mouth": "e", + "source": "C" + }, + { + "start": 6.11, + "end": 6.25, + "mouth": "i", + "source": "B" + }, + { + "start": 6.25, + "end": 6.33, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-032": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-032.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 4.45, + "cues": [ + { + "start": 0, + "end": 0.03, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.03, + "end": 0.1, + "mouth": "i", + "source": "B" + }, + { + "start": 0.1, + "end": 0.17, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.17, + "end": 0.24, + "mouth": "i", + "source": "B" + }, + { + "start": 0.24, + "end": 0.37, + "mouth": "a", + "source": "D" + }, + { + "start": 0.37, + "end": 0.44, + "mouth": "i", + "source": "B" + }, + { + "start": 0.44, + "end": 0.52, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.52, + "end": 0.59, + "mouth": "o", + "source": "E" + }, + { + "start": 0.59, + "end": 0.66, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.66, + "end": 0.88, + "mouth": "i", + "source": "B" + }, + { + "start": 0.88, + "end": 1.09, + "mouth": "u", + "source": "F" + }, + { + "start": 1.09, + "end": 1.3, + "mouth": "i", + "source": "B" + }, + { + "start": 1.3, + "end": 1.51, + "mouth": "u", + "source": "F" + }, + { + "start": 1.51, + "end": 1.72, + "mouth": "i", + "source": "B" + }, + { + "start": 1.72, + "end": 1.81, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.81, + "end": 1.99, + "mouth": "e", + "source": "C" + }, + { + "start": 1.99, + "end": 2.06, + "mouth": "i", + "source": "B" + }, + { + "start": 2.06, + "end": 2.44, + "mouth": "rest", + "source": "X" + }, + { + "start": 2.44, + "end": 2.53, + "mouth": "i", + "source": "B" + }, + { + "start": 2.53, + "end": 2.61, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.61, + "end": 2.77, + "mouth": "a", + "source": "D" + }, + { + "start": 2.77, + "end": 2.84, + "mouth": "i", + "source": "B" + }, + { + "start": 2.84, + "end": 2.92, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.92, + "end": 2.99, + "mouth": "e", + "source": "C" + }, + { + "start": 2.99, + "end": 3.06, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.06, + "end": 3.23, + "mouth": "i", + "source": "B" + }, + { + "start": 3.23, + "end": 3.31, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.31, + "end": 3.44, + "mouth": "e", + "source": "C" + }, + { + "start": 3.44, + "end": 3.52, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.52, + "end": 3.63, + "mouth": "o", + "source": "E" + }, + { + "start": 3.63, + "end": 3.7, + "mouth": "u", + "source": "F" + }, + { + "start": 3.7, + "end": 3.89, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.89, + "end": 4, + "mouth": "i", + "source": "B" + }, + { + "start": 4, + "end": 4.13, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.13, + "end": 4.31, + "mouth": "i", + "source": "B" + }, + { + "start": 4.31, + "end": 4.45, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-033": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-033.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 5.15, + "cues": [ + { + "start": 0, + "end": 0.09, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.09, + "end": 0.23, + "mouth": "i", + "source": "B" + }, + { + "start": 0.23, + "end": 0.3, + "mouth": "e", + "source": "C" + }, + { + "start": 0.3, + "end": 0.41, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.41, + "end": 0.48, + "mouth": "e", + "source": "C" + }, + { + "start": 0.48, + "end": 0.68, + "mouth": "i", + "source": "B" + }, + { + "start": 0.68, + "end": 1.03, + "mouth": "rest", + "source": "X" + }, + { + "start": 1.03, + "end": 1.34, + "mouth": "i", + "source": "B" + }, + { + "start": 1.34, + "end": 1.41, + "mouth": "e", + "source": "C" + }, + { + "start": 1.41, + "end": 1.46, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.46, + "end": 1.51, + "mouth": "a", + "source": "D" + }, + { + "start": 1.51, + "end": 1.58, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.58, + "end": 1.79, + "mouth": "i", + "source": "B" + }, + { + "start": 1.79, + "end": 1.87, + "mouth": "closed", + "source": "A" + }, + { + "start": 1.87, + "end": 1.98, + "mouth": "u", + "source": "F" + }, + { + "start": 1.98, + "end": 2.12, + "mouth": "i", + "source": "B" + }, + { + "start": 2.12, + "end": 2.2, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.2, + "end": 2.44, + "mouth": "i", + "source": "B" + }, + { + "start": 2.44, + "end": 2.52, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.52, + "end": 2.65, + "mouth": "u", + "source": "F" + }, + { + "start": 2.65, + "end": 2.72, + "mouth": "a", + "source": "D" + }, + { + "start": 2.72, + "end": 2.86, + "mouth": "i", + "source": "B" + }, + { + "start": 2.86, + "end": 2.94, + "mouth": "closed", + "source": "A" + }, + { + "start": 2.94, + "end": 3.13, + "mouth": "u", + "source": "F" + }, + { + "start": 3.13, + "end": 3.27, + "mouth": "i", + "source": "B" + }, + { + "start": 3.27, + "end": 3.37, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.37, + "end": 3.42, + "mouth": "o", + "source": "E" + }, + { + "start": 3.42, + "end": 3.54, + "mouth": "u", + "source": "F" + }, + { + "start": 3.54, + "end": 3.68, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.68, + "end": 4.02, + "mouth": "i", + "source": "B" + }, + { + "start": 4.02, + "end": 4.12, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.12, + "end": 4.31, + "mouth": "i", + "source": "B" + }, + { + "start": 4.31, + "end": 4.39, + "mouth": "closed", + "source": "A" + }, + { + "start": 4.39, + "end": 5, + "mouth": "i", + "source": "B" + }, + { + "start": 5, + "end": 5.15, + "mouth": "rest", + "source": "X" + } + ] + }, + "pizza-oven-project-01-sayo-034": { + "version": 1, + "source": { + "audio": "audio/pizza-oven-project-01/lines/pizza-oven-project-01-sayo-034.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 1.09, + "cues": [ + { + "start": 0, + "end": 0.06, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.06, + "end": 0.11, + "mouth": "i", + "source": "B" + }, + { + "start": 0.11, + "end": 0.15, + "mouth": "e", + "source": "C" + }, + { + "start": 0.15, + "end": 0.29, + "mouth": "i", + "source": "B" + }, + { + "start": 0.29, + "end": 0.36, + "mouth": "a", + "source": "D" + }, + { + "start": 0.36, + "end": 0.43, + "mouth": "i", + "source": "B" + }, + { + "start": 0.43, + "end": 0.53, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.53, + "end": 0.68, + "mouth": "i", + "source": "B" + }, + { + "start": 0.68, + "end": 0.76, + "mouth": "closed", + "source": "A" + }, + { + "start": 0.76, + "end": 1.01, + "mouth": "i", + "source": "B" + }, + { + "start": 1.01, + "end": 1.09, + "mouth": "rest", + "source": "X" + } + ] + }, + "zundamon-rework-standee-demo-zunda-001": { + "version": 1, + "source": { + "audio": "audio/zundamon-rework-standee-demo/lines/zundamon-rework-standee-demo-zunda-001.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 16.37, + "cues": [ + { + "start": 0, + "end": 0.07, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.07, + "end": 0.56, + "mouth": "i", + "source": "B" + }, + { + "start": 0.56, + "end": 1.72, + "mouth": "rest", + "source": "X" + }, + { + "start": 1.72, + "end": 1.97, + "mouth": "i", + "source": "B" + }, + { + "start": 1.97, + "end": 2.04, + "mouth": "e", + "source": "C" + }, + { + "start": 2.04, + "end": 2.11, + "mouth": "i", + "source": "B" + }, + { + "start": 2.11, + "end": 3.61, + "mouth": "rest", + "source": "X" + }, + { + "start": 3.61, + "end": 3.66, + "mouth": "i", + "source": "B" + }, + { + "start": 3.66, + "end": 3.7, + "mouth": "e", + "source": "C" + }, + { + "start": 3.7, + "end": 3.9, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.9, + "end": 4.01, + "mouth": "i", + "source": "B" + }, + { + "start": 4.01, + "end": 5.38, + "mouth": "rest", + "source": "X" + }, + { + "start": 5.38, + "end": 5.9, + "mouth": "i", + "source": "B" + }, + { + "start": 5.9, + "end": 7.11, + "mouth": "rest", + "source": "X" + }, + { + "start": 7.11, + "end": 7.16, + "mouth": "i", + "source": "B" + }, + { + "start": 7.16, + "end": 7.21, + "mouth": "e", + "source": "C" + }, + { + "start": 7.21, + "end": 7.42, + "mouth": "i", + "source": "B" + }, + { + "start": 7.42, + "end": 7.49, + "mouth": "e", + "source": "C" + }, + { + "start": 7.49, + "end": 8.68, + "mouth": "rest", + "source": "X" + }, + { + "start": 8.68, + "end": 9.04, + "mouth": "u", + "source": "F" + }, + { + "start": 9.04, + "end": 9.65, + "mouth": "rest", + "source": "X" + }, + { + "start": 9.65, + "end": 9.95, + "mouth": "i", + "source": "B" + }, + { + "start": 9.95, + "end": 10.71, + "mouth": "rest", + "source": "X" + }, + { + "start": 10.71, + "end": 10.78, + "mouth": "i", + "source": "B" + }, + { + "start": 10.78, + "end": 10.84, + "mouth": "e", + "source": "C" + }, + { + "start": 10.84, + "end": 10.92, + "mouth": "closed", + "source": "A" + }, + { + "start": 10.92, + "end": 11.04, + "mouth": "i", + "source": "B" + }, + { + "start": 11.04, + "end": 11.75, + "mouth": "rest", + "source": "X" + }, + { + "start": 11.75, + "end": 11.79, + "mouth": "i", + "source": "B" + }, + { + "start": 11.79, + "end": 11.9, + "mouth": "e", + "source": "C" + }, + { + "start": 11.9, + "end": 11.98, + "mouth": "closed", + "source": "A" + }, + { + "start": 11.98, + "end": 12.15, + "mouth": "i", + "source": "B" + }, + { + "start": 12.15, + "end": 12.74, + "mouth": "rest", + "source": "X" + }, + { + "start": 12.74, + "end": 13.11, + "mouth": "i", + "source": "B" + }, + { + "start": 13.11, + "end": 14.8, + "mouth": "rest", + "source": "X" + }, + { + "start": 14.8, + "end": 14.88, + "mouth": "i", + "source": "B" + }, + { + "start": 14.88, + "end": 15.09, + "mouth": "closed", + "source": "A" + }, + { + "start": 15.09, + "end": 15.24, + "mouth": "i", + "source": "B" + }, + { + "start": 15.24, + "end": 15.72, + "mouth": "closed", + "source": "A" + }, + { + "start": 15.72, + "end": 15.84, + "mouth": "i", + "source": "B" + }, + { + "start": 15.84, + "end": 15.92, + "mouth": "closed", + "source": "A" + }, + { + "start": 15.92, + "end": 16.15, + "mouth": "u", + "source": "F" + }, + { + "start": 16.15, + "end": 16.31, + "mouth": "closed", + "source": "A" + }, + { + "start": 16.31, + "end": 16.37, + "mouth": "rest", + "source": "X" + } + ] + } + } +} diff --git a/voicevox-remotion-template/src/generated/lipsync/zundamon-rework-standee-demo-zunda-001.mouth.json b/voicevox-remotion-template/src/generated/lipsync/zundamon-rework-standee-demo-zunda-001.mouth.json new file mode 100644 index 0000000..05d6420 --- /dev/null +++ b/voicevox-remotion-template/src/generated/lipsync/zundamon-rework-standee-demo-zunda-001.mouth.json @@ -0,0 +1,275 @@ +{ + "version": 1, + "source": { + "audio": "audio/zundamon-rework-standee-demo/lines/zundamon-rework-standee-demo-zunda-001.wav", + "engine": "rhubarb-lip-sync", + "recognizer": "phonetic" + }, + "duration": 16.37, + "cues": [ + { + "start": 0, + "end": 0.07, + "mouth": "rest", + "source": "X" + }, + { + "start": 0.07, + "end": 0.56, + "mouth": "i", + "source": "B" + }, + { + "start": 0.56, + "end": 1.72, + "mouth": "rest", + "source": "X" + }, + { + "start": 1.72, + "end": 1.97, + "mouth": "i", + "source": "B" + }, + { + "start": 1.97, + "end": 2.04, + "mouth": "e", + "source": "C" + }, + { + "start": 2.04, + "end": 2.11, + "mouth": "i", + "source": "B" + }, + { + "start": 2.11, + "end": 3.61, + "mouth": "rest", + "source": "X" + }, + { + "start": 3.61, + "end": 3.66, + "mouth": "i", + "source": "B" + }, + { + "start": 3.66, + "end": 3.7, + "mouth": "e", + "source": "C" + }, + { + "start": 3.7, + "end": 3.9, + "mouth": "closed", + "source": "A" + }, + { + "start": 3.9, + "end": 4.01, + "mouth": "i", + "source": "B" + }, + { + "start": 4.01, + "end": 5.38, + "mouth": "rest", + "source": "X" + }, + { + "start": 5.38, + "end": 5.9, + "mouth": "i", + "source": "B" + }, + { + "start": 5.9, + "end": 7.11, + "mouth": "rest", + "source": "X" + }, + { + "start": 7.11, + "end": 7.16, + "mouth": "i", + "source": "B" + }, + { + "start": 7.16, + "end": 7.21, + "mouth": "e", + "source": "C" + }, + { + "start": 7.21, + "end": 7.42, + "mouth": "i", + "source": "B" + }, + { + "start": 7.42, + "end": 7.49, + "mouth": "e", + "source": "C" + }, + { + "start": 7.49, + "end": 8.68, + "mouth": "rest", + "source": "X" + }, + { + "start": 8.68, + "end": 9.04, + "mouth": "u", + "source": "F" + }, + { + "start": 9.04, + "end": 9.65, + "mouth": "rest", + "source": "X" + }, + { + "start": 9.65, + "end": 9.95, + "mouth": "i", + "source": "B" + }, + { + "start": 9.95, + "end": 10.71, + "mouth": "rest", + "source": "X" + }, + { + "start": 10.71, + "end": 10.78, + "mouth": "i", + "source": "B" + }, + { + "start": 10.78, + "end": 10.84, + "mouth": "e", + "source": "C" + }, + { + "start": 10.84, + "end": 10.92, + "mouth": "closed", + "source": "A" + }, + { + "start": 10.92, + "end": 11.04, + "mouth": "i", + "source": "B" + }, + { + "start": 11.04, + "end": 11.75, + "mouth": "rest", + "source": "X" + }, + { + "start": 11.75, + "end": 11.79, + "mouth": "i", + "source": "B" + }, + { + "start": 11.79, + "end": 11.9, + "mouth": "e", + "source": "C" + }, + { + "start": 11.9, + "end": 11.98, + "mouth": "closed", + "source": "A" + }, + { + "start": 11.98, + "end": 12.15, + "mouth": "i", + "source": "B" + }, + { + "start": 12.15, + "end": 12.74, + "mouth": "rest", + "source": "X" + }, + { + "start": 12.74, + "end": 13.11, + "mouth": "i", + "source": "B" + }, + { + "start": 13.11, + "end": 14.8, + "mouth": "rest", + "source": "X" + }, + { + "start": 14.8, + "end": 14.88, + "mouth": "i", + "source": "B" + }, + { + "start": 14.88, + "end": 15.09, + "mouth": "closed", + "source": "A" + }, + { + "start": 15.09, + "end": 15.24, + "mouth": "i", + "source": "B" + }, + { + "start": 15.24, + "end": 15.72, + "mouth": "closed", + "source": "A" + }, + { + "start": 15.72, + "end": 15.84, + "mouth": "i", + "source": "B" + }, + { + "start": 15.84, + "end": 15.92, + "mouth": "closed", + "source": "A" + }, + { + "start": 15.92, + "end": 16.15, + "mouth": "u", + "source": "F" + }, + { + "start": 16.15, + "end": 16.31, + "mouth": "closed", + "source": "A" + }, + { + "start": 16.31, + "end": 16.37, + "mouth": "rest", + "source": "X" + } + ] +} diff --git a/voicevox-remotion-template/src/root.tsx b/voicevox-remotion-template/src/root.tsx index 90b507d..582937b 100644 --- a/voicevox-remotion-template/src/root.tsx +++ b/voicevox-remotion-template/src/root.tsx @@ -15,6 +15,11 @@ PIZZA_OVEN_PROJECT_01_FPS, totalPizzaOvenProject01DurationInFrames, } from "./data/pizza-oven-project-01/timing"; +import {ZundamonReworkStandeeDemo} from "./zundamon-rework-standee-demo"; +import { + totalZundamonReworkStandeeDemoDurationInFrames, + ZUNDAMON_REWORK_STANDEE_DEMO_FPS, +} from "./data/zundamon-rework-standee-demo/timing"; export const Root: React.FC = () => { return ( @@ -45,6 +50,16 @@ width={1280} height={720} /> + ); }; diff --git a/voicevox-remotion-template/src/standee-sets.ts b/voicevox-remotion-template/src/standee-sets.ts index 22017fc..be16009 100644 --- a/voicevox-remotion-template/src/standee-sets.ts +++ b/voicevox-remotion-template/src/standee-sets.ts @@ -66,6 +66,18 @@ flipX: true, }, }, + "zundamon_ohnegus_rework_baby_default": { + kind: "zundamon", + description: "ずんだもんの別バージョン立ち絵(default表情)", + imagePath: "image/zundamon-ohnegus-rework-baby/06-default-nniya.png", + mouthImageDir: "image/zundamon-ohnegus-rework-baby-default-rhubarb-mouths", + imageLayout: { + width: 540, + maxHeight: 730, + translateY: 0, + flipX: true, + }, + }, "sayo_ohnegus_ai": { kind: "sayo", description: "小夜の立ち絵(シュージの絵柄を再現)", diff --git a/voicevox-remotion-template/src/zundamon-rework-standee-demo.tsx b/voicevox-remotion-template/src/zundamon-rework-standee-demo.tsx new file mode 100644 index 0000000..5b4f478 --- /dev/null +++ b/voicevox-remotion-template/src/zundamon-rework-standee-demo.tsx @@ -0,0 +1,218 @@ +import React from "react"; +import { + AbsoluteFill, + Img, + Sequence, + staticFile, + useCurrentFrame, + useVideoConfig, +} from "remotion"; +import { + audioFileForSpeech, + hasAudioForSpeech, + zundamonReworkStandeeDemoScenario, +} from "./data/zundamon-rework-standee-demo/timing"; +import { + characters, + type ExpressionEvent, + type MouthCycleEvent, + type SpeechEvent, + type TimelineEvent, +} from "./data/zundamon-rework-standee-demo/script"; +import {roundedFontFamily} from "./fonts"; +import { + activeVQChronologicalScenarioSegmentForFrame, + scheduleVQChronologicalScenario, + VQLipSyncedStandeeImage, + VQSpeechOverlay, + VQWarmGradientBackground, + type VQMouthShape, +} from "./lib/VQRemotionLib"; +import {getMouthForSpeechFrame} from "./lipsync/manifest"; + +const zundamonAvatar = characters.zundamon.avatar; + +const imageDropShadow = "drop-shadow(0 18px 40px rgba(31, 42, 68, 0.22))"; + +const subtitleOptions = { + fontFamily: roundedFontFamily, + fontSize: 34, + lineHeight: 1.35, + backgroundColor: "rgba(255, 255, 255, 0.9)", +} as const; + +// 用途: タイムラインイベントに共通して使う安定した React key を作る。 +// 使用方法: scheduledEvents.map 内でイベントとインデックスを渡し、Sequence の key に使う。 +// オプションや引数詳細: 現在のタイムラインイベントはすべて id を持つため、index は呼び出し側の形を保つために受け取る。 +const keyForEvent = (event: TimelineEvent, index: number) => + `${event.id}-${index}`; + +// 用途: 明示口形確認イベントの現在フレームで表示する口形を決める。 +// 使用方法: MouthCycleStandee から呼び、イベント尺を mouths の数で均等分割して使う。 +// オプションや引数詳細: localFrame はイベント内フレーム、durationInFrames はイベント全体の尺。 +const mouthForCycle = ( + event: MouthCycleEvent, + localFrame: number, + durationInFrames: number +): VQMouthShape => { + const framesPerMouth = Math.max( + 1, + Math.floor(durationInFrames / event.mouths.length) + ); + const mouthIndex = Math.min( + event.mouths.length - 1, + Math.floor(localFrame / framesPerMouth) + ); + + return event.mouths[mouthIndex]; +}; + +const titleStyle: React.CSSProperties = { + position: "absolute", + top: 34, + left: 0, + right: 0, + textAlign: "center", + fontFamily: roundedFontFamily, + fontSize: 42, + fontWeight: 800, + color: "#1f2a44", +}; + +const labelStyle: React.CSSProperties = { + position: "absolute", + top: 94, + left: 0, + right: 0, + textAlign: "center", + fontFamily: roundedFontFamily, + fontSize: 26, + fontWeight: 700, + color: "#2f6b40", +}; + +const standeeWrapStyle: React.CSSProperties = { + position: "absolute", + inset: "132px 0 116px", + display: "flex", + justifyContent: "center", + alignItems: "center", +}; + +const StandeeFrame: React.FC> = ({ + children, +}) =>
{children}
; + +const ExpressionStandee: React.FC> = ({ + event, +}) => ( + + + +); + +const LipSyncedDefaultStandee: React.FC> = ({ + mouth, +}) => ( + + + +); + +const TimelineOverlay: React.FC> = ({ + event, +}) => { + if (event.type !== "say") { + return null; + } + + const character = characters[event.character]; + + return ( + + ); +}; + +export const ZundamonReworkStandeeDemo: React.FC = () => { + const frame = useCurrentFrame(); + const {fps} = useVideoConfig(); + const scheduledEvents = scheduleVQChronologicalScenario( + zundamonReworkStandeeDemoScenario, + fps + ); + const activeSegment = activeVQChronologicalScenarioSegmentForFrame( + scheduledEvents, + frame + ); + const localFrame = activeSegment ? frame - activeSegment.from : 0; + const activeEvent = activeSegment?.event; + const activeMouth = + activeEvent?.type === "say" + ? getMouthForSpeechFrame( + (activeEvent as SpeechEvent).id, + localFrame, + fps + ) + : activeEvent?.type === "mouthCycle" + ? mouthForCycle( + activeEvent, + localFrame, + activeSegment.durationInFrames + ) + : "rest"; + const activeLabel = + activeEvent?.type === "expression" + ? `expression: ${activeEvent.label}` + : activeEvent?.type === "mouthCycle" + ? `mouth: ${activeMouth}` + : "default rhubarb lip sync"; + const sequences = scheduledEvents.map((scheduledEvent, index) => ( + + + + )); + + return ( + + +
Zundamon Rework Standee Demo
+
{activeLabel}
+ {activeEvent?.type === "expression" ? ( + + ) : ( + + )} + {sequences} +
+ ); +};