@absolutejs/voice 0.0.21 → 0.0.22-beta.1

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 (49) hide show
  1. package/README.md +1046 -2
  2. package/dist/agent.d.ts +113 -0
  3. package/dist/angular/index.js +90 -0
  4. package/dist/angular/voice-controller.service.d.ts +6 -0
  5. package/dist/angular/voice-stream.service.d.ts +6 -0
  6. package/dist/client/actions.d.ts +41 -0
  7. package/dist/client/audioPlayer.d.ts +40 -0
  8. package/dist/client/duplex.d.ts +3 -0
  9. package/dist/client/htmxBootstrap.js +84 -0
  10. package/dist/client/index.d.ts +2 -0
  11. package/dist/client/index.js +507 -5
  12. package/dist/correction.d.ts +18 -1
  13. package/dist/fileStore.d.ts +37 -0
  14. package/dist/index.d.ts +32 -1
  15. package/dist/index.js +8379 -1245
  16. package/dist/ops.d.ts +327 -0
  17. package/dist/opsPresets.d.ts +19 -0
  18. package/dist/opsRuntime.d.ts +66 -0
  19. package/dist/opsSinks.d.ts +149 -0
  20. package/dist/outcomeRecipes.d.ts +18 -0
  21. package/dist/postgresStore.d.ts +31 -0
  22. package/dist/queue.d.ts +276 -0
  23. package/dist/react/index.js +86 -0
  24. package/dist/react/useVoiceController.d.ts +6 -0
  25. package/dist/react/useVoiceStream.d.ts +6 -0
  26. package/dist/routing.d.ts +3 -0
  27. package/dist/runtimeOps.d.ts +23 -0
  28. package/dist/s3Store.d.ts +14 -0
  29. package/dist/sqliteStore.d.ts +26 -0
  30. package/dist/svelte/index.js +84 -0
  31. package/dist/telephony/response.d.ts +7 -0
  32. package/dist/telephony/twilio.d.ts +116 -0
  33. package/dist/testing/benchmark.d.ts +59 -4
  34. package/dist/testing/corrected.d.ts +41 -0
  35. package/dist/testing/duplex.d.ts +59 -0
  36. package/dist/testing/fixtures.d.ts +18 -2
  37. package/dist/testing/index.d.ts +5 -0
  38. package/dist/testing/index.js +5094 -284
  39. package/dist/testing/review.d.ts +143 -0
  40. package/dist/testing/sessionBenchmark.d.ts +25 -0
  41. package/dist/testing/stt.d.ts +2 -1
  42. package/dist/testing/telephony.d.ts +70 -0
  43. package/dist/testing/tts.d.ts +73 -0
  44. package/dist/trace.d.ts +236 -0
  45. package/dist/types.d.ts +320 -3
  46. package/dist/vue/index.js +90 -0
  47. package/dist/vue/useVoiceController.d.ts +11 -0
  48. package/dist/vue/useVoiceStream.d.ts +11 -0
  49. package/package.json +115 -1
package/dist/vue/index.js CHANGED
@@ -102,6 +102,14 @@ var normalizeErrorMessage = (value) => {
102
102
  };
