mulmocast 2.6.18 โ†’ 2.6.19

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.
Files changed (32) hide show
  1. package/lib/methods/mulmo_presentation_style.d.ts +18 -0
  2. package/lib/methods/mulmo_presentation_style.js +23 -0
  3. package/lib/types/schema.d.ts +468 -0
  4. package/lib/utils/context.d.ts +52 -0
  5. package/lib/utils/image_plugins/slide.js +7 -4
  6. package/package.json +4 -4
  7. package/scripts/test/cinematic_showcase.json +0 -1356
  8. package/scripts/test/golden_age_of_discovery.json +0 -270
  9. package/scripts/test/image-2.png +0 -0
  10. package/scripts/test/img_detector.png +0 -0
  11. package/scripts/test/img_higgs.png +0 -0
  12. package/scripts/test/img_lhc.png +0 -0
  13. package/scripts/test/macoro_anime_proto.json +0 -120
  14. package/scripts/test/minimum_beats_completed.json +0 -45
  15. package/scripts/test/test_all_elevenlabs_tts_model.json +0 -111
  16. package/scripts/test/test_all_gemini_tts_model.json +0 -433
  17. package/scripts/test/test_all_image.json +0 -49
  18. package/scripts/test/test_all_movie.json +0 -33
  19. package/scripts/test/test_captions_2.json +0 -31
  20. package/scripts/test/test_genai2.json +0 -25
  21. package/scripts/test/test_lipsync5.json +0 -66
  22. package/scripts/test/test_reference.json +0 -0
  23. package/scripts/test/test_slide_image_ref_gemini_en.json +0 -289
  24. package/scripts/test/test_slide_showcase_corporate.json +0 -497
  25. package/scripts/test/test_slide_showcase_creative.json +0 -545
  26. package/scripts/test/test_slide_showcase_minimal.json +0 -501
  27. package/scripts/test/test_slide_showcase_pop.json +0 -547
  28. package/scripts/test/test_slide_showcase_warm.json +0 -486
  29. package/scripts/test/test_wipe_simple.json +0 -37
  30. package/scripts/test/zenn_combined_example.json +0 -39
  31. package/scripts/test/zenn_layout_samples.json +0 -92
  32. package/scripts/test/zenn_markdown_demo.json +0 -79
