@speech-sdk/core 0.22.0 → 0.23.0

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 (59) hide show
  1. package/README.md +52 -8
  2. package/dist/conversation/stitch.d.ts +2 -0
  3. package/dist/conversation/stitch.d.ts.map +1 -1
  4. package/dist/conversation/stitch.js +14 -34
  5. package/dist/conversation/stitch.js.map +1 -1
  6. package/dist/conversation/types.d.ts +2 -0
  7. package/dist/conversation/types.d.ts.map +1 -1
  8. package/dist/errors.d.ts +12 -0
  9. package/dist/errors.d.ts.map +1 -1
  10. package/dist/errors.js +18 -0
  11. package/dist/errors.js.map +1 -1
  12. package/dist/generate-conversation.d.ts +5 -2
  13. package/dist/generate-conversation.d.ts.map +1 -1
  14. package/dist/generate-conversation.js +87 -7
  15. package/dist/generate-conversation.js.map +1 -1
  16. package/dist/generate-speech.d.ts +4 -1
  17. package/dist/generate-speech.d.ts.map +1 -1
  18. package/dist/generate-speech.js +22 -72
  19. package/dist/generate-speech.js.map +1 -1
  20. package/dist/index.d.ts +1 -1
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +1 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/pronunciations/inverse-align.d.ts.map +1 -1
  25. package/dist/pronunciations/inverse-align.js +6 -1
  26. package/dist/pronunciations/inverse-align.js.map +1 -1
  27. package/dist/providers/elevenlabs/alignment.d.ts.map +1 -1
  28. package/dist/providers/elevenlabs/alignment.js +57 -23
  29. package/dist/providers/elevenlabs/alignment.js.map +1 -1
  30. package/dist/providers/elevenlabs/forced-alignment.d.ts +23 -0
  31. package/dist/providers/elevenlabs/forced-alignment.d.ts.map +1 -0
  32. package/dist/providers/elevenlabs/forced-alignment.js +64 -0
  33. package/dist/providers/elevenlabs/forced-alignment.js.map +1 -0
  34. package/dist/providers/elevenlabs/index.d.ts +4 -1
  35. package/dist/providers/elevenlabs/index.d.ts.map +1 -1
  36. package/dist/providers/elevenlabs/index.js +10 -7
  37. package/dist/providers/elevenlabs/index.js.map +1 -1
  38. package/dist/speech-result.d.ts +6 -0
  39. package/dist/speech-result.d.ts.map +1 -1
  40. package/dist/speech-result.js.map +1 -1
  41. package/dist/timestamp-alignment.d.ts +34 -0
  42. package/dist/timestamp-alignment.d.ts.map +1 -0
  43. package/dist/timestamp-alignment.js +125 -0
  44. package/dist/timestamp-alignment.js.map +1 -0
  45. package/dist/timestamp-finalization.d.ts +15 -0
  46. package/dist/timestamp-finalization.d.ts.map +1 -0
  47. package/dist/timestamp-finalization.js +111 -0
  48. package/dist/timestamp-finalization.js.map +1 -0
  49. package/dist/timestamp-provider.d.ts +10 -0
  50. package/dist/timestamp-provider.d.ts.map +1 -0
  51. package/dist/timestamp-provider.js +2 -0
  52. package/dist/timestamp-provider.js.map +1 -0
  53. package/dist/types.d.ts +4 -1
  54. package/dist/types.d.ts.map +1 -1
  55. package/package.json +1 -1
  56. package/dist/default-stt-fallback.d.ts +0 -3
  57. package/dist/default-stt-fallback.d.ts.map +0 -1
  58. package/dist/default-stt-fallback.js +0 -11
  59. package/dist/default-stt-fallback.js.map +0 -1
package/README.md CHANGED
@@ -152,7 +152,7 @@ const result = await generateConversation({
152
152
  });
153
153
  ```
154
154
 
155
- Options: `gapMs` (default 300), `volumeDbfs` (default `-20`), `maxConcurrency` (default 6), `maxRetries` (default 2), `timestamps`, `apiKey`, `providerOptions`, `abortSignal`, `headers`. Per-turn overrides: `model`, `providerOptions` (stitch path only — throws `ConversationInputError` on native). Native-dialogue models enforce their own voice-count and character limits; violations throw `DialogueConstraintError`.
155
+ Options: `gapMs` (default 300), `volumeDbfs` (default `-20`), `maxConcurrency` (default 6), `maxRetries` (default 2), `timestamps`, `timestampProvider`, `apiKey`, `providerOptions`, `abortSignal`, `headers`. Per-turn overrides: `model`, `providerOptions` (stitch path only — throws `ConversationInputError` on native). Native-dialogue models enforce their own voice-count and character limits; violations throw `DialogueConstraintError`.
156
156
 
157
157
  ## Timestamps
158
158
 
@@ -174,14 +174,16 @@ result.timestamps;
174
174
  // ]
175
175
  ```