103
103
  var serverMessageToAction = (message) => {
104
104
  switch (message.type) {
105
+ case "audio":
106
+ return {
107
+ chunk: Uint8Array.from(atob(message.chunkBase64), (char) => char.charCodeAt(0)),
108
+ format: message.format,
109
+ receivedAt: message.receivedAt,
110
+ turnId: message.turnId,
111
+ type: "audio"
112
+ };
105
113
  case "assistant":
106
114
  return {
107
115
  text: message.text,
@@ -182,6 +190,7 @@ var isVoiceServerMessage = (value) => {
182
190
  return false;
183
191
  }
184
192
  switch (value.type) {
193
+ case "audio":
185
194
  case "assistant":
186
195
  case "complete":
187
196
  case "error":
@@ -354,6 +363,7 @@ var createVoiceConnection = (path, options = {}) => {
354
363
 
355
364
  // src/client/store.ts
356
365
  var createInitialState = () => ({
366
+ assistantAudio: [],
357
367
  assistantTexts: [],
358
368
  error: null,
359
369
  isConnected: false,
@@ -371,6 +381,20 @@ var createVoiceStreamStore = () => {
371
381
  };
372
382
  const dispatch = (action) => {
373
383
  switch (action.type) {
384
+ case "audio":
385
+ state = {
386
+ ...state,
387
+ assistantAudio: [
388
+ ...state.assistantAudio,
389
+ {
390
+ chunk: action.chunk,
391
+ format: action.format,
392
+ receivedAt: action.receivedAt,
393
+ turnId: action.turnId
394
+ }
395
+ ]
396
+ };
397
+ break;
374
398
  case "assistant":
375
399
  state = {
376
400
  ...state,
@@ -510,6 +534,9 @@ var createVoiceStream = (path, options = {}) => {
510
534
  get assistantTexts() {
511
535
  return store.getSnapshot().assistantTexts;
512
536
  },
537
+ get assistantAudio() {
538
+ return store.getSnapshot().assistantAudio;
539
+ },
513
540
  sendAudio(audio) {
514
541
  connection.sendAudio(audio);
515
542
  },
@@ -525,6 +552,7 @@ var createVoiceStream = (path, options = {}) => {
525
552
  // src/vue/useVoiceStream.ts
526
553
  var useVoiceStream = (path, options = {}) => {
527
554
  const stream = createVoiceStream(path, options);
555
+ const assistantAudio = shallowRef([]);
528
556
  const assistantTexts = shallowRef([]);
529
557
  const error = ref(null);
530
558
  const isConnected = ref(false);
@@ -533,6 +561,7 @@ var useVoiceStream = (path, options = {}) => {
533
561
  const status = ref(stream.status);
534
562
  const turns = shallowRef([]);
535
563
  const sync = () => {
564
+ assistantAudio.value = [...stream.assistantAudio];
536
565
  assistantTexts.value = [...stream.assistantTexts];
537
566
  error.value = stream.error;
538
567
  isConnected.value = stream.isConnected;
@@ -549,6 +578,7 @@ var useVoiceStream = (path, options = {}) => {
549
578
  };
550
579
  onUnmounted(destroy);
551
580
  return {
581
+ assistantAudio,
552
582
  assistantTexts,
553
583
  close: () => destroy(),
554
584
  endTurn: () => stream.endTurn(),
@@ -929,6 +959,58 @@ var PRESET_INPUTS = {
929
959
  transcriptStabilityMs: 1650
930
960
  }
931
961
  },
962
+ "pstn-balanced": {
963
+ audioConditioning: {
964
+ enabled: true,
965
+ maxGain: 2.8,
966
+ noiseGateAttenuation: 0.07,
967
+ noiseGateThreshold: 0.005,
968
+ targetLevel: 0.08
969
+ },
970
+ capture: {
971
+ channelCount: 1,
972
+ sampleRateHz: 16000
973
+ },
974
+ connection: {
975
+ maxReconnectAttempts: 14,
976
+ pingInterval: 45000,
977
+ reconnect: true
978
+ },
979
+ sttLifecycle: "continuous",
980
+ turnDetection: {
981
+ qualityProfile: "noisy-room",
982
+ profile: "long-form",
983
+ silenceMs: 660,
984
+ speechThreshold: 0.012,
985
+ transcriptStabilityMs: 300
986
+ }
987
+ },
988
+ "pstn-fast": {
989
+ audioConditioning: {
990
+ enabled: true,
991
+ maxGain: 2.75,
992
+ noiseGateAttenuation: 0.06,
993
+ noiseGateThreshold: 0.005,
994
+ targetLevel: 0.08
995
+ },
996
+ capture: {
997
+ channelCount: 1,
998
+ sampleRateHz: 16000
999
+ },
1000
+ connection: {
1001
+ maxReconnectAttempts: 14,
1002
+ pingInterval: 45000,
1003
+ reconnect: true
1004
+ },
1005
+ sttLifecycle: "continuous",
1006
+ turnDetection: {
1007
+ qualityProfile: "noisy-room",
1008
+ profile: "long-form",
1009
+ silenceMs: 620,
1010
+ speechThreshold: 0.012,
1011
+ transcriptStabilityMs: 280
1012
+ }
1013
+ },
932
1014
  reliability: {
933
1015
  audioConditioning: {
934
1016
  enabled: true,
@@ -972,6 +1054,7 @@ var resolveVoiceRuntimePreset = (name = "default") => {
972
1054
 
973
1055
  // src/client/controller.ts
974
1056
  var createInitialState2 = (stream) => ({
1057
+ assistantAudio: [...stream.assistantAudio],
975
1058
  assistantTexts: [...stream.assistantTexts],
976
1059
  error: stream.error,
977
1060
  isConnected: stream.isConnected,
@@ -1000,6 +1083,7 @@ var createVoiceController = (path, options = {}) => {
1000
1083
  const sync = () => {
1001
1084
  state = {
1002
1085
  ...state,
1086
+ assistantAudio: [...stream.assistantAudio],
1003
1087
  assistantTexts: [...stream.assistantTexts],
1004
1088
  error: stream.error,
1005
1089
  isConnected: stream.isConnected,
@@ -1127,6 +1211,9 @@ var createVoiceController = (path, options = {}) => {
1127
1211
  },
1128
1212
  get assistantTexts() {
1129
1213
  return state.assistantTexts;
1214
+ },
1215
+ get assistantAudio() {
1216
+ return state.assistantAudio;
1130
1217
  }
1131
1218
  };
1132
1219
  };
@@ -1134,6 +1221,7 @@ var createVoiceController = (path, options = {}) => {
1134
1221
  // src/vue/useVoiceController.ts
1135
1222
  var useVoiceController = (path, options = {}) => {
1136
1223
  const controller = createVoiceController(path, options);
1224
+ const assistantAudio = shallowRef2([]);
1137
1225
  const assistantTexts = shallowRef2([]);
1138
1226
  const error = ref2(null);
1139
1227
  const isConnected = ref2(false);
@@ -1144,6 +1232,7 @@ var useVoiceController = (path, options = {}) => {
1144
1232
  const status = ref2(controller.status);
1145
1233
  const turns = shallowRef2([]);
1146
1234
  const sync = () => {
1235
+ assistantAudio.value = [...controller.assistantAudio];
1147
1236
  assistantTexts.value = [...controller.assistantTexts];
1148
1237
  error.value = controller.error;
1149
1238
  isConnected.value = controller.isConnected;
@@ -1162,6 +1251,7 @@ var useVoiceController = (path, options = {}) => {
1162
1251
  };
1163
1252
  onUnmounted2(destroy);
1164
1253
  return {
1254
+ assistantAudio,
1165
1255
  assistantTexts,
1166
1256
  bindHTMX: controller.bindHTMX,
1167
1257
  close: () => destroy(),
@@ -1,5 +1,16 @@
1
1
  import type { VoiceControllerOptions, VoiceTurnRecord } from '../types';
2
2
  export declare const useVoiceController: <TResult = unknown>(path: string, options?: VoiceControllerOptions) => {
3
+ assistantAudio: import("vue").ShallowRef<{
4
+ chunk: Uint8Array;
5
+ format: import("..").AudioFormat;
6
+ receivedAt: number;
7
+ turnId?: string;
8
+ }[], {
9
+ chunk: Uint8Array;
10
+ format: import("..").AudioFormat;
11
+ receivedAt: number;
12
+ turnId?: string;
13
+ }[]>;
3
14
  assistantTexts: import("vue").ShallowRef<string[], string[]>;
4
15
  bindHTMX: (options: import("..").VoiceHTMXBindingOptions) => () => void;
5
16
  close: () => void;
@@ -1,5 +1,16 @@
1
1
  import type { VoiceConnectionOptions, VoiceTurnRecord } from '../types';
2
2
  export declare const useVoiceStream: <TResult = unknown>(path: string, options?: VoiceConnectionOptions) => {
3
+ assistantAudio: import("vue").ShallowRef<{
4
+ chunk: Uint8Array;
5
+ format: import("..").AudioFormat;
6
+ receivedAt: number;
7
+ turnId?: string;
8
+ }[], {
9
+ chunk: Uint8Array;
10
+ format: import("..").AudioFormat;
11
+ receivedAt: number;
12
+ turnId?: string;
13
+ }[]>;
3
14
  assistantTexts: import("vue").ShallowRef<string[], string[]>;
4
15
  close: () => void;
5
16
  endTurn: () => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@absolutejs/voice",
3
- "version": "0.0.21",
3
+ "version": "0.0.22-beta.1",
4
4
  "description": "Voice primitives and Elysia plugin for AbsoluteJS",
5
5
  "repository": {
6
6
  "type": "git",
@@ -17,31 +17,145 @@
17
17
  "author": "Alex Kahn",
18
18
  "scripts": {
19
19
  "bench:accents": "bun run ./scripts/benchmark-stt.ts all accents",
20
+ "bench:jargon": "bun run ./scripts/benchmark-stt.ts all jargon",
21
+ "bench:jargon:run": "bun run ./scripts/run-jargon-benchmarks.ts",
22
+ "bench:multilingual": "bun run ./scripts/benchmark-stt.ts all multilingual",
23
+ "bench:multi-speaker": "bun run ./scripts/benchmark-stt.ts all multi-speaker",
24
+ "bench:multi-speaker:run": "bun run ./scripts/run-multi-speaker-benchmarks.ts",
25
+ "bench:multi-speaker:analyze": "bun run ./scripts/run-multi-speaker-analysis.ts",
26
+ "bench:deepgram:multi-speaker:clean": "bun run ./scripts/benchmark-stt.ts deepgram multi-speaker-clean",
27
+ "bench:deepgram:multi-speaker:noisy": "bun run ./scripts/benchmark-stt.ts deepgram multi-speaker-noisy",
28
+ "bench:deepgram:multi-speaker:noisy:corrected": "bun run ./scripts/benchmark-stt.ts deepgram-corrected multi-speaker-noisy",
29
+ "bench:deepgram:multi-speaker:debug": "bun run ./scripts/run-multi-speaker-debug.ts",
30
+ "bench:code-switch": "bun run ./scripts/benchmark-stt.ts all code-switch",
31
+ "bench:code-switch:series": "bun run ./scripts/benchmark-stt.ts all code-switch --runs 5",
32
+ "bench:code-switch:ca-es": "bun run ./scripts/benchmark-stt.ts all code-switch-ca-es",
33
+ "bench:code-switch:ca-es:series": "bun run ./scripts/benchmark-stt.ts all code-switch-ca-es --runs 5",
34
+ "bench:code-switch:ca-es:corts:series": "bun run ./scripts/benchmark-stt.ts all code-switch-ca-es-corts --runs 5",
35
+ "bench:code-switch:ca-es:parlament:series": "bun run ./scripts/benchmark-stt.ts all code-switch-ca-es-parlament --runs 5",
36
+ "bench:code-switch:hi-en": "bun run ./scripts/benchmark-stt.ts all code-switch-hi-en",
37
+ "bench:code-switch:hi-en:series": "bun run ./scripts/benchmark-stt.ts all code-switch-hi-en --runs 5",
38
+ "bench:telephony": "bun run ./scripts/benchmark-stt.ts all telephony",
39
+ "bench:telephony:bridge": "bun run ./scripts/benchmark-telephony.ts",
40
+ "bench:telephony:run": "bun run ./scripts/run-telephony-benchmarks.ts",
41
+ "bench:tts": "bun run ./scripts/benchmark-tts.ts all",
42
+ "bench:tts:elevenlabs": "bun run ./scripts/benchmark-tts.ts elevenlabs",
43
+ "bench:tts:openai": "bun run ./scripts/benchmark-tts.ts openai",
44
+ "bench:tts:interrupt": "bun run ./scripts/benchmark-tts.ts all interrupt",
45
+ "bench:tts:interrupt:elevenlabs": "bun run ./scripts/benchmark-tts.ts elevenlabs interrupt",
46
+ "bench:tts:interrupt:openai": "bun run ./scripts/benchmark-tts.ts openai interrupt",
47
+ "bench:tts:run": "bun run ./scripts/run-tts-benchmarks.ts",
48
+ "bench:tts:interrupt:run": "bun run ./scripts/run-tts-interruption-benchmarks.ts",
49
+ "bench:duplex": "bun run ./scripts/benchmark-duplex.ts",
50
+ "bench:duplex:live": "bun run ./scripts/benchmark-live-duplex.ts all",
51
+ "bench:duplex:live:elevenlabs": "bun run ./scripts/benchmark-live-duplex.ts elevenlabs",
52
+ "bench:duplex:live:openai": "bun run ./scripts/benchmark-live-duplex.ts openai",
53
+ "bench:duplex:live:run": "bun run ./scripts/run-live-duplex-benchmarks.ts",
54
+ "bench:telephony:live": "bun run ./scripts/benchmark-live-telephony.ts",
55
+ "bench:telephony:live:run": "bun run ./scripts/run-live-telephony-benchmarks.ts",
56
+ "bench:telephony:live:series": "bun run ./scripts/run-live-telephony-series.ts",
57
+ "bench:telephony:live:shootout": "bun run ./scripts/run-live-telephony-shootout.ts",
58
+ "bench:telephony:live:stt:shootout": "bun run ./scripts/run-live-telephony-stt-shootout.ts",
59
+ "bench:telephony:live:tts:shootout": "bun run ./scripts/run-live-telephony-tts-shootout.ts",
60
+ "bench:duplex:browser": "bun run ./scripts/benchmark-browser-duplex.ts all",
61
+ "bench:duplex:browser:elevenlabs": "bun run ./scripts/benchmark-browser-duplex.ts elevenlabs",
62
+ "bench:duplex:browser:openai": "bun run ./scripts/benchmark-browser-duplex.ts openai",
63
+ "bench:duplex:browser:run": "bun run ./scripts/run-browser-duplex-benchmarks.ts",
64
+ "bench:duplex:browser:series": "bun run ./scripts/run-browser-duplex-series.ts",
65
+ "bench:duplex:browser:overlap": "bun run ./scripts/benchmark-browser-duplex-overlap.ts all",
66
+ "bench:duplex:browser:overlap:run": "bun run ./scripts/run-browser-duplex-overlap-benchmarks.ts",
67
+ "bench:duplex:browser:overlap:series": "bun run ./scripts/run-browser-duplex-overlap-series.ts",
20
68
  "bench:production": "bun run ./scripts/benchmark-production.ts",
69
+ "bench:production:deepgram-corrected:audit": "bun run ./scripts/benchmark-production.ts deepgram-corrected-audit",
21
70
  "bench:assemblyai": "bun run ./scripts/benchmark-stt.ts assemblyai",
22
71
  "bench:assemblyai:accents": "bun run ./scripts/benchmark-stt.ts assemblyai accents",
72
+ "bench:assemblyai:multilingual": "bun run ./scripts/benchmark-stt.ts assemblyai multilingual",
73
+ "bench:assemblyai:code-switch": "bun run ./scripts/benchmark-stt.ts assemblyai code-switch",
23
74
  "bench:openai": "bun run ./scripts/benchmark-stt.ts openai",
24
75
  "bench:openai:accents": "bun run ./scripts/benchmark-stt.ts openai accents",
76
+ "bench:openai:multilingual": "bun run ./scripts/benchmark-stt.ts openai multilingual",
77
+ "bench:openai:code-switch": "bun run ./scripts/benchmark-stt.ts openai code-switch",
78
+ "bench:openai:code-switch:series": "bun run ./scripts/benchmark-stt.ts openai code-switch --runs 5",
79
+ "bench:openai:code-switch:ca-es": "bun run ./scripts/benchmark-stt.ts openai code-switch-ca-es",
80
+ "bench:openai:code-switch:ca-es:series": "bun run ./scripts/benchmark-stt.ts openai code-switch-ca-es --runs 5",
81
+ "bench:openai:code-switch:hi-en": "bun run ./scripts/benchmark-stt.ts openai code-switch-hi-en",
82
+ "bench:openai:code-switch:hi-en:series": "bun run ./scripts/benchmark-stt.ts openai code-switch-hi-en --runs 5",
83
+ "bench:openai:code-switch:corrected": "bun run ./scripts/benchmark-stt.ts openai-corrected code-switch",
84
+ "bench:openai:code-switch:corrected:series": "bun run ./scripts/benchmark-stt.ts openai-corrected code-switch --runs 5",
85
+ "bench:openai:code-switch:corrected:ca-es": "bun run ./scripts/benchmark-stt.ts openai-corrected code-switch-ca-es",
86
+ "bench:openai:code-switch:corrected:ca-es:series": "bun run ./scripts/benchmark-stt.ts openai-corrected code-switch-ca-es --runs 5",
87
+ "bench:openai:code-switch:corrected:hi-en": "bun run ./scripts/benchmark-stt.ts openai-corrected code-switch-hi-en",
88
+ "bench:openai:code-switch:corrected:hi-en:series": "bun run ./scripts/benchmark-stt.ts openai-corrected code-switch-hi-en --runs 5",
25
89
  "bench:openai:diag": "bun run ./scripts/benchmark-stt.ts openai --diag",
26
90
  "bench:deepgram": "bun run ./scripts/benchmark-stt.ts deepgram",
27
91
  "bench:deepgram:accents": "bun run ./scripts/benchmark-stt.ts deepgram accents",
92
+ "bench:deepgram:jargon": "bun run ./scripts/benchmark-stt.ts deepgram jargon",
93
+ "bench:deepgram:multilingual": "bun run ./scripts/benchmark-stt.ts deepgram multilingual",
94
+ "bench:deepgram:multi-speaker": "bun run ./scripts/benchmark-stt.ts deepgram multi-speaker",
95
+ "bench:deepgram:code-switch": "bun run ./scripts/benchmark-stt.ts deepgram code-switch",
96
+ "bench:deepgram:code-switch:series": "bun run ./scripts/benchmark-stt.ts deepgram code-switch --runs 5",
97
+ "bench:deepgram:code-switch:ca-es": "bun run ./scripts/benchmark-stt.ts deepgram code-switch-ca-es",
98
+ "bench:deepgram:code-switch:ca-es:series": "bun run ./scripts/benchmark-stt.ts deepgram code-switch-ca-es --runs 5",
99
+ "bench:deepgram:code-switch:ca-es:corts:series": "bun run ./scripts/benchmark-stt.ts deepgram code-switch-ca-es-corts --runs 5",
100
+ "bench:deepgram:code-switch:ca-es:parlament:series": "bun run ./scripts/benchmark-stt.ts deepgram code-switch-ca-es-parlament --runs 5",
101
+ "bench:deepgram:code-switch:ca-es:nova3-multi:series": "DEEPGRAM_CODE_SWITCH_MODEL=nova-3 DEEPGRAM_CODE_SWITCH_LANGUAGE=multi bun run ./scripts/benchmark-stt.ts deepgram code-switch-ca-es --runs 5 --variant nova3-multi",
102
+ "bench:deepgram:code-switch:ca-es:nova3-ca:series": "DEEPGRAM_CODE_SWITCH_MODEL=nova-3 DEEPGRAM_CODE_SWITCH_LANGUAGE=ca bun run ./scripts/benchmark-stt.ts deepgram code-switch-ca-es --runs 5 --variant nova3-ca",
103
+ "bench:deepgram:code-switch:ca-es:nova3-es:series": "DEEPGRAM_CODE_SWITCH_MODEL=nova-3 DEEPGRAM_CODE_SWITCH_LANGUAGE=es bun run ./scripts/benchmark-stt.ts deepgram code-switch-ca-es --runs 5 --variant nova3-es",
104
+ "bench:deepgram:code-switch:ca-es:nova2-ca:series": "DEEPGRAM_CODE_SWITCH_MODEL=nova-2 DEEPGRAM_CODE_SWITCH_LANGUAGE=ca bun run ./scripts/benchmark-stt.ts deepgram code-switch-ca-es --runs 5 --variant nova2-ca",
105
+ "bench:deepgram:code-switch:ca-es:nova2-es:series": "DEEPGRAM_CODE_SWITCH_MODEL=nova-2 DEEPGRAM_CODE_SWITCH_LANGUAGE=es bun run ./scripts/benchmark-stt.ts deepgram code-switch-ca-es --runs 5 --variant nova2-es",
106
+ "bench:deepgram:code-switch:ca-es:best:corrected:series": "bun run ./scripts/run-caes-corrected-benchmark.ts",
107
+ "bench:deepgram:code-switch:hi-en": "bun run ./scripts/benchmark-stt.ts deepgram code-switch-hi-en",
108
+ "bench:deepgram:code-switch:hi-en:series": "bun run ./scripts/benchmark-stt.ts deepgram code-switch-hi-en --runs 5",
109
+ "bench:deepgram:code-switch:corrected": "bun run ./scripts/benchmark-stt.ts deepgram-corrected code-switch",
110
+ "bench:deepgram:code-switch:corrected:series": "bun run ./scripts/benchmark-stt.ts deepgram-corrected code-switch --runs 5",
111
+ "bench:deepgram:code-switch:corrected:ca-es": "bun run ./scripts/benchmark-stt.ts deepgram-corrected code-switch-ca-es",
112
+ "bench:deepgram:code-switch:corrected:ca-es:series": "bun run ./scripts/benchmark-stt.ts deepgram-corrected code-switch-ca-es --runs 5",
113
+ "bench:deepgram:code-switch:corrected:ca-es:corts:series": "bun run ./scripts/benchmark-stt.ts deepgram-corrected code-switch-ca-es-corts --runs 5",
114
+ "bench:deepgram:code-switch:corrected:ca-es:parlament:series": "bun run ./scripts/benchmark-stt.ts deepgram-corrected code-switch-ca-es-parlament --runs 5",
115
+ "bench:deepgram:code-switch:ca-es:parlament:debug": "bun run ./scripts/run-caes-parlament-debug.ts",
116
+ "bench:deepgram:code-switch:ca-es:parlament:rerun": "bun run ./scripts/run-caes-parlament-series.ts",
117
+ "bench:deepgram:code-switch:ca-es:full:rerun": "bun run ./scripts/run-caes-full-series.ts",
118
+ "bench:deepgram:code-switch:corrected:hi-en": "bun run ./scripts/benchmark-stt.ts deepgram-corrected code-switch-hi-en",
119
+ "bench:deepgram:code-switch:corrected:hi-en:series": "bun run ./scripts/benchmark-stt.ts deepgram-corrected code-switch-hi-en --runs 5",
120
+ "corpus:multilingual": "bun run ./scripts/build-multilingual-corpus.ts",
121
+ "bench:deepgram:corrected:audit": "DEEPGRAM_MODEL=flux-general-en bun run ./scripts/benchmark-stt.ts deepgram-corrected-audit all",
122
+ "bench:deepgram:corrected:audit:jargon": "DEEPGRAM_MODEL=flux-general-en bun run ./scripts/benchmark-stt.ts deepgram-corrected-audit jargon",
123
+ "bench:deepgram:corrected:telephony": "DEEPGRAM_MODEL=flux-general-en bun run ./scripts/benchmark-stt.ts deepgram-corrected telephony",
124
+ "bench:deepgram:corrected:audit:telephony": "DEEPGRAM_MODEL=flux-general-en bun run ./scripts/benchmark-stt.ts deepgram-corrected-audit telephony",
125
+ "bench:deepgram:telephony": "bun run ./scripts/benchmark-stt.ts deepgram telephony",
28
126
  "bench:deepgram:nova": "bun run ./scripts/benchmark-stt.ts deepgram",
29
127
  "bench:deepgram:flux": "DEEPGRAM_MODEL=flux-general-en bun run ./scripts/benchmark-stt.ts deepgram",
30
128
  "bench:vs": "bun run ./scripts/benchmark-vs.ts",
31
129
  "bench:vs:all": "bun run ./scripts/benchmark-vs.ts all all",
32
130
  "bench:vs:all:accents": "bun run ./scripts/benchmark-vs.ts all accents",
131
+ "bench:vs:all:code-switch": "bun run ./scripts/benchmark-vs.ts all code-switch",
132
+ "bench:vs:all:jargon": "bun run ./scripts/benchmark-vs.ts all jargon",
133
+ "bench:vs:all:multilingual": "bun run ./scripts/benchmark-vs.ts all multilingual",
134
+ "bench:vs:all:multi-speaker": "bun run ./scripts/benchmark-vs.ts all multi-speaker",
135
+ "bench:vs:all:telephony": "bun run ./scripts/benchmark-vs.ts all telephony",
33
136
  "bench:vs:deepgram": "bun run ./scripts/benchmark-vs.ts deepgram all",
34
137
  "bench:vs:deepgram-nova": "bun run ./scripts/benchmark-vs.ts deepgram-nova all",
35
138
  "bench:vs:deepgram-flux": "bun run ./scripts/benchmark-vs.ts deepgram-flux all --compare benchmarks/your-vapi-metrics.json",
36
139
  "bench:vs:assemblyai": "bun run ./scripts/benchmark-vs.ts assemblyai all",
37
140
  "bench:vs:openai": "bun run ./scripts/benchmark-vs.ts openai all",
38
141
  "bench:deepgram:sessions": "bun run ./scripts/benchmark-session.ts deepgram",
142
+ "bench:stt:best:sessions": "bun run ./scripts/benchmark-session.ts best-stt",
143
+ "bench:stt:cheap:sessions": "bun run ./scripts/benchmark-session.ts cheap-stt",
144
+ "bench:stt:routing:run": "bun run ./scripts/run-stt-routing-benchmarks.ts",
145
+ "bench:deepgram:soak:sessions": "bun run ./scripts/benchmark-session.ts deepgram-flux --profile soak --runs 3",
39
146
  "bench:deepgram:hybrid:sessions": "bun run ./scripts/benchmark-session.ts deepgram-hybrid",
40
147
  "bench:deepgram:corrected:sessions": "bun run ./scripts/benchmark-session.ts deepgram-corrected",
148
+ "bench:deepgram:corrected:soak:sessions": "bun run ./scripts/benchmark-session.ts deepgram-corrected --profile soak --runs 3",
149
+ "bench:deepgram:corrected:sessions:audit": "bun run ./scripts/benchmark-session.ts deepgram-corrected-audit",
41
150
  "bench:deepgram:openai-hybrid:sessions": "bun run ./scripts/benchmark-session.ts deepgram-openai-hybrid",
42
151
  "bench:production:deepgram-flux-noisy-room": "bun run ./scripts/benchmark-production.ts deepgram-flux-noisy-room",
43
152
  "bench:production:deepgram-corrected": "bun run ./scripts/benchmark-production.ts deepgram-corrected",
44
153
  "bench:resilience": "bun run ./scripts/benchmark-resilience.ts",
154
+ "bench:soak:run": "bun run ./scripts/run-session-soak-benchmarks.ts",
155
+ "bench:soak:debug": "bun run ./scripts/run-session-soak-debug.ts",
156
+ "bench:soak:debug:corrected": "bun run ./scripts/run-session-soak-debug.ts corrected",
157
+ "bench:soak:series:debug": "bun run ./scripts/run-session-soak-series-debug.ts raw",
158
+ "bench:soak:series:debug:corrected": "bun run ./scripts/run-session-soak-series-debug.ts corrected",
45
159
  "bench:sessions": "bun run ./scripts/benchmark-session.ts all",
46
160
  "bench:stt": "bun run ./scripts/benchmark-stt.ts all",
47
161
  "bench:assemblyai:sessions": "bun run ./scripts/benchmark-session.ts assemblyai",