mulmocast 2.0.6 → 2.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,161 @@
1
+ # MulmoCast Test Scripts
2
+
3
+ このディレクトリには、MulmoCastの機能テスト用のMulmoScriptサンプルが含まれています。
4
+
5
+ This directory contains MulmoScript samples for testing MulmoCast features.
6
+
7
+ ## 📋 テストカテゴリ / Test Categories
8
+
9
+ ### 🎯 基本テスト / Basic Tests
10
+
11
+ **シンプルな動作確認用のテストスクリプト**
12
+
13
+ Simple test scripts for basic functionality verification
14
+
15
+ - **test_hello.json** - 最もシンプルなHello Worldテスト / Simplest Hello World test
16
+ - **test.json** - 基本的な動作テスト / Basic functionality test
17
+ - **test1.json**, **test2.json** - 追加の基本テスト / Additional basic tests
18
+ - **test_beats.json** - Beatの基本機能テスト / Beat basic features test
19
+
20
+ ### 🎤 TTS(音声合成)テスト / TTS (Text-to-Speech) Tests
21
+
22
+ **各種音声合成プロバイダーのテスト**
23
+
24
+ Tests for various TTS providers
25
+
26
+ - **test_all_tts.json** - 全TTSプロバイダーのテスト(OpenAI, Gemini, Google, ElevenLabs, Nijivoice) / All TTS providers test
27
+ - **test_audio.json** - 音声パラメータのテスト(padding, duration, movieVolumeなど) / Audio parameters test
28
+ - **test_audio_gemini.json** - Gemini TTSの個別テスト / Gemini TTS specific test
29
+ - **test_audio_instructions.json** - OpenAI TTS instructionsのテスト / OpenAI TTS instructions test
30
+ - **test_elevenlabs_models.json** - ElevenLabsの複数モデルテスト / ElevenLabs multiple models test
31
+ - **test_voices.json** - 複数の音声設定テスト / Multiple voice settings test
32
+ - **test_mixed_providers.json** - 複数のTTSプロバイダー混在テスト / Mixed TTS providers test
33
+
34
+ ### 🖼️ 画像生成テスト / Image Generation Tests
35
+
36
+ **画像生成機能のテスト**
37
+
38
+ Image generation feature tests
39
+
40
+ - **test_images.json** - 画像生成の基本テスト / Basic image generation test
41
+ - **test_hello_image.json** - Hello World画像テスト / Hello World image test
42
+ - **test_image_refs.json** - 参照画像を使った生成テスト / Image generation with references
43
+ - **test_markdown.json** - Markdown形式の画像テスト / Markdown format image test
44
+ - **test_html.json** - HTMLから画像生成テスト / HTML to image test
45
+ - **test_vision.json** - Vision APIを使った画像生成テスト / Vision API image test
46
+ - **test_layout.json** - レイアウト機能のテスト / Layout features test
47
+
48
+ ### 🎬 動画生成テスト / Video Generation Tests
49
+
50
+ **動画生成機能のテスト**
51
+
52
+ Video generation feature tests
53
+
54
+ - **test_movie.json** - 動画生成の基本テスト(imagePrompt + moviePrompt) / Basic video generation test
55
+ - **test_movie2.json** - 動画生成の追加テスト / Additional video generation test
56
+ - **test_genai_movie.json** - GenAI動画生成テスト / GenAI video generation test
57
+ - **test_genai.json** - GenAI機能テスト / GenAI features test
58
+ - **test_replicate.json** - Replicate動画生成テスト / Replicate video generation test
59
+ - **test_mv.json** - ミュージックビデオ形式のテスト / Music video format test
60
+
61
+ ### 🎭 高度な機能テスト / Advanced Feature Tests
62
+
63
+ **特殊機能や複雑なシナリオのテスト**
64
+
65
+ Special features and complex scenario tests
66
+
67
+ - **test_spillover.json** - 音声スピルオーバー機能テスト / Audio spillover feature test
68
+ - **test_lipsync.json** - リップシンク機能テスト / Lip-sync feature test
69
+ - **test_transition.json** - トランジション効果テスト / Transition effects test
70
+ - **test_transition_no_audio.json** - 音声なしトランジションテスト / Transition without audio test
71
+ - **test_slideout_left_no_audio.json** - スライドアウト効果テスト / Slide-out effect test
72
+ - **test_sound_effect.json** - サウンドエフェクトテスト / Sound effect test
73
+ - **test_voice_over.json** - ボイスオーバー機能テスト / Voice-over feature test
74
+ - **test_captions.json** - 字幕機能テスト / Caption feature test
75
+ - **test_hello_caption.json** - Hello World字幕テスト / Hello World caption test
76
+ - **test_loop.json** - ループ再生テスト / Loop playback test
77
+ - **test_video_speed.json** - 動画速度調整テスト / Video speed adjustment test
78
+
79
+ ### 🔧 特殊条件テスト / Special Condition Tests
80
+
81
+ **エッジケースや特殊な条件のテスト**
82
+
83
+ Edge cases and special condition tests
84
+
85
+ - **test_no_audio.json** - 音声なし動画テスト / Video without audio test
86
+ - **test_no_audio_with_credit.json** - クレジット付き音声なしテスト / No audio with credits test
87
+ - **test_hello_nobgm.json** - BGMなしテスト / Test without BGM
88
+ - **test_size_error.json** - サイズエラーテスト / Size error test
89
+ - **test_media.json** - メディアファイル処理テスト / Media file processing test
90
+ - **test_order.json** - 順序処理テスト / Order processing test
91
+ - **test_order_portrait.json** - 縦向き順序テスト / Portrait order test
92
+
93
+ ### 🌍 多言語テスト / Multi-language Tests
94
+
95
+ **言語設定のテスト**
96
+
97
+ Language setting tests
98
+
99
+ - **test_lang.json** - 多言語サポートテスト / Multi-language support test
100
+ - **test_en.json** - 英語専用テスト / English-only test
101
+
102
+ ### 🎯 プロバイダー別テスト / Provider-Specific Tests
103
+
104
+ **特定プロバイダーの機能テスト**
105
+
106
+ Provider-specific feature tests
107
+
108
+ - **test_hello_google.json** - Google TTS専用テスト / Google TTS specific test
109
+ - **gpt.json** - GPTモデルテスト / GPT model test
110
+ - **mulmo_story.json** - ストーリー形式テスト / Story format test
111
+ - **nano_banana.json** - カスタムサンプル / Custom sample
112
+
113
+ ## 🚀 使い方 / Usage
114
+
115
+ ### 基本的な実行方法 / Basic Execution
116
+
117
+ ```bash
118
+ # 動画生成
119
+ # Generate video
120
+ yarn movie scripts/test/test_hello.json
121
+
122
+ # 音声のみ生成
123
+ # Generate audio only
124
+ yarn audio scripts/test/test_audio.json
125
+
126
+ # 画像のみ生成
127
+ # Generate images only
128
+ yarn images scripts/test/test_images.json
129
+ ```
130
+
131
+ ### 強制再生成 / Force Regeneration
132
+
133
+ キャッシュを無視して再生成する場合は `-f` フラグを使用:
134
+
135
+ Use the `-f` flag to ignore cache and regenerate:
136
+
137
+ ```bash
138
+ yarn movie scripts/test/test_hello.json -f
139
+ ```
140
+
141
+ ## 📝 テストスクリプト作成のヒント / Tips for Creating Test Scripts
142
+
143
+ 1. **シンプルから始める** - `test_hello.json` を参考に基本構造を理解
144
+ 2. **機能を段階的に追加** - 一度に複数の機能をテストせず、段階的に追加
145
+ 3. **既存のテストを参考にする** - 同じカテゴリのテストスクリプトを参考に
146
+ 4. **適切な命名** - `test_<feature>.json` の形式で目的が分かりやすい名前を付ける
147
+
148
+ ---
149
+
150
+ 1. **Start simple** - Refer to `test_hello.json` to understand basic structure
151
+ 2. **Add features incrementally** - Don't test multiple features at once
152
+ 3. **Reference existing tests** - Look at tests in the same category
153
+ 4. **Use descriptive naming** - Use `test_<feature>.json` format for clarity
154
+
155
+ ## 🔗 関連ドキュメント / Related Documentation
156
+
157
+ - [メインREADME](../../README.md)
158
+ - [MulmoScript Schema](../../docs/schena.md)
159
+ - [TTS Provider追加手順](../../docs/tts.md)
160
+ - [Image Plugin仕様](../../docs/image_plugin.md)
161
+ - [音声スピルオーバー](../../docs/sound_and_voice.md)
@@ -0,0 +1,111 @@
1
+ {
2
+ "$mulmocast": {
3
+ "version": "1.1"
4
+ },
5
+ "lang": "ja",
6
+ "title": "All ElevenLabs TTS Voice Models Test",
7
+ "speechParams": {
8
+ "speakers": {
9
+ "otan": {
10
+ "provider": "elevenlabs",
11
+ "voiceId": "3JDquces8E8bkmvbh6Bc"
12
+ },
13
+ "janathan": {
14
+ "provider": "elevenlabs",
15
+ "voiceId": "c6SfcYrb2t09NHXiT80T"
16
+ },
17
+ "ishibashi": {
18
+ "provider": "elevenlabs",
19
+ "voiceId": "Mv8AjrYZCBkdsmDHNwcB"
20
+ },
21
+ "morioki": {
22
+ "provider": "elevenlabs",
23
+ "voiceId": "8EkOjt4xTPGMclNlh1pk"
24
+ },
25
+ "hinata": {
26
+ "provider": "elevenlabs",
27
+ "voiceId": "j210dv0vWm7fCknyQpbA"
28
+ },
29
+ "steven_casteel": {
30
+ "provider": "elevenlabs",
31
+ "voiceId": "QEj0heL4nQHjaGrihlr0"
32
+ },
33
+ "sayuri": {
34
+ "provider": "elevenlabs",
35
+ "voiceId": "l39JidvAMB3s85XyNSRd"
36
+ }
37
+ }
38
+ },
39
+ "beats": [
40
+ {
41
+ "speaker": "otan",
42
+ "text": "こんにちは、テストです。",
43
+ "image": {
44
+ "type": "textSlide",
45
+ "slide": {
46
+ "title": "otan"
47
+ }
48
+ }
49
+ },
50
+ {
51
+ "speaker": "janathan",
52
+ "text": "こんにちは、テストです。",
53
+ "image": {
54
+ "type": "textSlide",
55
+ "slide": {
56
+ "title": "janathan"
57
+ }
58
+ }
59
+ },
60
+ {
61
+ "speaker": "ishibashi",
62
+ "text": "こんにちは、テストです。",
63
+ "image": {
64
+ "type": "textSlide",
65
+ "slide": {
66
+ "title": "ishibashi"
67
+ }
68
+ }
69
+ },
70
+ {
71
+ "speaker": "morioki",
72
+ "text": "こんにちは、テストです。",
73
+ "image": {
74
+ "type": "textSlide",
75
+ "slide": {
76
+ "title": "morioki"
77
+ }
78
+ }
79
+ },
80
+ {
81
+ "speaker": "hinata",
82
+ "text": "こんにちは、テストです。",
83
+ "image": {
84
+ "type": "textSlide",
85
+ "slide": {
86
+ "title": "hinata"
87
+ }
88
+ }
89
+ },
90
+ {
91
+ "speaker": "steven_casteel",
92
+ "text": "こんにちは、テストです。",
93
+ "image": {
94
+ "type": "textSlide",
95
+ "slide": {
96
+ "title": "steven_casteel"
97
+ }
98
+ }
99
+ },
100
+ {
101
+ "speaker": "sayuri",
102
+ "text": "こんにちは、テストです。",
103
+ "image": {
104
+ "type": "textSlide",
105
+ "slide": {
106
+ "title": "sayuri"
107
+ }
108
+ }
109
+ }
110
+ ]
111
+ }
@@ -0,0 +1,433 @@
1
+ {
2
+ "$mulmocast": {
3
+ "version": "1.1"
4
+ },
5
+ "lang": "ja",
6
+ "title": "All Gemini TTS Voice Models Test",
7
+ "speechParams": {
8
+ "speakers": {
9
+ "Zephyr": {
10
+ "provider": "gemini",
11
+ "voiceId": "Zephyr"
12
+ },
13
+ "Puck": {
14
+ "provider": "gemini",
15
+ "voiceId": "Puck"
16
+ },
17
+ "Charon": {
18
+ "provider": "gemini",
19
+ "voiceId": "Charon"
20
+ },
21
+ "Kore": {
22
+ "provider": "gemini",
23
+ "voiceId": "Kore"
24
+ },
25
+ "Fenrir": {
26
+ "provider": "gemini",
27
+ "voiceId": "Fenrir"
28
+ },
29
+ "Leda": {
30
+ "provider": "gemini",
31
+ "voiceId": "Leda"
32
+ },
33
+ "Orus": {
34
+ "provider": "gemini",
35
+ "voiceId": "Orus"
36
+ },
37
+ "Aoede": {
38
+ "provider": "gemini",
39
+ "voiceId": "Aoede"
40
+ },
41
+ "Callirrhoe": {
42
+ "provider": "gemini",
43
+ "voiceId": "Callirrhoe"
44
+ },
45
+ "Autonoe": {
46
+ "provider": "gemini",
47
+ "voiceId": "Autonoe"
48
+ },
49
+ "Enceladus": {
50
+ "provider": "gemini",
51
+ "voiceId": "Enceladus"
52
+ },
53
+ "Iapetus": {
54
+ "provider": "gemini",
55
+ "voiceId": "Iapetus"
56
+ },
57
+ "Umbriel": {
58
+ "provider": "gemini",
59
+ "voiceId": "Umbriel"
60
+ },
61
+ "Algieba": {
62
+ "provider": "gemini",
63
+ "voiceId": "Algieba"
64
+ },
65
+ "Despina": {
66
+ "provider": "gemini",
67
+ "voiceId": "Despina"
68
+ },
69
+ "Erinome": {
70
+ "provider": "gemini",
71
+ "voiceId": "Erinome"
72
+ },
73
+ "Algenib": {
74
+ "provider": "gemini",
75
+ "voiceId": "Algenib"
76
+ },
77
+ "Rasalgethi": {
78
+ "provider": "gemini",
79
+ "voiceId": "Rasalgethi"
80
+ },
81
+ "Laomedeia": {
82
+ "provider": "gemini",
83
+ "voiceId": "Laomedeia"
84
+ },
85
+ "Achernar": {
86
+ "provider": "gemini",
87
+ "voiceId": "Achernar"
88
+ },
89
+ "Alnilam": {
90
+ "provider": "gemini",
91
+ "voiceId": "Alnilam"
92
+ },
93
+ "Schedar": {
94
+ "provider": "gemini",
95
+ "voiceId": "Schedar"
96
+ },
97
+ "Gacrux": {
98
+ "provider": "gemini",
99
+ "voiceId": "Gacrux"
100
+ },
101
+ "Pulcherrima": {
102
+ "provider": "gemini",
103
+ "voiceId": "Pulcherrima"
104
+ },
105
+ "Achird": {
106
+ "provider": "gemini",
107
+ "voiceId": "Achird"
108
+ },
109
+ "Zubenelgenubi": {
110
+ "provider": "gemini",
111
+ "voiceId": "Zubenelgenubi"
112
+ },
113
+ "Vindemiatrix": {
114
+ "provider": "gemini",
115
+ "voiceId": "Vindemiatrix"
116
+ },
117
+ "Sadachbia": {
118
+ "provider": "gemini",
119
+ "voiceId": "Sadachbia"
120
+ },
121
+ "Sadaltager": {
122
+ "provider": "gemini",
123
+ "voiceId": "Sadaltager"
124
+ },
125
+ "Sulafat": {
126
+ "provider": "gemini",
127
+ "voiceId": "Sulafat"
128
+ }
129
+ }
130
+ },
131
+ "beats": [
132
+ {
133
+ "speaker": "Zephyr",
134
+ "text": "こんにちは、テストです。",
135
+ "image": {
136
+ "type": "textSlide",
137
+ "slide": {
138
+ "title": "Zephyr"
139
+ }
140
+ }
141
+ },
142
+ {
143
+ "speaker": "Puck",
144
+ "text": "こんにちは、テストです。",
145
+ "image": {
146
+ "type": "textSlide",
147
+ "slide": {
148
+ "title": "Puck"
149
+ }
150
+ }
151
+ },
152
+ {
153
+ "speaker": "Charon",
154
+ "text": "こんにちは、テストです。",
155
+ "image": {
156
+ "type": "textSlide",
157
+ "slide": {
158
+ "title": "Charon"
159
+ }
160
+ }
161
+ },
162
+ {
163
+ "speaker": "Kore",
164
+ "text": "こんにちは、テストです。",
165
+ "image": {
166
+ "type": "textSlide",
167
+ "slide": {
168
+ "title": "Kore"
169
+ }
170
+ }
171
+ },
172
+ {
173
+ "speaker": "Fenrir",
174
+ "text": "こんにちは、テストです。",
175
+ "image": {
176
+ "type": "textSlide",
177
+ "slide": {
178
+ "title": "Fenrir"
179
+ }
180
+ }
181
+ },
182
+ {
183
+ "speaker": "Leda",
184
+ "text": "こんにちは、テストです。",
185
+ "image": {
186
+ "type": "textSlide",
187
+ "slide": {
188
+ "title": "Leda"
189
+ }
190
+ }
191
+ },
192
+ {
193
+ "speaker": "Orus",
194
+ "text": "こんにちは、テストです。",
195
+ "image": {
196
+ "type": "textSlide",
197
+ "slide": {
198
+ "title": "Orus"
199
+ }
200
+ }
201
+ },
202
+ {
203
+ "speaker": "Aoede",
204
+ "text": "こんにちは、テストです。",
205
+ "image": {
206
+ "type": "textSlide",
207
+ "slide": {
208
+ "title": "Aoede"
209
+ }
210
+ }
211
+ },
212
+ {
213
+ "speaker": "Callirrhoe",
214
+ "text": "こんにちは、テストです。",
215
+ "image": {
216
+ "type": "textSlide",
217
+ "slide": {
218
+ "title": "Callirrhoe"
219
+ }
220
+ }
221
+ },
222
+ {
223
+ "speaker": "Autonoe",
224
+ "text": "こんにちは、テストです。",
225
+ "image": {
226
+ "type": "textSlide",
227
+ "slide": {
228
+ "title": "Autonoe"
229
+ }
230
+ }
231
+ },
232
+ {
233
+ "speaker": "Enceladus",
234
+ "text": "こんにちは、テストです。",
235
+ "image": {
236
+ "type": "textSlide",
237
+ "slide": {
238
+ "title": "Enceladus"
239
+ }
240
+ }
241
+ },
242
+ {
243
+ "speaker": "Iapetus",
244
+ "text": "こんにちは、テストです。",
245
+ "image": {
246
+ "type": "textSlide",
247
+ "slide": {
248
+ "title": "Iapetus"
249
+ }
250
+ }
251
+ },
252
+ {
253
+ "speaker": "Umbriel",
254
+ "text": "こんにちは、テストです。",
255
+ "image": {
256
+ "type": "textSlide",
257
+ "slide": {
258
+ "title": "Umbriel"
259
+ }
260
+ }
261
+ },
262
+ {
263
+ "speaker": "Algieba",
264
+ "text": "こんにちは、テストです。",
265
+ "image": {
266
+ "type": "textSlide",
267
+ "slide": {
268
+ "title": "Algieba"
269
+ }
270
+ }
271
+ },
272
+ {
273
+ "speaker": "Despina",
274
+ "text": "こんにちは、テストです。",
275
+ "image": {
276
+ "type": "textSlide",
277
+ "slide": {
278
+ "title": "Despina"
279
+ }
280
+ }
281
+ },
282
+ {
283
+ "speaker": "Erinome",
284
+ "text": "こんにちは、テストです。",
285
+ "image": {
286
+ "type": "textSlide",
287
+ "slide": {
288
+ "title": "Erinome"
289
+ }
290
+ }
291
+ },
292
+ {
293
+ "speaker": "Algenib",
294
+ "text": "こんにちは、テストです。",
295
+ "image": {
296
+ "type": "textSlide",
297
+ "slide": {
298
+ "title": "Algenib"
299
+ }
300
+ }
301
+ },
302
+ {
303
+ "speaker": "Rasalgethi",
304
+ "text": "こんにちは、テストです。",
305
+ "image": {
306
+ "type": "textSlide",
307
+ "slide": {
308
+ "title": "Rasalgethi"
309
+ }
310
+ }
311
+ },
312
+ {
313
+ "speaker": "Laomedeia",
314
+ "text": "こんにちは、テストです。",
315
+ "image": {
316
+ "type": "textSlide",
317
+ "slide": {
318
+ "title": "Laomedeia"
319
+ }
320
+ }
321
+ },
322
+ {
323
+ "speaker": "Achernar",
324
+ "text": "こんにちは、テストです。",
325
+ "image": {
326
+ "type": "textSlide",
327
+ "slide": {
328
+ "title": "Achernar"
329
+ }
330
+ }
331
+ },
332
+ {
333
+ "speaker": "Alnilam",
334
+ "text": "こんにちは、テストです。",
335
+ "image": {
336
+ "type": "textSlide",
337
+ "slide": {
338
+ "title": "Alnilam"
339
+ }
340
+ }
341
+ },
342
+ {
343
+ "speaker": "Schedar",
344
+ "text": "こんにちは、テストです。",
345
+ "image": {
346
+ "type": "textSlide",
347
+ "slide": {
348
+ "title": "Schedar"
349
+ }
350
+ }
351
+ },
352
+ {
353
+ "speaker": "Gacrux",
354
+ "text": "こんにちは、テストです。",
355
+ "image": {
356
+ "type": "textSlide",
357
+ "slide": {
358
+ "title": "Gacrux"
359
+ }
360
+ }
361
+ },
362
+ {
363
+ "speaker": "Pulcherrima",
364
+ "text": "こんにちは、テストです。",
365
+ "image": {
366
+ "type": "textSlide",
367
+ "slide": {
368
+ "title": "Pulcherrima"
369
+ }
370
+ }
371
+ },
372
+ {
373
+ "speaker": "Achird",
374
+ "text": "こんにちは、テストです。",
375
+ "image": {
376
+ "type": "textSlide",
377
+ "slide": {
378
+ "title": "Achird"
379
+ }
380
+ }
381
+ },
382
+ {
383
+ "speaker": "Zubenelgenubi",
384
+ "text": "こんにちは、テストです。",
385
+ "image": {
386
+ "type": "textSlide",
387
+ "slide": {
388
+ "title": "Zubenelgenubi"
389
+ }
390
+ }
391
+ },
392
+ {
393
+ "speaker": "Vindemiatrix",
394
+ "text": "こんにちは、テストです。",
395
+ "image": {
396
+ "type": "textSlide",
397
+ "slide": {
398
+ "title": "Vindemiatrix"
399
+ }
400
+ }
401
+ },
402
+ {
403
+ "speaker": "Sadachbia",
404
+ "text": "こんにちは、テストです。",
405
+ "image": {
406
+ "type": "textSlide",
407
+ "slide": {
408
+ "title": "Sadachbia"
409
+ }
410
+ }
411
+ },
412
+ {
413
+ "speaker": "Sadaltager",
414
+ "text": "こんにちは、テストです。",
415
+ "image": {
416
+ "type": "textSlide",
417
+ "slide": {
418
+ "title": "Sadaltager"
419
+ }
420
+ }
421
+ },
422
+ {
423
+ "speaker": "Sulafat",
424
+ "text": "こんにちは、テストです。",
425
+ "image": {
426
+ "type": "textSlide",
427
+ "slide": {
428
+ "title": "Sulafat"
429
+ }
430
+ }
431
+ }
432
+ ]
433
+ }