@speech-sdk/core 0.25.3 → 0.26.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.
package/README.md CHANGED
@@ -201,7 +201,9 @@ Returned timestamps are projected onto the exact text synthesized by the SDK: ca
201
201
  | `true` | Returns validated word timestamps. Native models use their own timestamps. Direct models without native timestamps require `timestampProvider` (or a legacy factory-level `fallbackSTT`). |
202
202
  | `false` *(default)* | Never requests, derives, or returns timestamps. |
203
203
 
204
- `timestampProvider` is used for direct models without native timestamps and as a fallback when direct native timestamps fail validation. It remains a no-op for gateway-routed string models, where the gateway owns timestamp generation. Invalid, empty, or mismatched requested timestamps throw `TimestampValidationError`. The only estimated timings the SDK returns are missing internal caller-word boundaries inside an otherwise valid pronunciation edit span, and those results include a warning.
204
+ `timestampProvider` is used for direct models without native timestamps and as a fallback when direct native timestamps fail validation. It remains a no-op for gateway-routed string models, where the gateway owns timestamp generation. Missing internal caller-word boundaries inside an otherwise valid pronunciation edit span are interpolated, and those results include a warning.
205
+
206
+ On direct paths, timestamps never fail synthesis. When the SDK chunks a long input, forced alignment runs per synthesis chunk and the timings are concatenated with the stitch offsets; alignment is skipped entirely for inputs below a few words, where it cannot succeed and is not needed. If timings are still empty or fail transcript validation, the SDK distributes the words evenly across the measured audio duration (a single span for one word) instead of throwing. `metadata.timestampsSource` reports how the returned timings were produced: `'native'`, `'aligned'`, or `'estimated'`. Gateway-routed calls are unchanged — the gateway server owns its timestamp contract, so its failures surface as `TimestampValidationError`.
205
207
 
206
208
  There is no implicit OpenAI fallback. Existing factory-level `fallbackSTT` configuration remains supported for compatibility, but new integrations should use the narrower `timestampProvider` interface.
207
209
 
@@ -251,7 +253,7 @@ result.timestamps;
251
253
 
