feat(web-test): per-caption voice + speechRate for multi-voice narration

- addNarration: use cap.voice override per caption (fallback to global)
- showCaption/showImage/showTitleSlide: pass opts.voice to caption entry
- showCaption: record caption when text is empty but speech is explicit
- startRecording: add speechRate option (default 70ms/char, 85 for ElevenLabs)
- run.mjs: increase exec timeout to 30min for long recordings
- docs: update recording.md and web-test-recording-guide.md

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-03-21 16:30:02 +03:00
co-authored by Claude Opus 4.6
parent ca0dac2693
commit 6f36e36166
4 changed files with 59 additions and 17 deletions
+1 -1
View File
@@ -230,7 +230,7 @@ async function cmdExec(fileOrDash, flags = {}) {
const result = await new Promise((resolve, reject) => {
const req = http.request({
hostname: '127.0.0.1', port: sess.port, path: '/exec',
method: 'POST', timeout: 10 * 60 * 1000, headers,
method: 'POST', timeout: 30 * 60 * 1000, headers,
}, res => {
let data = '';
res.on('data', chunk => data += chunk);