echogarden 1.8.2 → 1.8.4

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 (50) hide show
  1. package/dist/alignment/DTWMfccSequenceAlignment.d.ts +1 -1
  2. package/dist/alignment/DTWMfccSequenceAlignment.js +6 -5
  3. package/dist/alignment/DTWMfccSequenceAlignment.js.map +1 -1
  4. package/dist/alignment/DTWSequenceAlignment.d.ts +1 -1
  5. package/dist/alignment/DTWSequenceAlignment.js.map +1 -1
  6. package/dist/alignment/DTWSequenceAlignmentWindowed.d.ts +1 -1
  7. package/dist/alignment/DTWSequenceAlignmentWindowed.js.map +1 -1
  8. package/dist/alignment/SpeechAlignment.d.ts +2 -0
  9. package/dist/alignment/SpeechAlignment.js +1 -1
  10. package/dist/alignment/SpeechAlignment.js.map +1 -1
  11. package/dist/api/SpeechSearch.d.ts +6 -0
  12. package/dist/api/SpeechSearch.js +4 -0
  13. package/dist/api/SpeechSearch.js.map +1 -0
  14. package/dist/dsp/MFCC.d.ts +5 -6
  15. package/dist/dsp/MFCC.js +4 -19
  16. package/dist/dsp/MFCC.js.map +1 -1
  17. package/dist/math/MedianFilter.d.ts +2 -2
  18. package/dist/math/MedianFilter.js +3 -4
  19. package/dist/math/MedianFilter.js.map +1 -1
  20. package/dist/math/VectorMath.d.ts +34 -34
  21. package/dist/math/VectorMath.js +63 -44
  22. package/dist/math/VectorMath.js.map +1 -1
  23. package/dist/nlp/IPA.d.ts +3 -3
  24. package/dist/recognition/WhisperSTT.d.ts +1 -0
  25. package/dist/recognition/WhisperSTT.js +36 -20
  26. package/dist/recognition/WhisperSTT.js.map +1 -1
  27. package/dist/speech-search/DTWSpeechSearch.d.ts +2 -0
  28. package/dist/speech-search/DTWSpeechSearch.js +18 -0
  29. package/dist/speech-search/DTWSpeechSearch.js.map +1 -0
  30. package/dist/utilities/RandomGenerator.d.ts +2 -2
  31. package/dist/utilities/RandomGenerator.js.map +1 -1
  32. package/dist/utilities/Utilities.js +7 -1
  33. package/dist/utilities/Utilities.js.map +1 -1
  34. package/dist/utilities/WebReader.js +2 -2
  35. package/dist/utilities/WebReader.js.map +1 -1
  36. package/docs/Options.md +8 -6
  37. package/package.json +2 -2
  38. package/src/alignment/DTWMfccSequenceAlignment.ts +9 -6
  39. package/src/alignment/DTWSequenceAlignment.ts +2 -2
  40. package/src/alignment/DTWSequenceAlignmentWindowed.ts +3 -3
  41. package/src/alignment/SpeechAlignment.ts +1 -1
  42. package/src/api/SpeechSearch.ts +12 -0
  43. package/src/dsp/MFCC.ts +11 -31
  44. package/src/math/MedianFilter.ts +5 -5
  45. package/src/math/VectorMath.ts +109 -75
  46. package/src/recognition/WhisperSTT.ts +45 -27
  47. package/src/speech-search/DTWSpeechSearch.ts +26 -0
  48. package/src/utilities/RandomGenerator.ts +2 -2
  49. package/src/utilities/Utilities.ts +11 -3
  50. package/src/utilities/WebReader.ts +2 -2