176
176
 
177
+ Returned timestamps are projected onto the exact text synthesized by the SDK: caller input after unsupported audio tags are removed and pronunciation substitutions are applied. Provider text is used only to prove complete lexical coverage and provide timing boundaries. Before timestamps are accepted, the SDK verifies Unicode-aware transcript coverage, rejects missing or extra lexical content and punctuation-only entries, and validates finite, nonnegative, monotonic timings against the generated audio. Pronunciation substitutions are mapped back to caller text before timestamps are returned.
178
+
177
179
  | Value | Behavior |
178
180
  |---|---|
179
- | `true` | Always return timestamps. Uses native alignment when available; otherwise transcribes the audio via STT (extra cost + latency). |
180
- | `false` *(default)* | Never return timestamps. |
181
+ | `true` | Returns validated word timestamps. Native models use their own timestamps. Direct models without native timestamps require `timestampProvider` (or a legacy factory-level `fallbackSTT`). |
182
+ | `false` *(default)* | Never requests, derives, or returns timestamps. |
181
183
 
182
- With `timestamps: true`, models without native alignment require an STT fallback. The SDK automatically uses OpenAI Whisper when `OPENAI_API_KEY` is set in the environment — no extra configuration needed. Gateway-routed models (string model IDs like `"openai/tts-1"`) do not need a fallback — the gateway server provides it.
184
+ `timestampProvider` is only used for direct models that do not support native timestamps. It is intentionally a no-op for native models and gateway-routed string models, where the provider or gateway owns timestamp generation. Invalid, empty, or mismatched requested timestamps throw `TimestampValidationError`; the SDK never returns fabricated or partially matched timings.
183
185
 
184
- **Resolution order:** factory `fallbackSTT` → `OPENAI_API_KEY` env var (automatic Whisper fallback) → throws `TimestampKeyMissingError`.
186
+ There is no implicit OpenAI fallback. Existing factory-level `fallbackSTT` configuration remains supported for compatibility, but new integrations should use the narrower `timestampProvider` interface.
185
187
 
186
188
  Configure `fallbackSTT` on the factory to use a different key or STT model (set it once, applies to all calls):
187
189
 
