Replace the non-streaming whole-clip timestamps fetch with an SSE consumer. Each event carries one sentence's mp3 + exact start/end ms; audio feeds an MSE SourceBuffer in sequence mode so playback starts after sentence 0, and the sentences array grows live to drive the glow (tick reads its length each frame). Falls back to a buffered single blob when the browser lacks mp3 MSE. Removes fetchTTSWithTimestamps. Best of both: instant start and exact sync. |
||
|---|---|---|
| .. | ||
| auth.html | ||
| base.html | ||
| browse.html | ||
| chat.html | ||
| index.html | ||
| profile.html | ||
| search.html | ||