252
254
  ```
253
255
 
254
- 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.
256
+ 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 validation failures during alignment don't discard the synthesized audio — the SDK falls back to evenly estimated timings and reports it via `metadata.timestampsSource`.
255
257
 
256
258
  `generateConversation` retains its boolean `timestamps` option and returns `ConversationWordTimestamp[]` — every word carries a `turnIndex: number` pointing back into the input `turns[]`.
257
259
 
@@ -1 +1 @@
1
- {"version":3,"file":"generate-speech.d.ts","sourceRoot":"","sources":["../src/generate-speech.ts"],"names":[],"mappings":"AA6BA,OAAO,EAGL,KAAK,aAAa,EAGlB,KAAK,KAAK,EACX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,YAAY,EACZ,0BAA0B,EAC3B,MAAM,oBAAoB,CAAC;AAM5B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAmBxD,wBAAgB,cAAc,CAC5B,CAAC,SAAS,KAAK,GAAG,KAAK,EACvB,CAAC,SAAS,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,EAE/D,OAAO,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;IAAE,UAAU,EAAE,IAAI,CAAA;CAAE,GAC1D,OAAO,CAAC,0BAA0B,CAAC,CAAC;AACvC,wBAAgB,cAAc,CAC5B,CAAC,SAAS,KAAK,GAAG,KAAK,EACvB,CAAC,SAAS,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,EAC/D,OAAO,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC"}
1
+ {"version":3,"file":"generate-speech.d.ts","sourceRoot":"","sources":["../src/generate-speech.ts"],"names":[],"mappings":"AA6BA,OAAO,EAGL,KAAK,aAAa,EAGlB,KAAK,KAAK,EACX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,YAAY,EACZ,0BAA0B,EAC3B,MAAM,oBAAoB,CAAC;AAY5B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAmBxD,wBAAgB,cAAc,CAC5B,CAAC,SAAS,KAAK,GAAG,KAAK,EACvB,CAAC,SAAS,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,EAE/D,OAAO,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;IAAE,UAAU,EAAE,IAAI,CAAA;CAAE,GAC1D,OAAO,CAAC,0BAA0B,CAAC,CAAC;AACvC,wBAAgB,cAAc,CAC5B,CAAC,SAAS,KAAK,GAAG,KAAK,EACvB,CAAC,SAAS,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,EAC/D,OAAO,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import pRetry from "p-retry";
2
- import { applySpeedToAudio, isSpeedActive, scaleTimestamps, validateSpeed, } from "./apply-speed.js";
2
+ import { applySpeedToAudio, isSpeedActive, validateSpeed, } from "./apply-speed.js";
3
3
  import { computeAudioDuration } from "./audio-duration.js";
4
4
  import { applyOptionalOutputConversion, validateOutput, } from "./audio-output.js";
5
+ import { textWithoutAudioTags } from "./audio-tags.js";
5
6
  import { mapWithConcurrency, resolveMaxConcurrency } from "./concurrency.js";
6
7
  import { NoSpeechGeneratedError, OutputConversionUnsupportedError, TextChunkingUnsupportedError, VolumeAdjustmentUnsupportedError, } from "./errors.js";
7
8
  import { validateInstructionSupport } from "./instructions.js";
@@ -14,7 +15,8 @@ import { isSpeechGatewayModel, modelMaxInputChars, } from "./speech-provider.js"
14
15
  import { DefaultGeneratedAudioFile } from "./speech-result.js";
15
16
  import { resolveMaxInputChars, splitTextByMaxChars } from "./text-chunker.js";
16
17
  import { preprocessSpeechText } from "./text-preprocessing.js";
17
- import { prepareTimestampAlignment } from "./timestamp-alignment.js";
18
+ import { prepareTimestampAlignment, } from "./timestamp-alignment.js";
19
+ import { concatTimestampsWithOffsets, } from "./timestamps.js";
18
20
  function chunkStitchTargetRate(segments) {
19
21
  const rate = segments.reduce((m, s) => (s.sampleRate > m ? s.sampleRate : m), 0);
20
22
  if (rate <= 0) {
@@ -79,8 +81,12 @@ export async function generateSpeech(options) {
79
81
  });
80
82
  const shouldRequestNative = timestampAlignment.includeNative;
81
83
  const startTime = performance.now();
82
- const result = shouldChunk
83
- ? await generateChunkedSpeech({
84
+ let result;
85
+ // Resolved only when chunking — maxConcurrency governs chunked synthesis and per-chunk alignment, and stays unvalidated (documented as ignored) on paths that never fan out.
86
+ let maxConcurrency;
87
+ if (shouldChunk) {
88
+ maxConcurrency = resolveMaxConcurrency(options.maxConcurrency);
89
+ result = await generateChunkedSpeech({
84
90
  resolved,
85
91
  modelIdentifier,
86
92
  textChunks,
@@ -90,12 +96,15 @@ export async function generateSpeech(options) {
90
96
  stitchOptions,
91
97
  maxInputChars: maxInputChars ?? textToSend.length,
92
98
  maxRetries,
93
- maxConcurrency: resolveMaxConcurrency(options.maxConcurrency),
99
+ maxConcurrency,
94
100
  abortSignal,
95
101
  headers,
96
102
  includeTimestamps: shouldRequestNative,
97
- })
98
- : await generateProviderSpeech({
103
+ buildAlignmentChunks: timestamps,
104
+ });
105
+ }
106
+ else {
107
+ result = await generateProviderSpeech({
99
108
  resolved,
100
109
  text: textToSend,
101
110
  instructions,
@@ -110,6 +119,7 @@ export async function generateSpeech(options) {
110
119
  pronunciations: options.pronunciations,
111
120
  speed,
112
121
  });
122
+ }
113
123
  const latencyMs = Math.round(performance.now() - startTime);
114
124
  const audioData = result.audio;
115
125
  if (audioData.length === 0) {
@@ -135,11 +145,14 @@ export async function generateSpeech(options) {
135
145
  const publicAlignment = await timestampAlignment.resolve({
136
146
  audio: audio.uint8Array,
137
147
  audioDurationMs,
148
+ alignmentChunks: result.alignmentChunks,
149
+ maxConcurrency,
138
150
  mediaType: stretched.mediaType,
139
151
  originalText: canonicalText,
140
152
  pronunciationEdits,
141
- // Native timestamps reference pre-stretch timing on direct paths; gateway already returns scaled timestamps.
142
- providerTimestamps: maybeScale(result.timestamps, localSpeed),
153
+ providerTimestamps: result.timestamps,
154
+ // localSpeed is undefined on the gateway path, whose timestamps arrive already scaled.
155
+ speed: localSpeed,
143
156
  synthesizedText: synthesizedCanonicalText,
144
157
  abortSignal,
145
158
  });
@@ -147,6 +160,9 @@ export async function generateSpeech(options) {
147
160
  latencyMs,
148
161
  inputChars: options.text.length,
149
162
  ...(audioDurationMs != null && { audioDurationMs }),
163
+ ...(publicAlignment.source != null && {
164
+ timestampsSource: publicAlignment.source,
165
+ }),
150
166
  };
151
167
  return {
152
168
  audio,
@@ -234,6 +250,7 @@ async function generateChunkedSpeech(args) {
234
250
  const stitchOptions = args.stitchOptions;
235
251
  const { decodeAudioToPcm16 } = await import("./audio-decode.js");
236
252
  const { concatPcmToWav } = await import("./conversation/pcm-concat.js");
253
+ const { wrapPcm16Mono } = await import("./audio-utils.js");
237
254
  const perChunk = await mapWithConcurrency(args.textChunks, args.maxConcurrency, async (text, _i, signal) => {
238
255
  const result = await generateProviderSpeech({
239
256
  resolved: args.resolved,
@@ -259,7 +276,12 @@ async function generateChunkedSpeech(args) {
259
276
  ? result.mediaType
260
277
  : stitchOptions.mediaType;
261
278
  const segment = await decodeAudioToPcm16(audio, decodeMediaType);
262
- return { result, segment };
279
+ return {
280
+ result,
281
+ segment,
282
+ text,
283
+ durationSeconds: segment.pcm.length / segment.sampleRate,
284
+ };
263
285
  }, { signal: args.abortSignal });
264
286
  const segments = perChunk.map((c) => c.segment);
265
287
  const targetSampleRate = chunkStitchTargetRate(segments);
@@ -267,15 +289,25 @@ async function generateChunkedSpeech(args) {
267
289
  gapMs: 0,
268
290
  targetSampleRate,
269
291
  });
270
- const durationSeconds = segments.reduce((sum, segment) => sum + segment.pcm.length / segment.sampleRate, 0);
292
+ const durationSeconds = perChunk.reduce((sum, c) => sum + c.durationSeconds, 0);
271
293
  const warnings = perChunk.flatMap((c) => c.result.warnings ?? []);
272
294
  const providerMetadataChunks = perChunk.map((c) => c.result.providerMetadata);
273
295
  const providerMetadata = providerMetadataChunks.some((m) => m != null)
274
296
  ? { chunks: providerMetadataChunks }
275
297
  : undefined;
298
+ // Per-chunk audio for forced alignment, encoded lazily — alignment over the unbounded stitched result exceeds aligner input limits. Skipped when timestamps are off so the PCM segments aren't retained.
299
+ const alignmentChunks = args.buildAlignmentChunks
300
+ ? perChunk.map(({ segment, text, durationSeconds: chunkSeconds }) => ({
301
+ audio: () => wrapPcm16Mono(new Uint8Array(segment.pcm.buffer, segment.pcm.byteOffset, segment.pcm.byteLength), segment.sampleRate),
302
+ durationSeconds: chunkSeconds,
303
+ mediaType: "audio/wav",
304
+ text: textWithoutAudioTags(text),
305
+ }))
306
+ : undefined;
276
307
  return {
277
308
  audio,
278
309
  audioDurationMs: Math.round(durationSeconds * 1000),
310
+ ...(alignmentChunks && { alignmentChunks }),
279
311
  mediaType: "audio/wav",
280
312
  providerMetadata,
281
313
  timestamps: mergeChunkTimestamps(perChunk),
@@ -286,19 +318,10 @@ function mergeChunkTimestamps(perChunk) {
286
318
  if (perChunk.some((c) => !c.result.timestamps?.length)) {
287
319
  return;
288
320
  }
289
- const timestamps = [];
290
- let offset = 0;
291
- for (const chunk of perChunk) {
292
- for (const word of chunk.result.timestamps ?? []) {
293
- timestamps.push({
294
- text: word.text,
295
- start: word.start + offset,
296
- end: word.end + offset,
297
- });
298
- }
299
- offset += chunk.segment.pcm.length / chunk.segment.sampleRate;
300
- }
301
- return timestamps;
321
+ return concatTimestampsWithOffsets(perChunk.map((c) => ({
322
+ durationSeconds: c.durationSeconds,
323
+ words: c.result.timestamps ?? [],
324
+ })));
302
325
  }
303
326
  function resolveProviderOptionsForLocalDecoding(args) {
304
327
  if (args.isGateway) {
@@ -376,9 +399,6 @@ async function applyLocalAudioPostProcessing(args) {
376
399
  }
377
400
  return { bytes, mediaType };
378
401
  }
379
- function maybeScale(timestamps, speed) {
380
- return isSpeedActive(speed) ? scaleTimestamps(timestamps, speed) : timestamps;
381
- }
382
402
  function maybeScaleDurationMs(durationMs, speed) {
383
403
  if (durationMs == null || !isSpeedActive(speed)) {
384
404
  return durationMs;
@@ -1 +1 @@
1
- {"version":3,"file":"generate-speech.js","sourceRoot":"","sources":["../src/generate-speech.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-speech.js","sourceRoot":"","sources":["../src/generate-speech.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
+ import type { TimestampsSource } from "./timestamps.js";
1
2
  export interface SpeechMetadata {
2
3
  readonly audioDurationMs?: number;
3
4
  readonly inputChars: number;
4
5
  readonly latencyMs: number;
6
+ readonly timestampsSource?: TimestampsSource;
5
7
  readonly ttfbMs?: number;
6
8
  }
7
9
  //# sourceMappingURL=metadata.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAE7B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B"}
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,MAAM,WAAW,cAAc;IAE7B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAE7C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B"}
@@ -1,23 +1,34 @@
1
1
  import type { Edit } from "./pronunciations/types.js";
2
2
  import { type ResolvedModel } from "./speech-provider.js";
3
3
  import type { TimestampProvider } from "./timestamp-provider.js";
4
- import type { WordTimestamp } from "./timestamps.js";
4
+ import { type TimestampsSource, type WordTimestamp } from "./timestamps.js";
5
+ export interface AlignmentAudioChunk {
6
+ audio(): Promise<Uint8Array>;
7
+ readonly durationSeconds: number;
8
+ readonly mediaType: string;
9
+ readonly text: string;
10
+ }
5
11
  export interface TimestampAlignmentResult {
12
+ readonly source?: TimestampsSource;
6
13
  readonly timestamps?: readonly WordTimestamp[];
7
14
  readonly warnings?: readonly string[];
8
15
  }
16
+ interface TimestampResolutionArgs {
17
+ readonly abortSignal?: AbortSignal;
18
+ readonly alignmentChunks?: readonly AlignmentAudioChunk[];
19
+ readonly audio: Uint8Array;
20
+ readonly audioDurationMs?: number;
21
+ readonly maxConcurrency?: number;
22
+ readonly mediaType: string;
23
+ readonly originalText: string;
24
+ readonly pronunciationEdits: readonly Edit[];
25
+ readonly providerTimestamps?: readonly WordTimestamp[];
26
+ readonly speed?: number;
27
+ readonly synthesizedText: string;
28
+ }
9
29
  export interface TimestampAlignmentPlan {
10
30
  readonly includeNative: boolean;
11
- resolve(args: {
12
- readonly abortSignal?: AbortSignal;
13
- readonly audio: Uint8Array;
14
- readonly audioDurationMs?: number;
15
- readonly mediaType: string;
16
- readonly originalText: string;
17
- readonly pronunciationEdits: readonly Edit[];
18
- readonly providerTimestamps?: readonly WordTimestamp[];
19
- readonly synthesizedText: string;
20
- }): Promise<TimestampAlignmentResult>;
31
+ resolve(args: TimestampResolutionArgs): Promise<TimestampAlignmentResult>;
21
32
  }
22
33
  export declare function deriveTimestampsViaProvider(args: {
23
34
  readonly abortSignal?: AbortSignal;
@@ -32,4 +43,5 @@ export declare function prepareTimestampAlignment(args: {
32
43
  readonly resolved: ResolvedModel;
33
44
  readonly timestampProvider?: TimestampProvider;
34
45
  }): TimestampAlignmentPlan;
46
+ export {};
35
47
  //# sourceMappingURL=timestamp-alignment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"timestamp-alignment.d.ts","sourceRoot":"","sources":["../src/timestamp-alignment.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IAC/C,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,OAAO,CAAC,IAAI,EAAE;QACZ,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;QACnC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;QAC3B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;QAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,kBAAkB,EAAE,SAAS,IAAI,EAAE,CAAC;QAC7C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;QACvD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;KAClC,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;CACvC;AAwBD,wBAAsB,2BAA2B,CAAC,IAAI,EAAE;IACtD,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC,CAWpC;AA+BD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CAChD,GAAG,sBAAsB,CAgHzB"}
1
+ {"version":3,"file":"timestamp-alignment.d.ts","sourceRoot":"","sources":["../src/timestamp-alignment.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAM9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,aAAa,EACnB,MAAM,iBAAiB,CAAC;AAKzB,MAAM,WAAW,mBAAmB;IAClC,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IAC/C,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAED,UAAU,uBAAuB;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC1D,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,kBAAkB,EAAE,SAAS,IAAI,EAAE,CAAC;IAE7C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACvD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,OAAO,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;CAC3E;AAiCD,wBAAsB,2BAA2B,CAAC,IAAI,EAAE;IACtD,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC,CAWpC;AAgRD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CAChD,GAAG,sBAAsB,CA0CzB"}
@@ -1,9 +1,20 @@
1
+ import { isSpeedActive, scaleTimestamps } from "./apply-speed.js";
2
+ import { mapWithConcurrency } from "./concurrency.js";
1
3
  import { deriveTimestampsViaSTT } from "./derive-timestamps.js";
2
4
  import { TimestampProviderRequiredError, TimestampValidationError, withProviderErrorStage, } from "./errors.js";
3
5
  import { debug } from "./logger.js";
4
6
  import { inverseAlignWithQuality, PRONUNCIATION_TIMESTAMP_ESTIMATE_WARNING, } from "./pronunciations/inverse-align.js";
5
7
  import { isSpeechGatewayModel, modelDeclaresNativeTimestamps, } from "./speech-provider.js";
6
- import { finalizeTimestamps } from "./timestamp-finalization.js";
8
+ import { estimateTimestamps } from "./timestamp-estimation.js";
9
+ import { finalizeTimestamps, tokenizeTimestampSource, } from "./timestamp-finalization.js";
10
+ import { concatTimestampsWithOffsets, } from "./timestamps.js";
11
+ // Forced alignment is unreliable on very short utterances (a single word often returns nothing), and an even distribution over so few words is just as good.
12
+ const MIN_ALIGNMENT_WORD_COUNT = 3;
13
+ function scalePreStretch(timestamps, speed) {
14
+ return isSpeedActive(speed)
15
+ ? (scaleTimestamps(timestamps, speed) ?? [])
16
+ : timestamps;
17
+ }
7
18
  function finalizeCandidate(args) {
8
19
  const finalized = finalizeTimestamps({
9
20
  timestamps: args.timestamps,
@@ -49,15 +60,171 @@ function projectPublicText(args) {
49
60
  }),
50
61
  };
51
62
  }
63
+ function resolveAligner(args) {
64
+ const { timestampProvider } = args;
65
+ if (timestampProvider) {
66
+ return {
67
+ source: "timestampProvider",
68
+ align: (input) => deriveTimestampsViaProvider({ ...input, provider: timestampProvider }),
69
+ };
70
+ }
71
+ const fallback = args.resolved.fallbackSTT;
72
+ if (!fallback) {
73
+ return;
74
+ }
75
+ return {
76
+ source: `${fallback.provider.id}/${fallback.modelId}`,
77
+ align: (input) => deriveTimestampsViaSTT({
78
+ ttsModel: args.modelIdentifier,
79
+ audio: input.audio,
80
+ mediaType: input.mediaType,
81
+ text: input.text,
82
+ timestampFallback: fallback,
83
+ abortSignal: input.abortSignal,
84
+ }),
85
+ };
86
+ }
87
+ // Aligns each synthesis chunk against its own audio (forced alignment has input limits a stitched result exceeds), concatenating with the stitch offsets.
88
+ async function alignPerChunk(args) {
89
+ const perChunkWords = await mapWithConcurrency(args.chunks, args.maxConcurrency, async (chunk, _i, signal) => await args.aligner.align({
90
+ abortSignal: signal,
91
+ audio: await chunk.audio(),
92
+ mediaType: chunk.mediaType,
93
+ text: chunk.text,
94
+ }), { signal: args.abortSignal });
95
+ return concatTimestampsWithOffsets(args.chunks.map((chunk, index) => ({
96
+ durationSeconds: chunk.durationSeconds,
97
+ words: perChunkWords[index] ?? [],
98
+ })));
99
+ }
100
+ async function deriveAlignedTimestamps(args) {
101
+ const { aligner, resolutionArgs } = args;
102
+ if (resolutionArgs.alignmentChunks?.length) {
103
+ const chunked = await alignPerChunk({
104
+ abortSignal: resolutionArgs.abortSignal,
105
+ aligner,
106
+ chunks: resolutionArgs.alignmentChunks,
107
+ maxConcurrency: resolutionArgs.maxConcurrency ?? 1,
108
+ });
109
+ // Chunk audio is pre-stretch, unlike the whole-audio path below, which aligns the final audio.
110
+ return scalePreStretch(chunked, resolutionArgs.speed);
111
+ }
112
+ return await aligner.align({
113
+ abortSignal: resolutionArgs.abortSignal,
114
+ audio: resolutionArgs.audio,
115
+ mediaType: resolutionArgs.mediaType,
116
+ text: resolutionArgs.synthesizedText,
117
+ });
118
+ }
119
+ function finalizeAndProject(args) {
120
+ const finalized = finalizeCandidate({
121
+ timestamps: args.timestamps,
122
+ text: args.resolutionArgs.synthesizedText,
123
+ audioDurationMs: args.resolutionArgs.audioDurationMs,
124
+ source: args.validationSource,
125
+ });
126
+ return {
127
+ ...projectPublicText({
128
+ timestamps: finalized,
129
+ audioDurationMs: args.resolutionArgs.audioDurationMs,
130
+ originalText: args.resolutionArgs.originalText,
131
+ pronunciationEdits: args.resolutionArgs.pronunciationEdits,
132
+ substitutedText: args.resolutionArgs.synthesizedText,
133
+ }),
134
+ ...(args.source && { source: args.source }),
135
+ };
136
+ }
137
+ function tryResolveNative(modelIdentifier, resolutionArgs) {
138
+ try {
139
+ return {
140
+ result: finalizeAndProject({
141
+ resolutionArgs,
142
+ source: "native",
143
+ timestamps: scalePreStretch(resolutionArgs.providerTimestamps ?? [], resolutionArgs.speed),
144
+ validationSource: modelIdentifier,
145
+ }),
146
+ };
147
+ }
148
+ catch (error) {
149
+ if (!(error instanceof TimestampValidationError)) {
150
+ throw error;
151
+ }
152
+ debug(`${modelIdentifier}: native timestamps failed validation (${error.reason}).`);
153
+ return { error };
154
+ }
155
+ }
156
+ async function tryResolveAligned(modelIdentifier, aligner, resolutionArgs) {
157
+ try {
158
+ return {
159
+ result: finalizeAndProject({
160
+ resolutionArgs,
161
+ source: "aligned",
162
+ timestamps: await deriveAlignedTimestamps({ aligner, resolutionArgs }),
163
+ validationSource: aligner.source,
164
+ }),
165
+ };
166
+ }
167
+ catch (error) {
168
+ if (resolutionArgs.abortSignal?.aborted) {
169
+ throw error;
170
+ }
171
+ const message = error instanceof Error ? error.message : `${error}`;
172
+ debug(`${modelIdentifier}: alignment via ${aligner.source} failed (${message}).`);
173
+ return { error };
174
+ }
175
+ }
176
+ function shouldAttemptAlignment(modelIdentifier, resolutionArgs) {
177
+ // Without a measured duration the estimated floor cannot stand in, so alignment is always worth attempting.
178
+ const durationKnown = resolutionArgs.audioDurationMs != null &&
179
+ resolutionArgs.audioDurationMs > 0;
180
+ if (!durationKnown) {
181
+ return true;
182
+ }
183
+ const wordCount = tokenizeTimestampSource(resolutionArgs.synthesizedText).length;
184
+ if (wordCount >= MIN_ALIGNMENT_WORD_COUNT) {
185
+ return true;
186
+ }
187
+ debug(`${modelIdentifier}: skipping alignment for ${wordCount} word(s); using estimated timestamps.`);
188
+ return false;
189
+ }
190
+ async function resolveDirectTimestamps(context, resolutionArgs) {
191
+ let lastError;
192
+ if (context.includeNative) {
193
+ const native = tryResolveNative(context.modelIdentifier, resolutionArgs);
194
+ if (native.result) {
195
+ return native.result;
196
+ }
197
+ lastError = native.error;
198
+ }
199
+ if (context.aligner &&
200
+ shouldAttemptAlignment(context.modelIdentifier, resolutionArgs)) {
201
+ const aligned = await tryResolveAligned(context.modelIdentifier, context.aligner, resolutionArgs);
202
+ if (aligned.result) {
203
+ return aligned.result;
204
+ }
205
+ lastError = aligned.error;
206
+ }
207
+ // Estimated floor: synthesized audio is never discarded for want of timings.
208
+ const estimated = estimateTimestamps({
209
+ audioDurationMs: resolutionArgs.audioDurationMs,
210
+ text: resolutionArgs.originalText,
211
+ });
212
+ if (estimated == null) {
213
+ throw (lastError ??
214
+ new TimestampValidationError({
215
+ reason: "empty",
216
+ source: context.modelIdentifier,
217
+ }));
218
+ }
219
+ debug(`${context.modelIdentifier}: distributing ${estimated.length} words evenly across the audio duration.`);
220
+ return { timestamps: estimated, source: "estimated" };
221
+ }
52
222
  export function prepareTimestampAlignment(args) {
53
223
  const isGateway = isSpeechGatewayModel(args.resolved);
54
224
  const hasNative = modelDeclaresNativeTimestamps(args.resolved);
55
225
  const includeNative = args.request && (isGateway || hasNative);
56
- if (args.request &&
57
- !(isGateway ||
58
- hasNative ||
59
- args.timestampProvider ||
60
- args.resolved.fallbackSTT)) {
226
+ const aligner = resolveAligner(args);
227
+ if (args.request && !(isGateway || hasNative || aligner)) {
61
228
  throw new TimestampProviderRequiredError(args.modelIdentifier);
62
229
  }
63
230
  if (!args.request) {
@@ -78,80 +245,15 @@ export function prepareTimestampAlignment(args) {
78
245
  if (!args.request) {
79
246
  return {};
80
247
  }
81
- let finalized;
82
- if (includeNative) {
83
- try {
84
- finalized = finalizeCandidate({
85
- timestamps: resolutionArgs.providerTimestamps ?? [],
86
- text: resolutionArgs.synthesizedText,
87
- audioDurationMs: resolutionArgs.audioDurationMs,
88
- source: args.modelIdentifier,
89
- });
90
- }
91
- catch (error) {
92
- if (isGateway ||
93
- !args.timestampProvider ||
94
- !(error instanceof TimestampValidationError)) {
95
- throw error;
96
- }
97
- debug(`${args.modelIdentifier}: native timestamps failed validation (${error.reason}); using the supplied timestamp provider.`);
98
- const timestamps = await deriveTimestampsViaProvider({
99
- abortSignal: resolutionArgs.abortSignal,
100
- audio: resolutionArgs.audio,
101
- mediaType: resolutionArgs.mediaType,
102
- provider: args.timestampProvider,
103
- text: resolutionArgs.synthesizedText,
104
- });
105
- finalized = finalizeCandidate({
106
- timestamps,
107
- text: resolutionArgs.synthesizedText,
108
- audioDurationMs: resolutionArgs.audioDurationMs,
109
- source: "timestampProvider",
110
- });
111
- }
112
- }
113
- else if (args.timestampProvider) {
114
- const timestamps = await deriveTimestampsViaProvider({
115
- abortSignal: resolutionArgs.abortSignal,
116
- audio: resolutionArgs.audio,
117
- mediaType: resolutionArgs.mediaType,
118
- provider: args.timestampProvider,
119
- text: resolutionArgs.synthesizedText,
120
- });
121
- finalized = finalizeCandidate({
122
- timestamps,
123
- text: resolutionArgs.synthesizedText,
124
- audioDurationMs: resolutionArgs.audioDurationMs,
125
- source: "timestampProvider",
126
- });
127
- }
128
- else {
129
- const fallback = args.resolved.fallbackSTT;
130
- if (!fallback) {
131
- throw new TimestampProviderRequiredError(args.modelIdentifier);
132
- }
133
- const timestamps = await deriveTimestampsViaSTT({
134
- ttsModel: args.modelIdentifier,
135
- audio: resolutionArgs.audio,
136
- mediaType: resolutionArgs.mediaType,
137
- text: resolutionArgs.synthesizedText,
138
- timestampFallback: fallback,
139
- abortSignal: resolutionArgs.abortSignal,
140
- });
141
- finalized = finalizeCandidate({
142
- timestamps,
143
- text: resolutionArgs.synthesizedText,
144
- audioDurationMs: resolutionArgs.audioDurationMs,
145
- source: `${fallback.provider.id}/${fallback.modelId}`,
248
+ // Gateway invariant: the SDK is a transport; the gateway server owns the timestamp contract, so its failures surface unchanged.
249
+ if (isGateway) {
250
+ return finalizeAndProject({
251
+ resolutionArgs,
252
+ timestamps: resolutionArgs.providerTimestamps ?? [],
253
+ validationSource: args.modelIdentifier,
146
254
  });
147
255
  }
148
- return projectPublicText({
149
- timestamps: finalized,
150
- audioDurationMs: resolutionArgs.audioDurationMs,
151
- originalText: resolutionArgs.originalText,
152
- pronunciationEdits: resolutionArgs.pronunciationEdits,
153
- substitutedText: resolutionArgs.synthesizedText,
154
- });
256
+ return await resolveDirectTimestamps({ aligner, includeNative, modelIdentifier: args.modelIdentifier }, resolutionArgs);
155
257
  },
156
258
  };
157
259
  }
@@ -1 +1 @@
1
- {"version":3,"file":"timestamp-alignment.js","sourceRoot":"","sources":["../src/timestamp-alignment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"timestamp-alignment.js","sourceRoot":"","sources":["../src/timestamp-alignment.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { WordTimestamp } from "./timestamps.js";
2
+ export declare function estimateTimestamps(args: {
3
+ readonly audioDurationMs: number | undefined;
4
+ readonly text: string;
5
+ }): WordTimestamp[] | undefined;
6
+ //# sourceMappingURL=timestamp-estimation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timestamp-estimation.d.ts","sourceRoot":"","sources":["../src/timestamp-estimation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,GAAG,aAAa,EAAE,GAAG,SAAS,CAmB9B"}
@@ -0,0 +1,19 @@
1
+ import { tokenizeTimestampSource } from "./timestamp-finalization.js";
2
+ export function estimateTimestamps(args) {
3
+ const tokens = tokenizeTimestampSource(args.text);
4
+ if (tokens.length === 0) {
5
+ return [];
6
+ }
7
+ if (args.audioDurationMs == null ||
8
+ !Number.isFinite(args.audioDurationMs) ||
9
+ args.audioDurationMs <= 0) {
10
+ return;
11
+ }
12
+ const wordSeconds = args.audioDurationMs / 1000 / tokens.length;
13
+ return tokens.map((token, index) => ({
14
+ text: token.text,
15
+ start: index * wordSeconds,
16
+ end: (index + 1) * wordSeconds,
17
+ }));
18
+ }
19
+ //# sourceMappingURL=timestamp-estimation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timestamp-estimation.js","sourceRoot":"","sources":["../src/timestamp-estimation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAGtE,MAAM,UAAU,kBAAkB,CAAC,IAGlC;IACC,MAAM,MAAM,GAAG,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IACE,IAAI,CAAC,eAAe,IAAI,IAAI;QAC5B,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC;QACtC,IAAI,CAAC,eAAe,IAAI,CAAC,EACzB,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;IAChE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,GAAG,WAAW;QAC1B,GAAG,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,WAAW;KAC/B,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -1,3 +1,4 @@
1
+ export type TimestampsSource = "native" | "aligned" | "estimated";
1
2
  export interface WordTimestamp {
2
3
  readonly end: number;
3
4
  readonly start: number;
@@ -6,4 +7,9 @@ export interface WordTimestamp {
6
7
  export interface ConversationWordTimestamp extends WordTimestamp {
7
8
  readonly turnIndex: number;
8
9
  }
10
+ export interface TimedWordChunk {
11
+ readonly durationSeconds: number;
12
+ readonly words: readonly WordTimestamp[];
13
+ }
14
+ export declare function concatTimestampsWithOffsets(chunks: readonly TimedWordChunk[]): WordTimestamp[];
9
15
  //# sourceMappingURL=timestamps.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"timestamps.d.ts","sourceRoot":"","sources":["../src/timestamps.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,yBAA0B,SAAQ,aAAa;IAC9D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B"}
1
+ {"version":3,"file":"timestamps.d.ts","sourceRoot":"","sources":["../src/timestamps.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;AAElE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,yBAA0B,SAAQ,aAAa;IAC9D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;CAC1C;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,SAAS,cAAc,EAAE,GAChC,aAAa,EAAE,CAcjB"}
@@ -1,2 +1,16 @@
1
- export {};
1
+ export function concatTimestampsWithOffsets(chunks) {
2
+ const timestamps = [];
3
+ let offsetSeconds = 0;
4
+ for (const { durationSeconds, words } of chunks) {
5
+ for (const word of words) {
6
+ timestamps.push({
7
+ text: word.text,
8
+ start: word.start + offsetSeconds,
9
+ end: word.end + offsetSeconds,
10
+ });
11
+ }
12
+ offsetSeconds += durationSeconds;
13
+ }
14
+ return timestamps;
15
+ }
2
16
  //# sourceMappingURL=timestamps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"timestamps.js","sourceRoot":"","sources":["../src/timestamps.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"timestamps.js","sourceRoot":"","sources":["../src/timestamps.ts"],"names":[],"mappings":"AAiBA,MAAM,UAAU,2BAA2B,CACzC,MAAiC;IAEjC,MAAM,UAAU,GAAoB,EAAE,CAAC;IACvC,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,KAAK,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,MAAM,EAAE,CAAC;QAChD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,aAAa;gBACjC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,aAAa;aAC9B,CAAC,CAAC;QACL,CAAC;QACD,aAAa,IAAI,eAAe,CAAC;IACnC,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
package/dist/types.d.ts CHANGED
@@ -29,7 +29,7 @@ export type { ConversationResult, ConversationResultWithTimestamps, GeneratedAud
29
29
  export type { ResolvedSTTModel, SpeechToTextProvider, STTModelInfo, } from "./speech-to-text-provider.js";
30
30
  export type { StreamSpeechResult } from "./stream-speech-result.js";
31
31
  export type { TimestampProvider } from "./timestamp-provider.js";
32
- export type { ConversationWordTimestamp, WordTimestamp, } from "./timestamps.js";
32
+ export type { ConversationWordTimestamp, TimestampsSource, WordTimestamp, } from "./timestamps.js";
33
33
  export type { TurnTimestamp } from "./turns.js";
34
34
  export interface GenerateSpeechOptions<V extends Voice = Voice, M extends string | ResolvedModel<V> = string | ResolvedModel<V>> {
35
35
  abortSignal?: AbortSignal;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACxE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACpE,YAAY,EACV,WAAW,EACX,iBAAiB,EACjB,qBAAqB,EACrB,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,aAAa,EACb,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,YAAY,EACV,aAAa,EACb,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAClF,YAAY,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAClF,YAAY,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AACtF,YAAY,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACxE,YAAY,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AACrF,YAAY,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAChF,YAAY,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAC9E,YAAY,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAChF,YAAY,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC1E,YAAY,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAChF,YAAY,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAChF,YAAY,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC1E,YAAY,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAC9E,YAAY,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAClF,YAAY,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACxE,YAAY,EACV,OAAO,EACP,SAAS,EACT,aAAa,EACb,cAAc,EACd,KAAK,GACN,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,kBAAkB,EAClB,gCAAgC,EAChC,kBAAkB,EAClB,YAAY,EACZ,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,GACb,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,YAAY,EACV,yBAAyB,EACzB,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,WAAW,qBAAqB,CACpC,CAAC,SAAS,KAAK,GAAG,KAAK,EACvB,CAAC,SAAS,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC;IAE/D,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,0FAA0F;IAC1F,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,CAAC,CAAC;IACT,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,CAAC,CAAC;IACT,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@speech-sdk/core",
3
- "version": "0.25.3",
3
+ "version": "0.26.0",
4
4
  "description": "Universal, cross-platform text-to-speech SDK with multi-provider support.",
5
5
  "type": "module",
6
6
  "packageManager": "pnpm@10.11.1",