@@ -1,270 +0,0 @@
1
- {
2
- "$mulmocast": { "version": "1.1" },
3
- "lang": "en",
4
- "title": "We Are Entering a Golden Age of Discovery",
5
- "canvasSize": { "width": 1280, "height": 720 },
6
- "speechParams": {
7
- "speakers": {
8
- "Presenter": {
9
- "provider": "openai",
10
- "voiceId": "shimmer",
11
- "displayName": { "en": "Presenter" }
12
- }
13
- }
14
- },
15
- "imageParams": { "provider": "openai", "images": {} },
16
- "movieParams": { "provider": "replicate" },
17
- "soundEffectParams": { "provider": "replicate" },
18
- "slideParams": {
19
- "theme": {
20
- "colors": {
21
- "bg": "1C1917",
22
- "bgCard": "292524",
23
- "bgCardAlt": "3D3733",
24
- "text": "FAFAF9",
25
- "textMuted": "D6D3D1",
26
- "textDim": "A8A29E",
27
- "primary": "F43F5E",
28
- "accent": "FB923C",
29
- "success": "4ADE80",
30
- "warning": "FBBF24",
31
- "danger": "EF4444",
32
- "info": "38BDF8",
33
- "highlight": "E879F9"
34
- },
35
- "fonts": { "title": "Georgia", "body": "Helvetica", "mono": "Consolas" }
36
- }
37
- },
38
- "audioParams": {
39
- "introPadding": 1,
40
- "padding": 0.3,
41
- "closingPadding": 0.8,
42
- "outroPadding": 1,
43
- "bgmVolume": 0.2,
44
- "audioVolume": 1,
45
- "suppressSpeech": false
46
- },
47
- "beats": [
48
- {
49
- "text": "We are entering a golden age of discovery. Nobel laureate Demis Hassabis believes the next ten to fifteen years will be the most transformative period in human history.",
50
- "image": {
51
- "type": "slide",
52
- "slide": {
53
- "layout": "title",
54
- "title": "A Golden Age of Discovery",
55
- "subtitle": "How AI Will Transform Science and Society",
56
- "author": "Based on Demis Hassabis via Garry's List",
57
- "note": "February 2026"
58
- }
59
- }
60
- },
61
- {
62
- "text": "Hassabis envisions a future of radical abundance. AI will solve our hardest problems: personalized medicine replacing one-size-fits-all healthcare, breakthroughs in renewable energy like fusion, solar, and batteries, and eventually enabling humanity to explore the galaxy.",
63
- "image": {
64
- "type": "slide",
65
- "slide": {
66
- "layout": "grid",
67
- "title": "The Vision of Radical Abundance",
68
- "subtitle": "AI solving humanity's hardest challenges",
69
- "gridColumns": 3,
70
- "items": [
71
- {
72
- "title": "Personalized Medicine",
73
- "icon": "๐Ÿ’Š",
74
- "accentColor": "primary",
75
- "content": [{ "type": "text", "value": "Replace one-size-fits-all healthcare with treatments tailored to each individual" }]
76
- },
77
- {
78
- "title": "Clean Energy",
79
- "icon": "โšก",
80
- "accentColor": "success",
81
- "content": [{ "type": "text", "value": "Breakthroughs in fusion, solar, and battery technology for limitless energy" }]
82
- },
83
- {
84
- "title": "Space Exploration",
85
- "icon": "๐Ÿš€",
86
- "accentColor": "accent",
87
- "content": [{ "type": "text", "value": "Radical abundance enabling humanity to venture beyond Earth and explore the galaxy" }]
88
- }
89
- ]
90
- }
91
- }
92
- },
93
- {
94
- "text": "In drug discovery, AI is already compressing development timelines dramatically. What used to take four and a half years can now be done in nine to eighteen months. And AI agents could dissolve healthcare's massive administrative inefficiencies.",
95
- "image": {
96
- "type": "slide",
97
- "slide": {
98
- "layout": "stats",
99
- "title": "AI Transforms Drug Discovery",
100
- "subtitle": "Compressing timelines and eliminating bureaucracy",
101
- "stats": [
102
- {
103
- "value": "4.5 yrs",
104
- "label": "Traditional Drug Development",
105
- "color": "danger",
106
- "change": "Slow"
107
- },
108
- {
109
- "value": "9-18 mo",
110
- "label": "AI-Accelerated Development",
111
- "color": "success",
112
- "change": "3-6x faster"
113
- }
114
- ],
115
- "callout": {
116
- "text": "AI agents can manage insurance bureaucracy and claims processing, dissolving administrative inefficiencies",
117
- "label": "Beyond Discovery",
118
- "color": "info"
119
- }
120
- }
121
- }
122
- },
123
- {
124
- "text": "The key insight is that the constraint was never biology. It was computing power and data. Now that we have both, the doors to discovery are wide open.",
125
- "image": {
126
- "type": "slide",
127
- "slide": {
128
- "layout": "bigQuote",
129
- "quote": "The constraint was never biology. It was computing power and data.",
130
- "author": "Demis Hassabis",
131
- "role": "Nobel Laureate, CEO of Google DeepMind"
132
- }
133
- }
134
- },
135
- {
136
- "text": "But there are two competing worldviews about the future. Pessimists think in terms of scarcity: same resources with fewer people leads to despair. Builders see infinite human needs, where solving one problem reveals ten more worth solving.",
137
- "image": {
138
- "type": "slide",
139
- "slide": {
140
- "layout": "comparison",
141
- "title": "Two Competing Worldviews",
142
- "subtitle": "A fundamental philosophical split",
143
- "left": {
144
- "title": "Pessimist",
145
- "accentColor": "danger",
146
- "content": [
147
- { "type": "text", "value": "Scarcity Mindset", "bold": true, "color": "danger", "fontSize": 22 },
148
- { "type": "bullets", "items": ["Same with less people", "Zero-sum thinking", "Leads to despair", "Progress as threat"] }
149
- ]
150
- },
151
- "right": {
152
- "title": "Builder",
153
- "accentColor": "success",
154
- "content": [
155
- { "type": "text", "value": "Abundance Mindset", "bold": true, "color": "success", "fontSize": 22 },
156
- { "type": "bullets", "items": ["Infinite human needs", "Solving 1 problem reveals 10 more", "Boundless opportunity", "Progress as gift"] }
157
- ]
158
- }
159
- }
160
- }
161
- },
162
- {
163
- "text": "Innovation is inherently generous. Creators capture just two percent of the value they create. Ninety-eight percent flows to society. Building is the most philanthropic act there is.",
164
- "image": {
165
- "type": "slide",
166
- "slide": {
167
- "layout": "split",
168
- "left": {
169
- "title": "Value Distribution",
170
- "dark": true,
171
- "ratio": 40,
172
- "accentColor": "accent",
173
- "content": [
174
- { "type": "metric", "value": "2%", "label": "Captured by Creators", "color": "accent" },
175
- { "type": "divider", "color": "accent" },
176
- { "type": "metric", "value": "98%", "label": "Flows to Society", "color": "success" }
177
- ]
178
- },
179
- "right": {
180
- "title": "Innovation is Philanthropy",
181
- "ratio": 60,
182
- "content": [
183
- { "type": "text", "value": "Founders and builders create outsized value for the world, keeping only a tiny fraction for themselves." },
184
- { "type": "callout", "text": "Building is the most philanthropic act there is", "color": "accent", "style": "quote" }
185
- ]
186
- }
187
- }
188
- }
189
- },
190
- {
191
- "text": "But there's a danger. The article argues that the only way to create suffering at scale is to outlaw progress. The Precautionary Principle, when taken too far, becomes the enemy of discovery.",
192
- "image": {
193
- "type": "slide",
194
- "slide": {
195
- "layout": "comparison",
196
- "title": "The Regulatory Dilemma",
197
- "left": {
198
- "title": "Precautionary Principle",
199
- "accentColor": "warning",
200
- "content": [
201
- {
202
- "type": "bullets",
203
- "items": ["Prove safety before deploying", "Err on the side of caution", "Regulate first, innovate later", "Minimize any possible risk"]
204
- },
205
- { "type": "callout", "text": "Can become an obstacle to all progress", "color": "warning", "style": "warning" }
206
- ]
207
- },
208
- "right": {
209
- "title": "Pro-Innovation View",
210
- "accentColor": "success",
211
- "content": [
212
- { "type": "bullets", "items": ["Build, test, iterate", "Benefits compound over time", "Inaction has its own risks", "Progress lifts everyone"] },
213
- { "type": "callout", "text": "The only way to create suffering at scale is to outlaw progress", "color": "danger", "style": "warning" }
214
- ]
215
- }
216
- }
217
- }
218
- },
219
- {
220
- "text": "Founders intuitively understand what economists formally prove: human wants are boundless. Every problem solved creates new frontiers. Whether we accelerate into this golden age depends entirely on whether builders choose action over regulatory caution.",
221
- "image": {
222
- "type": "slide",
223
- "slide": {
224
- "layout": "timeline",
225
- "title": "The Path to the Golden Age",
226
- "subtitle": "Progress acceleration depends on builder's choices",
227
- "items": [
228
- {
229
- "date": "Now",
230
- "title": "AI Breakthrough",
231
- "description": "Computing power and data unlock biology, physics, chemistry",
232
- "color": "info",
233
- "done": true
234
- },
235
- {
236
- "date": "Near Term",
237
- "title": "Applied Discovery",
238
- "description": "Drug discovery in months, renewable energy breakthroughs",
239
- "color": "accent"
240
- },
241
- {
242
- "date": "10-15 Years",
243
- "title": "Radical Abundance",
244
- "description": "Personalized medicine, limitless energy, space exploration",
245
- "color": "success"
246
- },
247
- {
248
- "date": "Beyond",
249
- "title": "Golden Age",
250
- "description": "Humanity's most transformative era of scientific discovery",
251
- "color": "highlight"
252
- }
253
- ]
254
- }
255
- }
256
- },
257
- {
258
- "text": "We stand at the threshold of the most transformative era in human history. The golden age of discovery isn't a distant dream. It's already beginning. The question is whether we choose to build it.",
259
- "image": {
260
- "type": "slide",
261
- "slide": {
262
- "layout": "bigQuote",
263
- "quote": "Human wants are boundless. Every problem solved creates new frontiers. The golden age of discovery isn't a distant dream โ€” it's already beginning.",
264
- "author": "Demis Hassabis",
265
- "role": "Nobel Laureate"
266
- }
267
- }
268
- }
269
- ]
270
- }
Binary file
Binary file
Binary file
Binary file
@@ -1,120 +0,0 @@
1
- {
2
- "$mulmocast": { "version": "1.1" },
3
- "title": "ใƒžใ‚ณใƒญใ‚ขใƒ‹ใƒก ใƒ—ใƒญใƒˆใ‚ฟใ‚คใƒ—",
4
- "description": "MulmoCastใƒชใƒŸใƒ†ใƒƒใƒ‰ใ‚ขใƒ‹ใƒกใƒผใ‚ทใƒงใƒณใฎใƒ†ใ‚นใƒˆ",
5
- "lang": "ja",
6
- "speechParams": {
7
- "provider": "openai",
8
- "speakers": {
9
- "macoro": {
10
- "voiceId": "nova",
11
- "displayName": { "ja": "ใƒžใ‚ณใƒญ" }
12
- }
13
- }
14
- },
15
- "beats": [
16
- {
17
- "speaker": "macoro",
18
- "text": "ใ“ใ‚“ใซใกใฏ๏ผใผใใƒžใ‚ณใƒญใ ใ‚ˆ๏ผไปŠๆ—ฅใฏใฟใ‚“ใชใซไผšใˆใฆใ†ใ‚Œใ—ใ„ใช๏ผ",
19
- "image": {
20
- "type": "html_tailwind",
21
- "html": [
22
- "<div class='h-full w-full relative overflow-hidden' style='background: linear-gradient(135deg, #fce4ec 0%, #f8bbd0 30%, #e1bee7 60%, #bbdefb 100%);'>",
23
- "",
24
- " <!-- ่ƒŒๆ™ฏใฎๆตฎ้Šใƒ‘ใƒผใƒ†ใ‚ฃใ‚ฏใƒซ -->",
25
- " <div id='p1' class='absolute w-4 h-4 rounded-full' style='background: rgba(255,255,255,0.6); left:10%; top:80%;'></div>",
26
- " <div id='p2' class='absolute w-3 h-3 rounded-full' style='background: rgba(255,200,200,0.5); left:30%; top:85%;'></div>",
27
- " <div id='p3' class='absolute w-5 h-5 rounded-full' style='background: rgba(200,200,255,0.5); left:70%; top:75%;'></div>",
28
- " <div id='p4' class='absolute w-3 h-3 rounded-full' style='background: rgba(255,255,200,0.6); left:85%; top:90%;'></div>",
29
- " <div id='p5' class='absolute w-4 h-4 rounded-full' style='background: rgba(200,255,200,0.5); left:50%; top:82%;'></div>",
30
- "",
31
- " <!-- ่ƒŒๆ™ฏใฎๆ˜Ÿ -->",
32
- " <div id='star1' class='absolute text-4xl' style='left:15%; top:15%;'>โœฆ</div>",
33
- " <div id='star2' class='absolute text-3xl' style='left:80%; top:20%;'>โœฆ</div>",
34
- " <div id='star3' class='absolute text-2xl' style='left:60%; top:10%;'>โœฆ</div>",
35
- "",
36
- " <!-- ใƒžใ‚ณใƒญๆœฌไฝ“ -->",
37
- " <div id='macoro-container' class='absolute' style='bottom:5%; left:50%; transform:translateX(-50%);'>",
38
- " <img id='macoro' src='https://raw.githubusercontent.com/receptron/mulmocast-media/main/characters/macoro.png' style='width:500px; filter:drop-shadow(0 10px 20px rgba(0,0,0,0.2));' />",
39
- " </div>",
40
- "",
41
- " <!-- ๅนใๅ‡บใ— -->",
42
- " <div id='bubble' class='absolute' style='top:8%; right:8%; opacity:0;'>",
43
- " <div class='bg-white rounded-3xl px-8 py-5 shadow-lg relative' style='max-width:380px;'>",
44
- " <p id='bubble-text' class='text-2xl font-bold text-gray-700'></p>",
45
- " <div class='absolute -bottom-3 left-12 w-6 h-6 bg-white transform rotate-45'></div>",
46
- " </div>",
47
- " </div>",
48
- "",
49
- "</div>"
50
- ],
51
- "script": [
52
- "const fullText = 'ใ“ใ‚“ใซใกใฏ๏ผใผใใƒžใ‚ณใƒญใ ใ‚ˆ๏ผ\\nไปŠๆ—ฅใฏใฟใ‚“ใชใซไผšใˆใฆใ†ใ‚Œใ—ใ„ใช๏ผ';",
53
- "",
54
- "function render(frame, totalFrames, fps) {",
55
- " const t = frame / fps;",
56
- " const macoro = document.getElementById('macoro-container');",
57
- " const bubble = document.getElementById('bubble');",
58
- " const bubbleText = document.getElementById('bubble-text');",
59
- "",
60
- " // --- ใƒžใ‚ณใƒญใฎๅ‹•ใ ---",
61
- " // ็™ปๅ ด: ไธ‹ใ‹ใ‚‰ใƒใ‚ฆใƒณใ‚นใ‚คใƒณ (0-1็ง’)",
62
- " let macoroY = 0;",
63
- " if (t < 1.0) {",
64
- " const p = t / 1.0;",
65
- " const bounce = Math.sin(p * Math.PI) * 30;",
66
- " macoroY = (1 - p) * 200 - bounce;",
67
- " }",
68
- "",
69
- " // ่ฉฑใ—ใฆใ„ใ‚‹ๆ™‚ใฎใดใ‚‡ใ“ใดใ‚‡ใ“ (1็ง’ไปฅ้™)",
70
- " if (t >= 1.0) {",
71
- " const talkBounce = Math.sin(t * 8) * 8;",
72
- " const talkTilt = Math.sin(t * 5) * 3;",
73
- " macoroY = talkBounce;",
74
- " macoro.style.transform = 'translateX(-50%) translateY(' + macoroY + 'px) rotate(' + talkTilt + 'deg)';",
75
- " } else {",
76
- " macoro.style.transform = 'translateX(-50%) translateY(' + macoroY + 'px)';",
77
- " }",
78
- "",
79
- " // --- ๅนใๅ‡บใ— ---",
80
- " if (t >= 0.8) {",
81
- " const bubbleP = Math.min((t - 0.8) / 0.3, 1);",
82
- " const scale = 0.5 + bubbleP * 0.5;",
83
- " bubble.style.opacity = bubbleP;",
84
- " bubble.style.transform = 'scale(' + scale + ')';",
85
- "",
86
- " // ใ‚ฟใ‚คใƒ—ใƒฉใ‚คใ‚ฟใƒผๅŠนๆžœ",
87
- " const textProgress = Math.min((t - 1.0) / 3.0, 1);",
88
- " if (textProgress > 0) {",
89
- " const charCount = Math.floor(textProgress * fullText.length);",
90
- " bubbleText.innerHTML = fullText.substring(0, charCount).replace('\\n', '<br>');",
91
- " }",
92
- " }",
93
- "",
94
- " // --- ่ƒŒๆ™ฏใƒ‘ใƒผใƒ†ใ‚ฃใ‚ฏใƒซ ---",
95
- " for (let i = 1; i <= 5; i++) {",
96
- " const p = document.getElementById('p' + i);",
97
- " const speed = 0.3 + i * 0.15;",
98
- " const sway = Math.sin(t * (1 + i * 0.3) + i) * 20;",
99
- " const y = ((1 - ((t * speed * 0.1) % 1)) * 110) - 10;",
100
- " p.style.top = y + '%';",
101
- " p.style.transform = 'translateX(' + sway + 'px)';",
102
- " }",
103
- "",
104
- " // --- ่ƒŒๆ™ฏใฎๆ˜Ÿใ‚ญใƒฉใ‚ญใƒฉ ---",
105
- " for (let i = 1; i <= 3; i++) {",
106
- " const star = document.getElementById('star' + i);",
107
- " const twinkle = 0.3 + Math.sin(t * 3 + i * 2) * 0.7;",
108
- " const starScale = 0.8 + Math.sin(t * 2 + i) * 0.3;",
109
- " star.style.opacity = twinkle;",
110
- " star.style.transform = 'scale(' + starScale + ')';",
111
- " star.style.color = 'rgba(255,200,50,' + twinkle + ')';",
112
- " }",
113
- "}"
114
- ],
115
- "animation": { "fps": 24 }
116
- },
117
- "duration": 6
118
- }
119
- ]
120
- }
@@ -1,45 +0,0 @@
1
- {
2
- "$mulmocast": {
3
- "version": "1.1"
4
- },
5
- "canvasSize": {
6
- "width": 1280,
7
- "height": 720
8
- },
9
- "speechParams": {
10
- "speakers": {
11
- "Presenter": {
12
- "provider": "openai",
13
- "voiceId": "shimmer",
14
- "displayName": {
15
- "en": "Presenter"
16
- }
17
- }
18
- }
19
- },
20
- "imageParams": {
21
- "provider": "openai",
22
- "images": {}
23
- },
24
- "movieParams": {
25
- "provider": "replicate"
26
- },
27
- "soundEffectParams": {
28
- "provider": "replicate"
29
- },
30
- "audioParams": {
31
- "introPadding": 1,
32
- "padding": 0.3,
33
- "closingPadding": 0.8,
34
- "outroPadding": 1,
35
- "bgmVolume": 0.2,
36
- "audioVolume": 1,
37
- "suppressSpeech": false
38
- },
39
- "lang": "en",
40
- "beats": [
41
- {
42
- "text": "Hello"
43
- }
44
- ]
45
- }
@@ -1,111 +0,0 @@
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
- }