You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This means parameters can appear in any order and unneeded ones can simply be omitted — no empty `||` slots required.
108
109
@@ -120,6 +121,7 @@ This means parameters can appear in any order and unneeded ones can simply be om
120
121
|**WPM**|`NNN` or `NNNWPM`| Integer speed override. Omit to inherit. |
121
122
|**Emotion**| preset name | Emotion preset (see table below). Omit to inherit (defaults to `Neutral` at document level). |
122
123
|**Timing**|`MM:SS` or `MM:SS-MM:SS`| Duration hint. Stored for tooling; playback computes timing from word counts. |
124
+
|**Speaker**|`Speaker:Name`| Talent assignment for multi-speaker scripts. Omit for single-speaker. |
123
125
124
126
**Leading text:** Content between a segment header and its first block is preserved as introductory text that inherits the segment's speed and emotion.
125
127
@@ -144,6 +146,7 @@ Blocks are topic groups within a segment.
144
146
|**Name**| free text | Descriptive label. Required (first value before the first `\|`). |
145
147
|**WPM**|`NNN` or `NNNWPM`| Integer speed override. Inherits segment WPM if omitted. |
146
148
|**Emotion**| preset name | Emotion override. Inherits segment emotion if omitted. |
149
+
|**Speaker**|`Speaker:Name`| Talent assignment. Inherits segment speaker if omitted. |
147
150
148
151
### Inline Markers
149
152
@@ -279,6 +282,22 @@ Delivery mode tags describe **how** to deliver a passage, beyond emotion and vol
279
282
|`[rhetorical]`| Deliver as a statement with question syntax. No rising intonation. | Rhetorical questions that don't expect answers. |
280
283
|`[building]`| Start at lower energy, gradually increase through the passage. | Reveals, motivational build-ups, crescendo moments. |
281
284
285
+
#### Speaker Tags
286
+
287
+
For multi-talent scripts, mark who reads each section:
288
+
289
+
```markdown
290
+
## [Interview|Warm|Speaker:Alex]
291
+
292
+
### [Question|Speaker:Jordan]
293
+
So tell us about the project. //
294
+
295
+
### [Answer|Speaker:Alex]
296
+
We started with a simple idea. //
297
+
```
298
+
299
+
The `Speaker:Name` parameter is added to segment or block headers using the same `|`-separated syntax. The parser identifies it by the `Speaker:` prefix. Renderers should visually distinguish speakers (e.g., different text colors or labels).
300
+
282
301
## Keyword Reference
283
302
284
303
### Emotions (case-insensitive)
@@ -312,6 +331,8 @@ Renderers map each emotion to a visual style (colors, background, text treatment
312
331
313
332
### Delivery Modes
314
333
334
+
Delivery modes are a **closed set** — parsers should treat unknown delivery mode keywords as unknown tags (see Error Handling).
335
+
315
336
| Keyword | Delivery | Use when |
316
337
|---------|----------|----------|
317
338
|`sarcasm`| Say it straight, but mean the opposite. Deadpan or exaggerated. | Comedy, skepticism, irony. |
@@ -427,6 +448,8 @@ When emotion changes between segments or blocks, renderers should apply a smooth
427
448
428
449
**Delivery modes** (`[sarcasm]`, `[aside]`, `[rhetorical]`, `[building]`) override the current emotion for their span. They are specialized delivery instructions that take priority over the block emotion.
429
450
451
+
**Volume + delivery modes:** Volume tags apply independently to delivery modes. `[building][loud]text[/loud][/building]` starts at loud volume and gradually increases energy while maintaining the loud level. Volume controls loudness; delivery modes control the shape of delivery.
452
+
430
453
### Phrase Boundaries
431
454
432
455
A **phrase** is a unit of text delimited by:
@@ -483,13 +506,14 @@ All tags (`[emphasis]`, `[slow]`, `[loud]`, `[sarcasm]`, etc.) are **invisible i
483
506
484
507
The reader sees only the spoken text with visual styling applied. Tags are commands for the renderer, not content for the speaker.
485
508
486
-
### Content Restrictions
509
+
### Content Guidelines
510
+
511
+
TPS scripts contain **spoken text only**. Authors should avoid including non-spoken content. Parsers treat everything as plain text — these are authoring guidelines, not parsing constraints.
487
512
488
-
TPS scripts contain **spoken text only**. Do not include:
489
-
- URLs or hyperlinks — these are not spoken content
490
-
- Code blocks or technical syntax — rewrite as spoken language
491
-
- Images or embedded media references
492
-
- Raw data tables — narrate the data instead
513
+
-**URLs or hyperlinks** — not spoken content; rewrite as "visit our website" or similar
514
+
-**Code blocks or technical syntax** — rewrite as spoken language
515
+
-**Images or embedded media references** — describe verbally instead
0 commit comments