@@ -76,7 +76,7 @@ export function weightedCovarianceMatrixOfCenteredSamples(centeredSamples, weigh
76
76
  export function centerVectors(vectors, weights) {
77
77
  const vectorCount = vectors.length;
78
78
  if (vectorCount == 0) {
79
- return { centeredVectors: [], mean: [] };
79
+ return { centeredVectors: [], mean: new Float32Array(0) };
80
80
  }
81
81
  let mean;
82
82
  if (weights) {
@@ -85,15 +85,16 @@ export function centerVectors(vectors, weights) {
85
85
  else {
86
86
  mean = meanOfVectors(vectors);
87
87
  }
88
- const centeredVectors = new Array(vectorCount);
88
+ const centeredVectors = [];
89
89
  for (let i = 0; i < vectorCount; i++) {
90
- centeredVectors[i] = subtractVectors(vectors[i], mean);
90
+ const centeredVector = subtractVectors(vectors[i], mean);
91
+ centeredVectors.push(centeredVector);
91
92
  }
92
93
  return { centeredVectors, mean };
93
94
  }
94
95
  export function centerVector(vector) {
95
96
  const mean = meanOfVector(vector);
96
- const centeredVector = new Array(vector.length);
97
+ const centeredVector = new Float32Array(vector.length);
97
98
  for (let i = 0; i < vector.length; i++) {
98
99
  centeredVector[i] = vector[i] - mean;
99
100
  }
@@ -101,13 +102,13 @@ export function centerVector(vector) {
101
102
  }
102
103
  export function scaleToSumTo1(vector) {
103
104
  if (vector.length == 0) {
104
- return [];
105
+ return new Float32Array(0);
105
106
  }
106
107
  if (vector.length == 1) {
107
- return [1];
108
+ return Float32Array.from([1]);
108
109
  }
109
110
  const minValue = vector[indexOfMin(vector)];
110
- const scaledVector = vector.slice();
111
+ const scaledVector = Float32Array.from(vector);
111
112
  if (minValue < 0) {
112
113
  const addedOffset = -minValue * 2;
113
114
  for (let i = 0; i < scaledVector.length; i++) {
@@ -143,7 +144,7 @@ export function normalizeVector(vector, kind = 'population') {
143
144
  export function normalizeVectors(vectors, kind = 'population') {
144
145
  const vectorCount = vectors.length;
145
146
  if (vectorCount == 0) {
146
- return { normalizedVectors: [], mean: [], stdDeviation: [] };
147
+ return { normalizedVectors: [], mean: new Float32Array(0), stdDeviation: new Float32Array(0) };
147
148
  }
148
149
  const featureCount = vectors[0].length;
149
150
  const mean = meanOfVectors(vectors);
@@ -178,7 +179,7 @@ export function deNormalizeVectors(normalizedVectors, originalMean, originalStdD
178
179
  export function meanOfVectors(vectors) {
179
180
  const vectorCount = vectors.length;
180
181
  if (vectorCount == 0) {
181
- return [];
182
+ return new Float32Array(0);
182
183
  }
183
184
  const featureCount = vectors[0].length;
184
185
  const result = createVector(featureCount);
@@ -195,7 +196,7 @@ export function meanOfVectors(vectors) {
195
196
  export function weightedMeanOfVectors(vectors, weights) {
196
197
  const vectorCount = vectors.length;
197
198
  if (vectorCount == 0) {
198
- return [];
199
+ return new Float32Array(0);
199
200
  }
200
201
  const featureCount = vectors[0].length;
201
202
  const result = createVector(featureCount);
@@ -214,7 +215,7 @@ export function stdDeviationOfVectors(vectors, kind = 'population', mean) {
214
215
  export function varianceOfVectors(vectors, kind = 'population', mean) {
215
216
  const vectorCount = vectors.length;
216
217
  if (vectorCount == 0) {
217
- return [];
218
+ return new Float32Array(0);
218
219
  }
219
220
  const sampleSizeMetric = kind == 'population' || vectorCount == 1 ? vectorCount : vectorCount - 1;
220
221
  const featureCount = vectors[0].length;
@@ -262,10 +263,20 @@ export function varianceOfVector(vector, kind = 'population', mean) {
262
263
  return result / sampleSizeMetric;
263
264
  }
264
265
  export function logOfVector(vector, minVal = 1e-40) {
265
- return vector.map(value => Math.log(value + minVal));
266
+ const result = new Float32Array(vector.length);
267
+ for (let i = 0; i < vector.length; i++) {
268
+ const value = vector[i];
269
+ result[i] = Math.log(value + minVal);
270
+ }
271
+ return result;
266
272
  }
267
273
  export function expOfVector(vector) {
268
- return vector.map(value => Math.exp(value));
274
+ const result = new Float32Array(vector.length);
275
+ for (let i = 0; i < vector.length; i++) {
276
+ const value = vector[i];
277
+ result[i] = Math.exp(value);
278
+ }
279
+ return result;
269
280
  }
270
281
  export function transpose(matrix) {
271
282
  const vectorCount = matrix.length;
@@ -281,17 +292,17 @@ export function transpose(matrix) {
281
292
  export function movingAverageOfWindow3(vector) {
282
293
  const elementCount = vector.length;
283
294
  if (elementCount == 0) {
284
- return [];
295
+ return new Float32Array(0);
285
296
  }
286
297
  if (elementCount == 1) {
287
- return vector.slice();
298
+ return Float32Array.from(vector);
288
299
  }
289
- const result = [];
290
- result.push((vector[0] + vector[0] + vector[1]) / 3);
300
+ const result = new Float32Array(elementCount);
301
+ result[0] = (vector[0] + vector[0] + vector[1]) / 3;
291
302
  for (let i = 1; i < elementCount - 1; i++) {
292
- result.push((vector[i - 1] + vector[i] + vector[i + 1]) / 3);
303
+ result[i] = (vector[i - 1] + vector[i] + vector[i + 1]) / 3;
293
304
  }
294
- result.push((vector[elementCount - 2] + vector[elementCount - 1] + vector[elementCount - 1]) / 3);
305
+ result[elementCount - 1] = (vector[elementCount - 2] + vector[elementCount - 1] + vector[elementCount - 1]) / 3;
295
306
  return result;
296
307
  }
297
308
  export function averageMeanSquaredError(actual, expected) {
@@ -420,22 +431,32 @@ export function minkowskiDistance(vector1, vector2, power) {
420
431
  return sum ** (1 / power);
421
432
  }
422
433
  export function subtractVectors(vector1, vector2) {
434
+ const elementCount = vector1.length;
423
435
  if (vector1.length != vector2.length) {
424
436
  throw new Error('Vectors are not the same length');
425
437
  }
426
438
  const result = createVector(vector1.length);
427
- for (let i = 0; i < vector1.length; i++) {
439
+ for (let i = 0; i < elementCount; i++) {
428
440
  result[i] = vector1[i] - vector2[i];
429
441
  }
430
442
  return result;
431
443
  }
432
444
  export function sumVector(vector) {
445
+ const elementCount = vector.length;
433
446
  let result = 0.0;
434
- for (let i = 0; i < vector.length; i++) {
447
+ for (let i = 0; i < elementCount; i++) {
435
448
  result += vector[i];
436
449
  }
437
450
  return result;
438
451
  }
452
+ export function sumOfSquaresForVector(vector) {
453
+ const elementCount = vector.length;
454
+ let result = 0.0;
455
+ for (let i = 0; i < elementCount; i++) {
456
+ result += vector[i] ** 2;
457
+ }
458
+ return result;
459
+ }
439
460
  export function dotProduct(vector1, vector2) {
440
461
  if (vector1.length != vector2.length) {
441
462
  throw new Error('Vectors are not the same length');
@@ -476,9 +497,10 @@ export function minValue(vector) {
476
497
  return vector[indexOfMin(vector)];
477
498
  }
478
499
  export function indexOfMin(vector) {
500
+ const elementCount = vector.length;
479
501
  let minValue = Infinity;
480
502
  let result = -1;
481
- for (let i = 0; i < vector.length; i++) {
503
+ for (let i = 0; i < elementCount; i++) {
482
504
  if (vector[i] < minValue) {
483
505
  minValue = vector[i];
484
506
  result = i;
@@ -491,28 +513,31 @@ export function sigmoid(x) {
491
513
  return zeroIfNaN(result);
492
514
  }
493
515
  export function softmax(logits, temperature = 1.0) {
494
- if (logits.length === 0) {
495
- return [];
516
+ const logitCount = logits.length;
517
+ if (logitCount === 0) {
518
+ return new Float32Array(0);
496
519
  }
497
520
  let maxValue = -Infinity;
498
- for (const val of logits) {
499
- if (val > maxValue) {
500
- maxValue = val;
521
+ for (let i = 0; i < logitCount; i++) {
522
+ const value = logits[i];
523
+ if (value > maxValue) {
524
+ maxValue = value;
501
525
  }
502
526
  }
503
527
  const temperatureReciprocal = 1 / (temperature + 1e-40);
504
- const result = [];
528
+ const results = new Float32Array(logitCount);
505
529
  let sumOfExponentiatedValues = 0.0;
506
- for (const value of logits) {
530
+ for (let i = 0; i < logitCount; i++) {
531
+ const value = logits[i];
507
532
  const eToValue = Math.exp((value - maxValue) * temperatureReciprocal);
508
533
  sumOfExponentiatedValues += eToValue;
509
- result.push(eToValue);
534
+ results[i] = eToValue;
510
535
  }
511
536
  const sumOfExponentiatedValuesReciprocal = 1 / (sumOfExponentiatedValues + 1e-40);
512
- for (let i = 0; i < result.length; i++) {
513
- result[i] *= sumOfExponentiatedValuesReciprocal;
537
+ for (let i = 0; i < logitCount; i++) {
538
+ results[i] *= sumOfExponentiatedValuesReciprocal;
514
539
  }
515
- return result;
540
+ return results;
516
541
  }
517
542
  export function hammingDistance(value1, value2, bitLength = 32) {
518
543
  let valueXor = value1 ^ value2;
@@ -531,19 +556,12 @@ export function createVectorArray(vectorCount, featureCount, initialValue = 0.0)
531
556
  return result;
532
557
  }
533
558
  export function createVector(elementCount, initialValue = 0.0) {
534
- const result = new Array(elementCount);
535
- for (let i = 0; i < elementCount; i++) {
536
- result[i] = initialValue;
559
+ const result = new Float32Array(elementCount);
560
+ if (initialValue !== 0) {
561
+ result.fill(initialValue);
537
562
  }
538
563
  return result;
539
564
  }
540
- export function createVectorForIntegerRange(start, end) {
541
- const newVector = [];
542
- for (let i = start; i < end; i++) {
543
- newVector.push(i);
544
- }
545
- return newVector;
546
- }
547
565
  export function zeroIfNaN(val) {
548
566
  if (isNaN(val)) {
549
567
  return 0;
@@ -557,7 +575,8 @@ export function logSumExp(values, minVal = 1e-40) {
557
575
  }
558
576
  export function sumExp(values) {
559
577
  let sumOfExp = 0;
560
- for (const value of values) {
578
+ for (let i = 0; i < values.length; i++) {
579
+ const value = values[i];
561
580
  sumOfExp += Math.exp(value);
562
581
  }
563
582
  return sumOfExp;
@@ -1 +1 @@
1
- {"version":3,"file":"VectorMath.js","sourceRoot":"","sources":["../../src/math/VectorMath.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VectorMath.js","sourceRoot":"","sources":["../../src/math/VectorMath.ts"],"names":[],"mappings":"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"}
package/dist/nlp/IPA.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- export declare function getPhoneSubstitutionCost1(ipa1: string, ipa2: string): 1 | 0;
2
- export declare function getPhoneSubstitutionCost2(ipa1: string, ipa2: string): 1 | 0 | 0.5;
3
- export declare function getPhoneSubstitutionCost3(ipa1: string, ipa2: string): 1 | 0 | 0.5 | 0.75;
1
+ export declare function getPhoneSubstitutionCost1(ipa1: string, ipa2: string): 0 | 1;
2
+ export declare function getPhoneSubstitutionCost2(ipa1: string, ipa2: string): 0 | 1 | 0.5;
3
+ export declare function getPhoneSubstitutionCost3(ipa1: string, ipa2: string): 0 | 1 | 0.5 | 0.75;
4
4
  export declare function isKnownSymbol(ipa: string): boolean;
5
5
  export declare function isConsonant(ipa: string): boolean;
6
6
  export declare function isVowel(ipa: string): boolean;
@@ -85,6 +85,7 @@ export declare class Whisper {
85
85
  get filterbankCount(): 128 | 80;
86
86
  get filterbanks(): Filterbank[];
87
87
  get alignmentHeadIndexes(): number[];
88
+ get defaultTimestampAccuracy(): "medium" | "high";
88
89
  getSuppressedTokens(): number[];
89
90
  getSuppressedTextTokens(): number[];
90
91
  getSuppressedMetadataTokens(): number[];
@@ -1,7 +1,7 @@
1
1
  import { Logger } from '../utilities/Logger.js';
2
2
  import { computeMelSpectogramUsingFilterbanks } from '../dsp/MelSpectogram.js';
3
3
  import { clip, getIntegerRange, splitFloat32Array, yieldToEventLoop } from '../utilities/Utilities.js';
4
- import { indexOfMax, logOfVector, logSumExp, meanOfVector, softmax, stdDeviationOfVector } from '../math/VectorMath.js';
4
+ import { indexOfMax, logOfVector, logSumExp, meanOfVector, softmax, sumOfSquaresForVector, sumVector } from '../math/VectorMath.js';
5
5
  import { alignDTWWindowed } from '../alignment/DTWSequenceAlignmentWindowed.js';
6
6
  import { extendDeep } from '../utilities/ObjectUtilities.js';
7
7
  import { getRawAudioDuration, sliceRawAudio } from '../audio/AudioUtilities.js';
@@ -206,6 +206,9 @@ export class Whisper {
206
206
  const logger = new Logger();
207
207
  options = extendDeep(defaultWhisperOptions, options);
208
208
  options.model = this.modelName;
209
+ if (!options.timestampAccuracy) {
210
+ options.timestampAccuracy = this.defaultTimestampAccuracy;
211
+ }
209
212
  const audioSamples = rawAudio.audioChannels[0];
210
213
  const sampleRate = rawAudio.sampleRate;
211
214
  const prompt = options.prompt;
@@ -263,7 +266,7 @@ export class Whisper {
263
266
  partCrossAttentionQKs = partCrossAttentionQKs.slice(initialTokens.length);
264
267
  // Find alignment path
265
268
  let alignmentHeads;
266
- if (options.timestampAccuracy === 'medium') {
269
+ if (options.timestampAccuracy === 'medium' || options.model == 'large-v3-turbo') {
267
270
  alignmentHeads = this.alignmentHeadIndexes;
268
271
  }
269
272
  else if (options.timestampAccuracy === 'high') {
@@ -302,6 +305,9 @@ export class Whisper {
302
305
  async align(rawAudio, transcript, sourceLanguage, task, whisperAlignmentOptions) {
303
306
  await this.initializeTokenizerIfNeeded();
304
307
  whisperAlignmentOptions = extendDeep(defaultWhisperAlignmentOptions, whisperAlignmentOptions);
308
+ if (!whisperAlignmentOptions.timestampAccuracy) {
309
+ whisperAlignmentOptions.timestampAccuracy = this.defaultTimestampAccuracy;
310
+ }
305
311
  const targetLanguage = task === 'transcribe' ? sourceLanguage : 'en';
306
312
  const shouldSplitToSentences = false;
307
313
  let simplifiedTranscript = '';
@@ -945,11 +951,7 @@ export class Whisper {
945
951
  const headCount = qksTensors[0].dims[2];
946
952
  const frameCount = qksTensors[0].dims[4];
947
953
  if (!headIndexes) {
948
- headIndexes = [];
949
- for (let i = 0; i < layerCount * headCount; i++) {
950
- //for (let i = Math.floor(layerCount * headCount / 2); i < layerCount * headCount; i++) {
951
- headIndexes.push(i);
952
- }
954
+ headIndexes = getIntegerRange(0, layerCount * headCount);
953
955
  }
954
956
  // Load attention head weights from tensors
955
957
  const attentionHeads = []; // structure: [heads, tokens, frames]
@@ -960,7 +962,7 @@ export class Whisper {
960
962
  const startIndexInBuffer = bufferOffset + segmentStartFrame;
961
963
  const endIndexInBuffer = bufferOffset + segmentEndFrame;
962
964
  const framesForHead = qksTensors[tokenIndex].data.slice(startIndexInBuffer, endIndexInBuffer);
963
- attentionHead.push(Array.from(framesForHead));
965
+ attentionHead.push(framesForHead);
964
966
  }
965
967
  attentionHeads.push(attentionHead);
966
968
  }
@@ -980,9 +982,17 @@ export class Whisper {
980
982
  // Normalize all weights in each individual head, if enabled
981
983
  if (normalize) {
982
984
  for (const head of attentionHeads) {
983
- const allWeightsForHead = head.flatMap(tokenFrames => tokenFrames);
984
- const meanOfAllWeightsForHead = meanOfVector(allWeightsForHead);
985
- const stdDeviationOfAllWeightsForHead = stdDeviationOfVector(allWeightsForHead, 'population', meanOfAllWeightsForHead) + 1e-10;
985
+ let sumOfAllWeightsForHead = 0;
986
+ let sumOfAllSquaredWeightsForHead = 0;
987
+ let countOfAllWeightsForHead = 0;
988
+ for (const tokenFrames of head) {
989
+ sumOfAllWeightsForHead += sumVector(tokenFrames);
990
+ sumOfAllSquaredWeightsForHead += sumOfSquaresForVector(tokenFrames);
991
+ countOfAllWeightsForHead += tokenFrames.length;
992
+ }
993
+ const meanOfAllWeightsForHead = sumOfAllWeightsForHead / countOfAllWeightsForHead;
994
+ const varianceOfAllWeightsForHead = sumOfAllSquaredWeightsForHead / countOfAllWeightsForHead;
995
+ const stdDeviationOfAllWeightsForHead = Math.sqrt(varianceOfAllWeightsForHead);
986
996
  const stdDeviationReciprocal = 1.0 / (stdDeviationOfAllWeightsForHead + 1e-10);
987
997
  for (const tokenFrames of head) {
988
998
  for (let frameIndex = 0; frameIndex < tokenFrames.length; frameIndex++) {
@@ -999,21 +1009,19 @@ export class Whisper {
999
1009
  }
1000
1010
  }
1001
1011
  }
1002
- // Compute the mean for all layers and heads
1012
+ // Compute the mean of the selected attention heads for all layers
1003
1013
  const frameMeansForToken = [];
1004
- for (let i = 0; i < tokenCount; i++) {
1005
- const frameMeans = new Array(segmentFrameCount);
1006
- frameMeansForToken.push(frameMeans);
1007
- }
1008
1014
  for (let tokenIndex = 0; tokenIndex < tokenCount; tokenIndex++) {
1015
+ const meansForFrames = new Float32Array(segmentFrameCount);
1009
1016
  for (let frameIndex = 0; frameIndex < segmentFrameCount; frameIndex++) {
1010
1017
  let sum = 0;
1011
1018
  for (const head of attentionHeads) {
1012
1019
  sum += head[tokenIndex][frameIndex];
1013
1020
  }
1014
1021
  const frameMean = sum / attentionHeads.length;
1015
- frameMeansForToken[tokenIndex][frameIndex] = frameMean;
1022
+ meansForFrames[frameIndex] = frameMean;
1016
1023
  }
1024
+ frameMeansForToken.push(meansForFrames);
1017
1025
  }
1018
1026
  // Anchor timestamp tokens timestamps to their original values, if enabled
1019
1027
  if (anchorTimestampTokens) {
@@ -1027,7 +1035,7 @@ export class Whisper {
1027
1035
  }
1028
1036
  }
1029
1037
  }
1030
- // Perform DTW
1038
+ // Perform DTW to align tokens indexes to frame indexes
1031
1039
  const tokenIndexes = getIntegerRange(0, tokenCount);
1032
1040
  const frameIndexes = getIntegerRange(0, segmentFrameCount);
1033
1041
  let { path } = alignDTWWindowed(tokenIndexes, frameIndexes, (tokenIndex, frameIndex) => {
@@ -1231,6 +1239,14 @@ export class Whisper {
1231
1239
  get alignmentHeadIndexes() {
1232
1240
  return alignmentHeadsIndexes[this.modelName];
1233
1241
  }
1242
+ get defaultTimestampAccuracy() {
1243
+ if (this.modelName.startsWith('tiny') || this.modelName.startsWith('base')) {
1244
+ return 'high';
1245
+ }
1246
+ else {
1247
+ return 'medium';
1248
+ }
1249
+ }
1234
1250
  getSuppressedTokens() {
1235
1251
  return [
1236
1252
  ...this.getSuppressedTextTokens(),
@@ -1712,7 +1728,7 @@ export const defaultWhisperOptions = {
1712
1728
  decodeTimestampTokens: true,
1713
1729
  endTokenThreshold: 0.9,
1714
1730
  includeEndTokenInCandidates: true,
1715
- timestampAccuracy: 'medium',
1731
+ timestampAccuracy: undefined,
1716
1732
  encoderProvider: undefined,
1717
1733
  decoderProvider: undefined,
1718
1734
  seed: undefined,
@@ -1721,7 +1737,7 @@ export const defaultWhisperAlignmentOptions = {
1721
1737
  model: undefined,
1722
1738
  endTokenThreshold: 0.9,
1723
1739
  maxTokensPerPart: 250,
1724
- timestampAccuracy: 'medium',
1740
+ timestampAccuracy: undefined,
1725
1741
  encoderProvider: undefined,
1726
1742
  decoderProvider: undefined,
1727
1743
  };