@@ -204,7 +206,34 @@ const result = await generateSpeech({
204
206
 
205
207
  Whether a given model returns native alignment or transcribes via the STT fallback is a provider detail — both paths produce the same `WordTimestamp[]` shape.
206
208
 
207
- `generateConversation` accepts the same options and returns `ConversationWordTimestamp[]` — every word carries a `turnIndex: number` pointing back into the input `turns[]`. This is what lets you build chat-bubble UIs, speaker-attributed transcripts, and "who's speaking now?" lookups during playback without re-deriving turn boundaries.
209
+ ### ElevenLabs Forced Alignment
210
+
211
+ [ElevenLabs Forced Alignment](https://elevenlabs.io/docs/api-reference/forced-alignment/create/) is available as a timestamp provider. It sends the generated audio and exact synthesized text to ElevenLabs; it is never selected as a default.
212
+
213
+ ```ts
214
+ import { generateSpeech } from '@speech-sdk/core';
215
+ import { createElevenLabs } from '@speech-sdk/core/providers';
216
+
217
+ const elevenlabs = createElevenLabs({
218
+ apiKey: process.env.ELEVENLABS_API_KEY,
219
+ });
220
+
221
+ const result = await generateSpeech({
222
+ model: elevenlabs('eleven_multilingual_v2'),
223
+ voice: 'JBFqnCBsd6RMkjVDRZzb',
224
+ text: 'Dr. Smith paid 12 dollars',
225
+ timestamps: true,
226
+ timestampProvider: elevenlabs.forcedAlignment(),
227
+ });
228
+
229
+ result.timestamps;
230
+ // [{ text: 'Dr.', ... }, { text: 'Smith', ... }, { text: 'paid', ... }, { text: '12', ... }, { text: 'dollars', ... }]
231
+
232
+ ```
233
+
234
+ Any object implementing the exported `TimestampProvider` interface can be passed the same way. It receives generated audio, its media type, the exact synthesized text, and the request's abort signal. Provider, network, and timestamp validation errors throw normally.
235
+
236
+ `generateConversation` retains its boolean `timestamps` option and returns `ConversationWordTimestamp[]` — every word carries a `turnIndex: number` pointing back into the input `turns[]`.
208
237
 
209
238
  ```ts
210
239
  import { generateConversation, timestampsToTurns } from '@speech-sdk/core';
@@ -430,7 +459,10 @@ Public types live under `@speech-sdk/core/types`:
430
459
  import type {
431
460
  GenerateSpeechOptions,
432
461
  SpeechResult,
462
+ SpeechResultWithTimestamps,
433
463
  ConversationResult,
464
+ ConversationResultWithTimestamps,
465
+ TimestampProvider,
434
466
  Voice,
435
467
  WordTimestamp,
436
468
  } from '@speech-sdk/core/types';
@@ -445,7 +477,8 @@ generateSpeech({
445
477
  voice: Voice, // required — string | { url } | { audio }
446
478
  providerOptions?: object,
447
479
  volumeDbfs?: number, // ≤ 0
448
- timestamps?: boolean, // default false
480
+ timestamps?: boolean,
481
+ timestampProvider?: TimestampProvider, // used only when the direct model lacks native timestamps
449
482
  maxRetries?: number, // default 2
450
483
  abortSignal?: AbortSignal,
451
484
  headers?: Record<string, string>,
@@ -459,6 +492,15 @@ interface SpeechResult {
459
492
  warnings?: string[];
460
493
  }
461
494
 
495
+ interface TimestampProvider {
496
+ align(input: {
497
+ abortSignal?: AbortSignal;
498
+ audio: Uint8Array;
499
+ mediaType: string;
500
+ text: string;
501
+ }): Promise<readonly WordTimestamp[]>;
502
+ }
503
+
462
504
  interface WordTimestamp { text: string; start: number; end: number } // seconds
463
505
 
464
506
  // Returned by generateConversation — extends WordTimestamp with turnIndex
@@ -500,7 +542,9 @@ try {
500
542
  | `NoSpeechGeneratedError` | Empty input (after tag stripping) or empty provider response |
501
543
  | `StreamingNotSupportedError` | `streamSpeech()` on a non-streaming model |
502
544
  | `VolumeAdjustmentUnsupportedError` | `volumeDbfs` with no decodable output mode |
503
- | `TimestampKeyMissingError` | `timestamps: true` with no native support, no `fallbackSTT` configured, and `OPENAI_API_KEY` not set |
545
+ | `TimestampProviderRequiredError` | `timestamps: true` on a direct model without native timestamps or an explicit timestamp provider |
546
+ | `TimestampValidationError` | Requested timestamps are empty, structurally invalid, or do not exactly cover the synthesized text |
547
+ | `TimestampKeyMissingError` | A legacy configured `fallbackSTT` is missing its API key |
504
548
  | `ConversationInputError` / `DialogueConstraintError` / `StitchUnsupportedError` | `generateConversation` validation / native caps / stitch incompatibility |
505
549
  | `SpeechSDKError` | Base class |
506
550
 
@@ -2,6 +2,7 @@ import { type AudioOutput } from "../audio-output.js";
2
2
  import type { SpeechMetadata } from "../metadata.js";
3
3
  import type { PronunciationsInput } from "../pronunciations/types.js";
4
4
  import type { ResolvedModel, Voice } from "../speech-provider.js";
5
+ import type { TimestampProvider } from "../timestamp-provider.js";
5
6
  import type { ConversationWordTimestamp } from "../timestamps.js";
6
7
  import type { ConversationTurn } from "./types.js";
7
8
  interface StitchInput<V extends Voice = Voice> {
@@ -20,6 +21,7 @@ interface StitchInput<V extends Voice = Voice> {
20
21
  providerOptions: Record<string, unknown>;
21
22
  mediaType: string;
22
23
  }[];
24
+ readonly timestampProvider?: TimestampProvider;
23
25
  readonly timestamps: boolean;
24
26
  readonly topLevelProviderOptions?: Record<string, unknown>;
25
27
  readonly turns: readonly ConversationTurn<V>[];
@@ -1 +1 @@
1
- {"version":3,"file":"stitch.d.ts","sourceRoot":"","sources":["../../src/conversation/stitch.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,WAAW,EAEjB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAQlE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,UAAU,WAAW,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK;IAC3C,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAGzB,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,mBAAmB,CAAC;IAC9C,QAAQ,CAAC,eAAe,EAAE,SAAS,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,QAAQ,CAAC,oBAAoB,EAAE,SAAS;QACtC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACzC,SAAS,EAAE,MAAM,CAAC;KACnB,EAAE,CAAC;IACJ,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3D,QAAQ,CAAC,KAAK,EAAE,SAAS,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,UAAU,YAAY;IACpB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;KACnC,CAAC;IACF,QAAQ,CAAC,eAAe,EAAE,SAAS,cAAc,EAAE,CAAC;IACpD,QAAQ,CAAC,uBAAuB,EAAE,SAAS,CACvC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,SAAS,CACZ,EAAE,CAAC;IACJ,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAC3D,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAID,wBAAsB,SAAS,CAAC,CAAC,SAAS,KAAK,EAC7C,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GACpB,OAAO,CAAC,YAAY,CAAC,CAsJvB"}
1
+ {"version":3,"file":"stitch.d.ts","sourceRoot":"","sources":["../../src/conversation/stitch.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,WAAW,EAEjB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAOlE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,UAAU,WAAW,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK;IAC3C,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAGzB,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,mBAAmB,CAAC;IAC9C,QAAQ,CAAC,eAAe,EAAE,SAAS,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,QAAQ,CAAC,oBAAoB,EAAE,SAAS;QACtC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACzC,SAAS,EAAE,MAAM,CAAC;KACnB,EAAE,CAAC;IACJ,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAC/C,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3D,QAAQ,CAAC,KAAK,EAAE,SAAS,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,UAAU,YAAY;IACpB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;KACnC,CAAC;IACF,QAAQ,CAAC,eAAe,EAAE,SAAS,cAAc,EAAE,CAAC;IACpD,QAAQ,CAAC,uBAAuB,EAAE,SAAS,CACvC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,SAAS,CACZ,EAAE,CAAC;IACJ,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAC3D,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,wBAAsB,SAAS,CAAC,CAAC,SAAS,KAAK,EAC7C,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GACpB,OAAO,CAAC,YAAY,CAAC,CAkIvB"}
@@ -1,12 +1,10 @@
1
1
  import { decodeAudioToPcm16 } from "../audio-decode.js";
2
2
  import { applyOptionalOutputConversion, } from "../audio-output.js";
3
3
  import { mapWithConcurrency } from "../concurrency.js";
4
- import { withTurnIndex } from "../errors.js";
4
+ import { TimestampValidationError, withTurnIndex } from "../errors.js";
5
5
  import { generateSpeech } from "../generate-speech.js";
6
6
  import { debug } from "../logger.js";
7
7
  import { concatPcmToWav, dbfsToInt16Rms, normalizeRms, stitchTargetRate, } from "./pcm-concat.js";
8
- import { fillTurnTimestampsProportional } from "./proportional-fill.js";
9
- const WHITESPACE_RE = /\s+/;
10
8
  export async function runStitch(input) {
11
9
  const start = performance.now();
12
10
  const perTurn = await mapWithConcurrency(input.turns, input.maxConcurrency, async (turn, i, signal) => {
@@ -29,6 +27,7 @@ export async function runStitch(input) {
29
27
  abortSignal: signal,
30
28
  headers: input.headers,
31
29
  timestamps: input.timestamps,
30
+ timestampProvider: input.timestampProvider,
32
31
  pronunciations: input.pronunciations,
33
32
  maxInputChars: input.maxInputChars,
34
33
  maxConcurrency: input.maxConcurrency,
@@ -69,46 +68,29 @@ export async function runStitch(input) {
69
68
  // Use source duration (pre-resample) so offsets match what the per-turn STT/native saw.
70
69
  const gapSeconds = input.gapMs / 1000;
71
70
  const turnDurations = perTurn.map((p) => p.segment.pcm.length / p.segment.sampleRate);
72
- const fillWarnings = [];
73
71
  let timestamps;
74
72
  if (input.timestamps) {
75
73
  timestamps = [];
76
74
  let offsetSec = 0;
77
- const filledTurns = [];
78
75
  for (let i = 0; i < perTurn.length; i++) {
79
76
  const turnTimestamps = perTurn[i]?.result.timestamps;
80
- if (turnTimestamps && turnTimestamps.length > 0) {
81
- for (const w of turnTimestamps) {
82
- timestamps.push({
83
- text: w.text,
84
- start: w.start + offsetSec,
85
- end: w.end + offsetSec,
86
- turnIndex: i,
87
- });
88
- }
77
+ if (!turnTimestamps) {
78
+ throw new TimestampValidationError({
79
+ reason: "empty",
80
+ source: `conversation turn ${i}`,
81
+ });
89
82
  }
90
- else {
91
- const turnText = input.turns[i]?.text ?? "";
92
- const tokens = turnText
93
- .split(WHITESPACE_RE)
94
- .filter((t) => t.length > 0);
95
- const turnSec = turnDurations[i] ?? 0;
96
- const filled = fillTurnTimestampsProportional({
83
+ for (const w of turnTimestamps) {
84
+ timestamps.push({
85
+ text: w.text,
86
+ start: w.start + offsetSec,
87
+ end: w.end + offsetSec,
97
88
  turnIndex: i,
98
- tokenCount: tokens.length,
99
- startSec: offsetSec,
100
- endSec: offsetSec + turnSec,
101
- texts: tokens,
102
89
  });
103
- timestamps.push(...filled);
104
- filledTurns.push(i);
105
90
  }
106
91
  offsetSec += (turnDurations[i] ?? 0) + gapSeconds;
107
92
  }
108
- if (filledTurns.length > 0) {
109
- fillWarnings.push(`speech-sdk: stitch path filled timestamps for turn(s) [${filledTurns.join(",")}] proportionally — provider returned no per-word alignment for those turns.`);
110
- }
111
- debug(`stitch: composed ${timestamps.length} word timestamps across ${perTurn.length} turn(s); ${filledTurns.length} turn(s) filled proportionally.`);
93
+ debug(`stitch: composed ${timestamps.length} word timestamps across ${perTurn.length} turn(s).`);
112
94
  }
113
95
  return {
114
96
  audio: finalAudio,
@@ -121,9 +103,7 @@ export async function runStitch(input) {
121
103
  metadataPerTurn,
122
104
  providerMetadataPerTurn,
123
105
  timestamps,
124
- warnings: warnings.length > 0 || fillWarnings.length > 0
125
- ? [...warnings, ...fillWarnings]
126
- : warnings,
106
+ warnings,
127
107
  };
128
108
  }
129
109
  //# sourceMappingURL=stitch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stitch.js","sourceRoot":"","sources":["../../src/conversation/stitch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stitch.js","sourceRoot":"","sources":["../../src/conversation/stitch.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { AudioOutput } from "../audio-output.js";
2
2
  import type { PronunciationsInput } from "../pronunciations/types.js";
3
3
  import type { ResolvedModel, Voice } from "../speech-provider.js";
4
+ import type { TimestampProvider } from "../timestamp-provider.js";
4
5
  export interface ConversationTurn<V extends Voice = Voice> {
5
6
  readonly model?: string | ResolvedModel<V>;
6
7
  readonly providerOptions?: Record<string, unknown>;
@@ -21,6 +22,7 @@ export interface GenerateConversationOptions<V extends Voice = Voice, M extends
21
22
  readonly pronunciations?: PronunciationsInput;
22
23
  readonly providerOptions?: Record<string, unknown>;
23
24
  readonly speed?: number;
25
+ readonly timestampProvider?: TimestampProvider;
24
26
  readonly timestamps?: boolean;
25
27
  readonly turns: readonly ConversationTurn<V>[];
26
28
  readonly volumeDbfs?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/conversation/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAElE,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK;IACvD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAC3C,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB;AAED,MAAM,WAAW,2BAA2B,CAC1C,CAAC,SAAS,KAAK,GAAG,KAAK,EACvB,CAAC,SAAS,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,GAC3C,MAAM,GACN,aAAa,CAAC,CAAC,CAAC,GAChB,SAAS;IAEb,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnB,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,mBAAmB,CAAC;IAC9C,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IAE/C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/conversation/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK;IACvD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAC3C,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB;AAED,MAAM,WAAW,2BAA2B,CAC1C,CAAC,SAAS,KAAK,GAAG,KAAK,EACvB,CAAC,SAAS,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,GAC3C,MAAM,GACN,aAAa,CAAC,CAAC,CAAC,GAChB,SAAS;IAEb,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnB,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,mBAAmB,CAAC;IAC9C,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAC/C,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IAE/C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B"}
package/dist/errors.d.ts CHANGED
@@ -123,4 +123,16 @@ export declare class TimestampKeyMissingError extends SpeechSDKError {
123
123
  envVar: string;
124
124
  });
125
125
  }
126
+ export declare class TimestampProviderRequiredError extends SpeechSDKError {
127
+ readonly model: string;
128
+ constructor(model: string);
129
+ }
130
+ export declare class TimestampValidationError extends SpeechSDKError {
131
+ readonly reason: "empty" | "invalid_timing" | "transcript_mismatch";
132
+ readonly source: string;
133
+ constructor(options: {
134
+ reason: "empty" | "invalid_timing" | "transcript_mismatch";
135
+ source: string;
136
+ });
137
+ }
126
138
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
package/dist/errors.js CHANGED
@@ -279,4 +279,22 @@ export class TimestampKeyMissingError extends SpeechSDKError {
279
279
  this.name = "TimestampKeyMissingError";
280
280
  }
281
281
  }
282
+ export class TimestampProviderRequiredError extends SpeechSDKError {
283
+ model;
284
+ constructor(model) {
285
+ super(`${model} does not return word timestamps natively. Pass timestampProvider when timestamps is true.`);
286
+ this.name = "TimestampProviderRequiredError";
287
+ this.model = model;
288
+ }
289
+ }
290
+ export class TimestampValidationError extends SpeechSDKError {
291
+ reason;
292
+ source;
293
+ constructor(options) {
294
+ super(`Timestamp alignment from ${options.source} is invalid: ${options.reason}.`);
295
+ this.name = "TimestampValidationError";
296
+ this.reason = options.reason;
297
+ this.source = options.source;
298
+ }
299
+ }
282
300
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,11 @@
1
1
  import type { GenerateConversationOptions } from "./conversation/types.js";
2
2
  import { type ResolvedModel, type Voice } from "./speech-provider.js";
3
- import type { ConversationResult } from "./speech-result.js";
3
+ import type { ConversationResult, ConversationResultWithTimestamps } from "./speech-result.js";
4
4
  export { ConversationInputError, DialogueConstraintError, MixedDispatchError, StitchUnsupportedError, } from "./conversation/errors.js";
5
5
  export type { ConversationTurn, GenerateConversationOptions, } from "./conversation/types.js";
6
- export type { ConversationMetadata, ConversationResult, } from "./speech-result.js";
6
+ export type { ConversationMetadata, ConversationResult, ConversationResultWithTimestamps, } from "./speech-result.js";
7
+ export declare function generateConversation<V extends Voice = Voice, M extends string | ResolvedModel<V> | undefined = string | ResolvedModel<V> | undefined>(options: GenerateConversationOptions<V, M> & {
8
+ timestamps: true;
9
+ }): Promise<ConversationResultWithTimestamps>;
7
10
  export declare function generateConversation<V extends Voice = Voice, M extends string | ResolvedModel<V> | undefined = string | ResolvedModel<V> | undefined>(options: GenerateConversationOptions<V, M>): Promise<ConversationResult>;
8
11
  //# sourceMappingURL=generate-conversation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-conversation.d.ts","sourceRoot":"","sources":["../src/generate-conversation.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAEV,2BAA2B,EAC5B,MAAM,yBAAyB,CAAC;AAkBjC,OAAO,EAIL,KAAK,aAAa,EAElB,KAAK,KAAK,EACX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAEV,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAK5B,wBAAsB,oBAAoB,CACxC,CAAC,SAAS,KAAK,GAAG,KAAK,EACvB,CAAC,SAAS,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,GAC3C,MAAM,GACN,aAAa,CAAC,CAAC,CAAC,GAChB,SAAS,EACb,OAAO,EAAE,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA8IzE"}
1
+ {"version":3,"file":"generate-conversation.d.ts","sourceRoot":"","sources":["../src/generate-conversation.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAEV,2BAA2B,EAC5B,MAAM,yBAAyB,CAAC;AAmBjC,OAAO,EAIL,KAAK,aAAa,EAElB,KAAK,KAAK,EACX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAEV,kBAAkB,EAClB,gCAAgC,EACjC,MAAM,oBAAoB,CAAC;AAS5B,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,oBAAoB,EACpB,kBAAkB,EAClB,gCAAgC,GACjC,MAAM,oBAAoB,CAAC;AAyB5B,wBAAgB,oBAAoB,CAClC,CAAC,SAAS,KAAK,GAAG,KAAK,EACvB,CAAC,SAAS,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,GAC3C,MAAM,GACN,aAAa,CAAC,CAAC,CAAC,GAChB,SAAS,EAEb,OAAO,EAAE,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;IAAE,UAAU,EAAE,IAAI,CAAA;CAAE,GAChE,OAAO,CAAC,gCAAgC,CAAC,CAAC;AAC7C,wBAAgB,oBAAoB,CAClC,CAAC,SAAS,KAAK,GAAG,KAAK,EACvB,CAAC,SAAS,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,GAC3C,MAAM,GACN,aAAa,CAAC,CAAC,CAAC,GAChB,SAAS,EACb,OAAO,EAAE,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC"}
@@ -5,9 +5,8 @@ import { applyOptionalOutputConversion, sampleRateHintFrom, validateOutput, } fr
5
5
  import { mapWithConcurrency, resolveMaxConcurrency } from "./concurrency.js";
6
6
  import { chooseConversationPath } from "./conversation/dispatch.js";
7
7
  import { validateConversationInput } from "./conversation/validate.js";
8
- import { getDefaultSTTFallback } from "./default-stt-fallback.js";
9
8
  import { deriveTimestampsViaSTT } from "./derive-timestamps.js";
10
- import { NoSpeechGeneratedError, OutputConversionUnsupportedError, } from "./errors.js";
9
+ import { NoSpeechGeneratedError, OutputConversionUnsupportedError, TimestampProviderRequiredError, TimestampValidationError, } from "./errors.js";
11
10
  import { debug } from "./logger.js";
12
11
  import { inverseAlign } from "./pronunciations/inverse-align.js";
13
12
  import { mergeRules } from "./pronunciations/merge.js";
@@ -18,10 +17,26 @@ import { buildRetryOptions } from "./retry-options.js";
18
17
  import { isSpeechGatewayModel, modelDeclaresNativeTimestamps, modelMaxInputChars, } from "./speech-provider.js";
19
18
  import { DefaultGeneratedAudioFile } from "./speech-result.js";
20
19
  import { resolveMaxInputChars } from "./text-chunker.js";
20
+ import { deriveTimestampsViaProvider } from "./timestamp-alignment.js";
21
+ import { finalizeTimestamps } from "./timestamp-finalization.js";
21
22
  // biome-ignore lint/performance/noBarrelFile: public entry point — re-export error classes so callers get fn + types + errors from one import
22
23
  export { ConversationInputError, DialogueConstraintError, MixedDispatchError, StitchUnsupportedError, } from "./conversation/errors.js";
23
24
  const DEFAULT_GAP_MS = 300;
24
25
  const DEFAULT_MAX_RETRIES = 2;
26
+ function requireValidTimestamps(args) {
27
+ const finalized = finalizeTimestamps({
28
+ audioDurationMs: args.audioDurationMs,
29
+ text: args.text,
30
+ timestamps: args.timestamps,
31
+ });
32
+ if (!finalized.ok) {
33
+ throw new TimestampValidationError({
34
+ reason: finalized.reason,
35
+ source: args.source,
36
+ });
37
+ }
38
+ return finalized.timestamps;
39
+ }
25
40
  export async function generateConversation(options) {
26
41
  validateConversationInput(options);
27
42
  validateOutput(options.output);
@@ -108,6 +123,7 @@ export async function generateConversation(options) {
108
123
  abortSignal: options.abortSignal,
109
124
  headers: options.headers,
110
125
  timestamps: options.timestamps ?? false,
126
+ timestampProvider: options.timestampProvider,
111
127
  pronunciations: options.pronunciations,
112
128
  // Defer output conversion to applySpeedToConversationResult to avoid encoding twice.
113
129
  deferOutputConversion: isSpeedActive(options.speed),
@@ -233,7 +249,14 @@ async function runGateway(args) {
233
249
  mediaType: result.mediaType,
234
250
  });
235
251
  const audioDurationMs = await computeAudioDuration(audio.uint8Array, result.mediaType);
236
- const timestamps = includeTimestamps ? (result.timestamps ?? []) : undefined;
252
+ const timestamps = includeTimestamps
253
+ ? finalizeGatewayConversationTimestamps({
254
+ audioDurationMs,
255
+ source: "speech-gateway/conversation",
256
+ timestamps: result.timestamps ?? [],
257
+ turnTexts: options.turns.map((turn) => turn.text),
258
+ })
259
+ : undefined;
237
260
  const warnings = result.warnings;
238
261
  const inputChars = options.turns.reduce((n, t) => n + t.text.length, 0);
239
262
  const metadata = {
@@ -251,6 +274,26 @@ async function runGateway(args) {
251
274
  warnings: warnings && warnings.length > 0 ? warnings : undefined,
252
275
  };
253
276
  }
277
+ function finalizeGatewayConversationTimestamps(args) {
278
+ const projected = [];
279
+ for (const [turnIndex, text] of args.turnTexts.entries()) {
280
+ const turnTimestamps = args.timestamps.filter((timestamp) => timestamp.turnIndex === turnIndex);
281
+ const finalized = requireValidTimestamps({
282
+ audioDurationMs: args.audioDurationMs,
283
+ source: args.source,
284
+ text,
285
+ timestamps: turnTimestamps,
286
+ });
287
+ projected.push(...finalized.map((timestamp) => ({ ...timestamp, turnIndex })));
288
+ }
289
+ requireValidTimestamps({
290
+ audioDurationMs: args.audioDurationMs,
291
+ source: args.source,
292
+ text: args.turnTexts.join(" "),
293
+ timestamps: projected,
294
+ });
295
+ return projected;
296
+ }
254
297
  async function runNative(args) {
255
298
  const { options, resolved, maxRetries } = args;
256
299
  const start = performance.now();
@@ -284,7 +327,7 @@ async function runNative(args) {
284
327
  debug(`${dialogueId} (dialogue): timestamps: true — requesting native dialogue alignment.`);
285
328
  }
286
329
  else {
287
- debug(`${dialogueId} (dialogue): timestamps: true but no native dialogue alignment — will transcribe mixed audio via STT after rendering (adds a round-trip).`);
330
+ debug(`${dialogueId} (dialogue): timestamps: true but no native dialogue alignment — using the configured timestamp provider after rendering.`);
288
331
  }
289
332
  const ruleMap = options.pronunciations?.rules?.length
290
333
  ? mergeRules(options.pronunciations.rules)
@@ -312,12 +355,15 @@ async function runNative(args) {
312
355
  const { timestamps: rawTimestamps, warnings: attributionWarnings } = await resolveNativeDialogueTimestamps({
313
356
  requestTimestamps,
314
357
  nativeTimestamps: result.timestamps,
358
+ hasNativeTimestamps: hasNativeDialogueTimestamps,
315
359
  audio: audio.uint8Array,
316
360
  mediaType: outputMediaType,
317
361
  ttsModel: `${resolved.provider.id}/${resolved.modelId}`,
318
362
  resolved,
319
363
  abortSignal: options.abortSignal,
364
+ audioDurationMs,
320
365
  substitutedTurnTexts: substitutedTurns.map((t) => t.text),
366
+ timestampProvider: options.timestampProvider,
321
367
  });
322
368
  const timestamps = ruleMap
323
369
  ? inverseAlignDialogueTimestamps(rawTimestamps, substitutedTurns)
@@ -355,6 +401,12 @@ async function runNative(args) {
355
401
  }
356
402
  async function runNativeDispatch(args) {
357
403
  const { options, resolved, blocks } = args;
404
+ if (options.timestamps &&
405
+ !modelDeclaresNativeTimestamps(resolved) &&
406
+ !options.timestampProvider &&
407
+ !resolved.fallbackSTT) {
408
+ throw new TimestampProviderRequiredError(`${resolved.provider.id}/${resolved.modelId}`);
409
+ }
358
410
  const maxRetries = options.maxRetries ?? DEFAULT_MAX_RETRIES;
359
411
  if (blocks && blocks.length > 1) {
360
412
  return await runNativeSplit({
@@ -388,7 +440,8 @@ async function runNativeSplit(args) {
388
440
  ...stitchOpts.providerOptions,
389
441
  };
390
442
  const requestTimestamps = options.timestamps ?? false;
391
- const shouldRequestNative = requestTimestamps && modelDeclaresNativeTimestamps(resolved);
443
+ const hasNativeTimestamps = modelDeclaresNativeTimestamps(resolved);
444
+ const shouldRequestNative = requestTimestamps && hasNativeTimestamps;
392
445
  const ruleMap = options.pronunciations?.rules?.length
393
446
  ? mergeRules(options.pronunciations.rules)
394
447
  : null;
@@ -417,12 +470,15 @@ async function runNativeSplit(args) {
417
470
  const { timestamps, warnings } = await resolveNativeDialogueTimestamps({
418
471
  requestTimestamps,
419
472
  nativeTimestamps: result.timestamps,
473
+ hasNativeTimestamps,
420
474
  audio: blockAudio,
421
475
  mediaType: stitchOpts.mediaType,
422
476
  ttsModel,
423
477
  resolved,
424
478
  abortSignal: signal,
479
+ audioDurationMs: (segment.pcm.length / segment.sampleRate) * 1000,
425
480
  substitutedTurnTexts: blockTurns.map((t) => t.text),
481
+ timestampProvider: options.timestampProvider,
426
482
  pcmSegment: segment,
427
483
  });
428
484
  return {
@@ -509,11 +565,29 @@ async function resolveNativeDialogueTimestamps(args) {
509
565
  }
510
566
  // Either use native flat timestamps, or derive via STT fallback.
511
567
  let flatTimestamps;
512
- if (args.nativeTimestamps && args.nativeTimestamps.length > 0) {
568
+ if (args.hasNativeTimestamps) {
569
+ if (!args.nativeTimestamps || args.nativeTimestamps.length === 0) {
570
+ throw new TimestampValidationError({
571
+ reason: "empty",
572
+ source: args.ttsModel,
573
+ });
574
+ }
513
575
  flatTimestamps = args.nativeTimestamps;
514
576
  }
577
+ else if (args.timestampProvider) {
578
+ flatTimestamps = await deriveTimestampsViaProvider({
579
+ audio: args.audio,
580
+ mediaType: args.mediaType,
581
+ text: args.substitutedTurnTexts.join(" "),
582
+ provider: args.timestampProvider,
583
+ abortSignal: args.abortSignal,
584
+ });
585
+ }
515
586
  else {
516
- const fallback = args.resolved.fallbackSTT ?? (await getDefaultSTTFallback());
587
+ const fallback = args.resolved.fallbackSTT;
588
+ if (!fallback) {
589
+ throw new TimestampProviderRequiredError(args.ttsModel);
590
+ }
517
591
  flatTimestamps = await deriveTimestampsViaSTT({
518
592
  ttsModel: args.ttsModel,
519
593
  audio: args.audio,
@@ -525,6 +599,12 @@ async function resolveNativeDialogueTimestamps(args) {
525
599
  abortSignal: args.abortSignal,
526
600
  });
527
601
  }
602
+ flatTimestamps = requireValidTimestamps({
603
+ audioDurationMs: args.audioDurationMs,
604
+ source: args.ttsModel,
605
+ text: args.substitutedTurnTexts.join(" "),
606
+ timestamps: flatTimestamps,
607
+ });
528
608
  const { detectSilenceGaps } = await import("./conversation/silence-detection.js");
529
609
  const { attributeTimestamps } = await import("./conversation/attribute-timestamps.js");
530
610
  let silenceGaps = [];