Ratnesh-dev commited on
Commit
e4b57c8
·
1 Parent(s): 3dc531a

Reset repo for phased rebuild and scaffold Phase 1 Parakeet API

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitignore +6 -4
  2. README.md +47 -141
  3. app.py +49 -355
  4. archive/legacy_pre_rebuild_20260407_133100/MANIFEST.md +23 -0
  5. archive/legacy_pre_rebuild_20260407_133100/README.md +173 -0
  6. archive/legacy_pre_rebuild_20260407_133100/app.py +391 -0
  7. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260221_183454/benchmark_stats.json +69 -0
  8. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260221_183454/nvidia_parakeet_v3.json +0 -0
  9. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260221_183454/whisper.cpp_large.json +6 -0
  10. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260221_183454/whisper_faster_large.json +0 -0
  11. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260221_183454/whisper_large_v3.json +6 -0
  12. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260221_183454/whisper_large_v3_turbo.json +6 -0
  13. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260221_185214/benchmark_stats.json +86 -0
  14. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260221_185214/nvidia_parakeet_v3.json +0 -0
  15. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260221_185214/whisper.cpp_large.json +7 -0
  16. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260221_185214/whisper_faster_large.json +0 -0
  17. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260221_185214/whisper_large_v3.json +7 -0
  18. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260221_185214/whisper_large_v3_turbo.json +0 -0
  19. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_102228/benchmark_stats.json +93 -0
  20. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_102228/nvidia_parakeet_v3.json +0 -0
  21. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_102228/whisper.cpp_large.json +7 -0
  22. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_102228/whisper_faster_large.json +0 -0
  23. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_102228/whisper_large_v3.json +0 -0
  24. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_102228/whisper_large_v3_turbo.json +0 -0
  25. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_155458/benchmark_stats.json +42 -0
  26. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_155458/nvidia_parakeet_v3.json +0 -0
  27. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_155458/whisper_large_v3_turbo.json +8 -0
  28. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_160801/benchmark_stats.json +34 -0
  29. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_160801/nvidia_parakeet_v3.json +8 -0
  30. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_160801/whisper_large_v3_turbo.json +8 -0
  31. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_162404/benchmark_stats.json +34 -0
  32. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_162404/nvidia_parakeet_v3.json +8 -0
  33. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_162404/whisper_large_v3_turbo.json +8 -0
  34. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_162651/benchmark_stats.json +42 -0
  35. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_162651/nvidia_parakeet_v3.json +0 -0
  36. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_162651/whisper_large_v3_turbo.json +8 -0
  37. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_163912/benchmark_stats.json +42 -0
  38. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_163912/nvidia_parakeet_v3.json +0 -0
  39. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_163912/whisper_large_v3_turbo.json +8 -0
  40. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_170425/benchmark_stats.json +42 -0
  41. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_170425/nvidia_parakeet_v3.json +0 -0
  42. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_170425/whisper_large_v3_turbo.json +8 -0
  43. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_171344/benchmark_stats.json +49 -0
  44. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_171344/nvidia_parakeet_v3.json +0 -0
  45. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_171344/whisper_large_v3_turbo.json +4815 -0
  46. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_171648/benchmark_stats.json +42 -0
  47. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_171648/nvidia_parakeet_v3.json +0 -0
  48. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_171648/whisper_large_v3_turbo.json +8 -0
  49. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_183018/benchmark_stats.json +24 -0
  50. archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_183018/pyannote_speaker-diarization-community-1.json +11 -0
.gitignore CHANGED
@@ -1,9 +1,11 @@
1
- *.mp3
2
-
3
  __pycache__/
4
  *.pyc
5
- benchmark_outputs/
6
- results.json
7
 
8
  .DS_Store
 
 
 
9
  *.pdf
 
 
 
 
1
  __pycache__/
2
  *.pyc
3
+ .pytest_cache/
4
+ .venv/
5
 
6
  .DS_Store
7
+
8
+ *.mp3
9
+ *.wav
10
  *.pdf
11
+ results.json
README.md CHANGED
@@ -1,5 +1,5 @@
1
  ---
2
- title: Transcribe Diarize
3
  emoji: ⚡
4
  colorFrom: indigo
5
  colorTo: indigo
@@ -9,165 +9,71 @@ python_version: "3.12"
9
  app_file: app.py
10
  pinned: false
11
  license: mit
12
- short_description: End-to-end Parakeet + Pyannote transcript pipeline
13
  ---
14
 
15
- This Space is optimized for API usage on ZeroGPU.
16
 
17
- ## Pipeline
18
- Single production pipeline:
19
- 1. Parakeet transcription (word timestamps) on ZeroGPU
20
- 2. Pyannote Community-1 diarization on ZeroGPU
21
- 3. Merge transcript + diarization (CPU)
22
 
23
- Model setup is global/outside `@spaces.GPU` so setup time is not billed to ZeroGPU windows.
 
 
 
 
24
 
25
- ## API routes
26
- - `/transcribe`
27
- - `/diarize`
28
- - `/run_complete_pipeline`
29
- - `/get_debug_output`
30
- - `/get_run_complete_pipeline_schema`
31
 
32
- ## `/transcribe` inputs
33
- - `audio_file` (file path from Gradio client upload)
34
 
35
- Returns: Parakeet-only transcription JSON, exactly the payload used inside the full pipeline:
 
 
36
 
 
37
  ```json
38
  {
 
 
39
  "model": "NVIDIA Parakeet v3",
40
- "task": "transcribe",
41
- "audio_file": "/tmp/gradio/example.wav",
42
- "postprocess_prompt": null,
43
- "model_options": {},
44
- "zerogpu_timing": {
45
- "gpu_window_seconds": 3.12,
46
- "inference_seconds": 2.87
47
- },
48
- "raw_output": {
49
- "output": {},
50
- "timestamp_hint": "word timestamps available in output.timestamp['word'] when provided by NeMo",
51
- "language_hint": "auto",
52
- "long_audio_settings": {}
53
- },
54
- "timestamp_granularity": "word"
55
- }
56
- ```
57
-
58
- ## `/diarize` inputs
59
- - `audio_file` (file path from Gradio client upload)
60
- - `huggingface_token`
61
-
62
- Returns: Pyannote-only diarization JSON, exactly the payload used inside the full pipeline:
63
-
64
- ```json
65
- {
66
- "model": "pyannote/speaker-diarization-community-1",
67
  "audio_file": "/tmp/gradio/example.wav",
68
  "duration_seconds": 300.0,
69
- "model_options": {
70
- "hf_token": "***redacted***",
71
- "long_audio_chunk_threshold_s": 7200,
72
- "chunk_duration_s": 7200,
73
- "chunk_overlap_s": 0
 
74
  },
75
- "long_audio": {
76
- "chunk_count": 1,
77
- "chunk_plan": [{"index": 0, "start": 0.0, "end": 300.0, "duration": 300.0}],
78
- "chunked": false
79
  },
80
  "zerogpu_timing": {
81
- "gpu_window_seconds": 8.45,
82
- "inference_seconds": 8.11
 
 
 
 
 
 
83
  },
84
  "raw_output": {
85
- "chunk_results": [],
86
- "stitched": {
87
- "speaker_diarization": [],
88
- "exclusive_speaker_diarization": []
89
- }
90
- }
91
- }
92
- ```
93
-
94
- ## `/run_complete_pipeline` inputs
95
- - `audio_file` (file path from Gradio client upload)
96
- - `huggingface_token`
97
-
98
- Returns: merged transcript JSON only, with this structure:
99
-
100
- ```json
101
- {
102
- "summary": {
103
- "diarization_key_used": "exclusive_speaker_diarization",
104
- "parakeet_word_count": 1234,
105
- "pyannote_segment_count": 42,
106
- "turn_count": 39,
107
- "assigned_word_count": 1219,
108
- "unassigned_word_count": 15
109
  },
110
- "turns": [
111
- {
112
- "speaker": "SPEAKER_00",
113
- "start": 0.0,
114
- "end": 12.34,
115
- "text": "Good morning and welcome to the earnings call."
116
- }
117
- ],
118
- "transcript_text": "[0.00 - 12.34] SPEAKER_00: Good morning and welcome to the earnings call."
119
  }
120
  ```
121
 
122
- ## `/get_debug_output` inputs
123
- - `run_id` (optional)
124
-
125
- Returns: raw/debug payload for the latest run (or specific run if provided), including:
126
- - Parakeet raw output + ZeroGPU timing
127
- - Pyannote raw output + ZeroGPU timing
128
- - merged transcript payload
129
- - aggregated timing
130
-
131
- ## `/get_run_complete_pipeline_schema` inputs
132
- - none
133
-
134
- Returns a machine-readable contract for `/run_complete_pipeline`:
135
- - `input_schema`
136
- - `output_schema`
137
- - `output_example`
138
-
139
- ## IPython example
140
- ```python
141
- from gradio_client import Client, handle_file
142
-
143
- SPACE = "username/space-name"
144
- AUDIO_FILE = "Q3-FY26_5min.mp3"
145
-
146
- client = Client(SPACE)
147
-
148
- # Run Parakeet only
149
- parakeet_response = client.predict(
150
- audio_file=handle_file(AUDIO_FILE),
151
- api_name="/transcribe",
152
- )
153
-
154
- # Run Pyannote only
155
- pyannote_response = client.predict(
156
- audio_file=handle_file(AUDIO_FILE),
157
- huggingface_token="hf_xxx",
158
- api_name="/diarize",
159
- )
160
-
161
- # Run end-to-end pipeline (returns merged transcript)
162
- merged_transcript = client.predict(
163
- audio_file=handle_file(AUDIO_FILE),
164
- huggingface_token="hf_xxx",
165
- api_name="/run_complete_pipeline",
166
- )
167
-
168
- # Fetch latest debug payload
169
- debug_payload = client.predict(
170
- run_id=None, # or a specific run_id returned by prior debug call
171
- api_name="/get_debug_output",
172
- )
173
- ```
 
1
  ---
2
+ title: Transcribe Diarize Rebuild
3
  emoji: ⚡
4
  colorFrom: indigo
5
  colorTo: indigo
 
9
  app_file: app.py
10
  pinned: false
11
  license: mit
12
+ short_description: Phase 1 rebuild scaffold - Parakeet-only transcription API
13
  ---
14
 
15
+ # Phase 1 rebuild: Parakeet-only
16
 
17
+ This repository has been reset for a phased rebuild using `plan/rebuild_plan.md` as the source of truth.
 
 
 
 
18
 
19
+ ## Current scope
20
+ Only Phase 1 is active:
21
+ - Parakeet-only transcription API
22
+ - CPU-side preload/probing/postprocessing
23
+ - narrow `@spaces.GPU(duration=120)` window around inference only
24
 
25
+ Not implemented yet:
26
+ - pyannote diarization
27
+ - merge logic
28
+ - combined pipeline
 
 
29
 
30
+ ## Active API
31
+ - `/transcribe_parakeet`
32
 
33
+ ## Request inputs
34
+ - `audio_file`
35
+ - `model_options_json` (optional JSON object)
36
 
37
+ ## Response shape
38
  ```json
39
  {
40
+ "phase": 1,
41
+ "request_id": "uuid",
42
  "model": "NVIDIA Parakeet v3",
43
+ "model_id": "nvidia/parakeet-tdt-0.6b-v3",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44
  "audio_file": "/tmp/gradio/example.wav",
45
  "duration_seconds": 300.0,
46
+ "execution_plan": {
47
+ "mode": "single_pass",
48
+ "chunking": {
49
+ "implemented": false,
50
+ "reason": "Phase 1 scaffold keeps chunk planning on CPU but does not split audio yet."
51
+ }
52
  },
53
+ "preload": {
54
+ "cache_hit": true,
55
+ "load_seconds": 0.0
 
56
  },
57
  "zerogpu_timing": {
58
+ "gpu_window_seconds": 3.12,
59
+ "inference_seconds": 2.87
60
+ },
61
+ "wall_clock_timing": {
62
+ "probe_seconds": 0.03,
63
+ "preload_seconds": 0.0,
64
+ "postprocess_seconds": 0.01,
65
+ "total_seconds": 3.22
66
  },
67
  "raw_output": {
68
+ "result": {},
69
+ "runtime": {}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
70
  },
71
+ "normalized_output": {
72
+ "text": "...",
73
+ "word_timestamps": []
74
+ }
 
 
 
 
 
75
  }
76
  ```
77
 
78
+ ## Legacy code
79
+ The previous implementation was archived under `archive/legacy_pre_rebuild_*/` so the rebuild context stays clean.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app.py CHANGED
@@ -1,391 +1,85 @@
 
 
1
  import time
2
- import uuid
3
- import warnings
4
- from collections import OrderedDict
5
  from typing import Any
6
 
7
  import gradio as gr
8
  import spaces
9
 
10
- from src.constants import PARAKEET_V3
11
- from src.diarization_service import run_pyannote_diarization_request
12
- from src.merge_service import merge_parakeet_pyannote_outputs
13
- from src.models.parakeet_model import preload_parakeet_model, run_parakeet
14
- from src.models.pyannote_community_model import preload_pyannote_pipeline, run_pyannote_community_chunk
15
- from src.transcription_service import run_parakeet_transcription_request
16
-
17
- # Suppress a known deprecation warning emitted by a transitive dependency in spaces.
18
- warnings.filterwarnings(
19
- "ignore",
20
- message=r"`torch\.distributed\.reduce_op` is deprecated, please use `torch\.distributed\.ReduceOp` instead",
21
- category=FutureWarning,
22
- )
23
 
24
- _PRELOAD_ERRORS: dict[str, str] = {}
25
- _DEBUG_RUNS: "OrderedDict[str, dict[str, Any]]" = OrderedDict()
26
- _MAX_DEBUG_RUNS = 10
27
- _LAST_DEBUG_RUN_ID: str | None = None
28
 
29
- RUN_COMPLETE_PIPELINE_OUTPUT_SCHEMA: dict[str, Any] = {
30
- "type": "object",
31
- "description": "Merged transcript output from Parakeet (word timestamps) and Pyannote diarization.",
32
- "properties": {
33
- "summary": {
34
- "type": "object",
35
- "properties": {
36
- "diarization_key_used": {"type": "string", "example": "exclusive_speaker_diarization"},
37
- "parakeet_word_count": {"type": "integer"},
38
- "pyannote_segment_count": {"type": "integer"},
39
- "turn_count": {"type": "integer"},
40
- "assigned_word_count": {"type": "integer"},
41
- "unassigned_word_count": {"type": "integer"},
42
- },
43
- "required": [
44
- "diarization_key_used",
45
- "parakeet_word_count",
46
- "pyannote_segment_count",
47
- "turn_count",
48
- "assigned_word_count",
49
- "unassigned_word_count",
50
- ],
51
- },
52
- "turns": {
53
- "type": "array",
54
- "items": {
55
- "type": "object",
56
- "properties": {
57
- "speaker": {"type": "string", "example": "SPEAKER_02"},
58
- "start": {"type": "number", "example": 40.72},
59
- "end": {"type": "number", "example": 514.0},
60
- "text": {"type": "string"},
61
- },
62
- "required": ["speaker", "start", "end", "text"],
63
- },
64
- },
65
- "transcript_text": {"type": "string"},
66
- },
67
- "required": ["summary", "turns", "transcript_text"],
68
- }
69
-
70
- RUN_COMPLETE_PIPELINE_OUTPUT_EXAMPLE: dict[str, Any] = {
71
- "summary": {
72
- "diarization_key_used": "exclusive_speaker_diarization",
73
- "parakeet_word_count": 1234,
74
- "pyannote_segment_count": 42,
75
- "turn_count": 39,
76
- "assigned_word_count": 1219,
77
- "unassigned_word_count": 15,
78
- },
79
- "turns": [
80
- {
81
- "speaker": "SPEAKER_00",
82
- "start": 0.0,
83
- "end": 12.34,
84
- "text": "Good morning and welcome to the earnings call.",
85
- },
86
- {
87
- "speaker": "SPEAKER_01",
88
- "start": 12.34,
89
- "end": 19.02,
90
- "text": "Thank you. Let us begin with quarterly highlights.",
91
- },
92
- ],
93
- "transcript_text": "[0.00 - 12.34] SPEAKER_00: Good morning ...",
94
- }
95
-
96
- RUN_COMPLETE_PIPELINE_INPUT_SCHEMA: dict[str, Any] = {
97
- "type": "object",
98
- "properties": {
99
- "audio_file": {"type": "file", "description": "Audio file upload"},
100
- "huggingface_token": {"type": "string", "description": "HF access token for pyannote model"},
101
- },
102
- "required": ["audio_file", "huggingface_token"],
103
- }
104
-
105
-
106
- def _preload_model(model_label: str, preload_fn) -> None:
107
- try:
108
- preload_fn()
109
- except Exception as exc:
110
- _PRELOAD_ERRORS[model_label] = str(exc)
111
-
112
-
113
- def _raise_preload_error_if_any(model_label: str) -> None:
114
- message = _PRELOAD_ERRORS.get(model_label)
115
- if message:
116
- raise gr.Error(
117
- f"Model preload failed for {model_label}. "
118
- "Check startup logs and dependencies. "
119
- f"Details: {message}"
120
- )
121
-
122
-
123
- def _store_debug_payload(payload: dict[str, Any]) -> str:
124
- global _LAST_DEBUG_RUN_ID
125
- run_id = str(uuid.uuid4())
126
- _DEBUG_RUNS[run_id] = payload
127
- _LAST_DEBUG_RUN_ID = run_id
128
- while len(_DEBUG_RUNS) > _MAX_DEBUG_RUNS:
129
- _DEBUG_RUNS.popitem(last=False)
130
- return run_id
131
-
132
-
133
- # Global setup (outside @spaces.GPU) so setup cost is not charged to ZeroGPU inference window.
134
- _preload_model(PARAKEET_V3, preload_parakeet_model)
135
- # Pyannote preload is best-effort at startup because token is provided per request.
136
- preload_pyannote_pipeline(strict=False)
137
 
138
 
139
  @spaces.GPU(duration=120)
140
- def _gpu_infer_parakeet(audio_file: str, duration_seconds: float | None):
141
- gpu_start = time.perf_counter()
142
- result = run_parakeet(
 
 
 
 
143
  audio_file=audio_file,
144
- language=None,
145
- model_options={},
146
  duration_seconds=duration_seconds,
147
- )
148
- gpu_end = time.perf_counter()
149
- return {
150
- "raw_output": result["raw_output"],
151
- "zerogpu_timing": {
152
- "gpu_window_seconds": round(gpu_end - gpu_start, 4),
153
- **result.get("timing", {}),
154
- },
155
- }
156
-
157
-
158
- @spaces.GPU(duration=120)
159
- def _gpu_infer_pyannote_chunk(audio_file: str, model_options: dict[str, Any]):
160
- gpu_start = time.perf_counter()
161
- result = run_pyannote_community_chunk(
162
- audio_file=audio_file,
163
  model_options=model_options,
164
  )
165
- gpu_end = time.perf_counter()
166
  return {
167
  "raw_output": result["raw_output"],
168
  "zerogpu_timing": {
169
- "gpu_window_seconds": round(gpu_end - gpu_start, 4),
170
- **result.get("timing", {}),
171
- },
172
- }
173
-
174
-
175
- def transcribe(audio_file: str):
176
- _raise_preload_error_if_any(PARAKEET_V3)
177
- return run_parakeet_transcription_request(
178
- audio_file=audio_file,
179
- gpu_runner=_gpu_infer_parakeet,
180
- )
181
-
182
-
183
- def diarize(audio_file: str, huggingface_token: str):
184
- return run_pyannote_diarization_request(
185
- audio_file=audio_file,
186
- huggingface_token=huggingface_token,
187
- preload_runner=preload_pyannote_pipeline,
188
- gpu_chunk_runner=_gpu_infer_pyannote_chunk,
189
- )
190
-
191
-
192
- def run_complete_pipeline(
193
- audio_file: str,
194
- huggingface_token: str,
195
- ):
196
- _raise_preload_error_if_any(PARAKEET_V3)
197
-
198
- started_at = time.perf_counter()
199
-
200
- # 1) Parakeet transcription on ZeroGPU.
201
- parakeet_response = run_parakeet_transcription_request(
202
- audio_file=audio_file,
203
- gpu_runner=_gpu_infer_parakeet,
204
- )
205
-
206
- # 2) Pyannote diarization on ZeroGPU (chunked only when needed).
207
- pyannote_response = run_pyannote_diarization_request(
208
- audio_file=audio_file,
209
- huggingface_token=huggingface_token,
210
- preload_runner=preload_pyannote_pipeline,
211
- gpu_chunk_runner=_gpu_infer_pyannote_chunk,
212
- )
213
-
214
- # 3) CPU-side postprocessing outside ZeroGPU.
215
- merged_transcript = merge_parakeet_pyannote_outputs(
216
- parakeet_response=parakeet_response,
217
- pyannote_response=pyannote_response,
218
- diarization_key="exclusive_speaker_diarization",
219
- )
220
-
221
- total_gpu_window_seconds = float(parakeet_response["zerogpu_timing"].get("gpu_window_seconds", 0.0)) + float(
222
- pyannote_response.get("zerogpu_timing", {}).get("gpu_window_seconds", 0.0)
223
- )
224
- total_inference_seconds = float(parakeet_response["zerogpu_timing"].get("inference_seconds", 0.0)) + float(
225
- pyannote_response.get("zerogpu_timing", {}).get("inference_seconds", 0.0)
226
- )
227
-
228
- finished_at = time.perf_counter()
229
- debug_payload = {
230
- "pipeline_timing": {
231
- "total_wall_clock_seconds": round(finished_at - started_at, 4),
232
- "zerogpu_gpu_window_seconds_total": round(total_gpu_window_seconds, 4),
233
- "zerogpu_inference_seconds_total": round(total_inference_seconds, 4),
234
- },
235
- "inputs": {
236
- "audio_file": str(audio_file),
237
- "huggingface_token_provided": bool(huggingface_token),
238
  },
239
- "parakeet_response": parakeet_response,
240
- "pyannote_response": pyannote_response,
241
- "merged_transcript": merged_transcript,
242
  }
243
- _store_debug_payload(debug_payload)
244
 
245
- # Return merged transcript JSON (OpenAI cleanup is intentionally local/off-space).
246
- return merged_transcript
247
 
248
-
249
- def get_debug_output(run_id: str | None):
250
- if run_id and run_id.strip():
251
- payload = _DEBUG_RUNS.get(run_id.strip())
252
- if payload is None:
253
- raise gr.Error(f"Unknown run_id: {run_id}")
254
- return {"run_id": run_id.strip(), "debug": payload}
255
-
256
- if _LAST_DEBUG_RUN_ID is None:
257
- raise gr.Error("No debug payload available yet. Run /run_complete_pipeline first.")
258
- return {"run_id": _LAST_DEBUG_RUN_ID, "debug": _DEBUG_RUNS[_LAST_DEBUG_RUN_ID]}
259
-
260
-
261
- def get_run_complete_pipeline_schema() -> dict[str, Any]:
262
- return {
263
- "api_name": "/run_complete_pipeline",
264
- "input_schema": RUN_COMPLETE_PIPELINE_INPUT_SCHEMA,
265
- "output_schema": RUN_COMPLETE_PIPELINE_OUTPUT_SCHEMA,
266
- "output_example": RUN_COMPLETE_PIPELINE_OUTPUT_EXAMPLE,
267
- "notes": [
268
- "Use /get_debug_output to fetch raw model payloads and timing.",
269
- "The production route returns only merged transcript JSON.",
270
- ],
271
- }
272
 
273
 
274
- with gr.Blocks(title="Parakeet + Pyannote Pipeline") as demo:
275
  gr.Markdown(
276
- "# End-to-end transcript pipeline\n"
277
- "Runs Parakeet transcription, Pyannote diarization, then merges into a combined transcript JSON.\n\n"
278
- "Need stage isolation? Call `/transcribe` or `/diarize`."
279
- )
280
-
281
- audio_file = gr.Audio(
282
- sources=["upload"],
283
- type="filepath",
284
- label="Audio file",
285
- )
286
- transcribe_btn = gr.Button("Transcribe only")
287
- transcribe_output = gr.JSON(label="Parakeet transcript JSON")
288
- transcribe_btn.click(
289
- fn=transcribe,
290
- inputs=[audio_file],
291
- outputs=transcribe_output,
292
- api_name="transcribe",
293
- api_description=(
294
- "Run Parakeet only and return the same transcription payload used inside /run_complete_pipeline.\n"
295
- "Response shape:\n"
296
- "{\n"
297
- ' "model": "NVIDIA Parakeet v3",\n'
298
- ' "task": "transcribe",\n'
299
- ' "audio_file": str,\n'
300
- ' "postprocess_prompt": null,\n'
301
- ' "model_options": {},\n'
302
- ' "zerogpu_timing": {"gpu_window_seconds": float, "inference_seconds": float},\n'
303
- ' "raw_output": dict,\n'
304
- ' "timestamp_granularity": "word"\n'
305
- "}"
306
- ),
307
  )
308
 
309
- huggingface_token = gr.Textbox(
310
- label="HuggingFace token",
311
- type="password",
312
- )
313
- diarize_btn = gr.Button("Diarize only")
314
- diarize_output = gr.JSON(label="Pyannote diarization JSON")
315
- diarize_btn.click(
316
- fn=diarize,
317
- inputs=[audio_file, huggingface_token],
318
- outputs=diarize_output,
319
- api_name="diarize",
320
- api_description=(
321
- "Run Pyannote only and return the same diarization payload used inside /run_complete_pipeline.\n"
322
- "Requires huggingface_token for pyannote/speaker-diarization-community-1.\n"
323
- "Response shape:\n"
324
- "{\n"
325
- ' "model": "pyannote/speaker-diarization-community-1",\n'
326
- ' "audio_file": str,\n'
327
- ' "duration_seconds": float | null,\n'
328
- ' "model_options": dict,\n'
329
- ' "long_audio": {"chunk_count": int, "chunk_plan": list, "chunked": bool},\n'
330
- ' "zerogpu_timing": {"gpu_window_seconds": float, "inference_seconds": float},\n'
331
- ' "raw_output": {"chunk_results": list, "stitched": dict}\n'
332
- "}"
333
- ),
334
  )
 
 
335
 
336
- run_btn = gr.Button("Run full pipeline")
337
- output = gr.JSON(label="Combined transcript JSON")
338
-
339
- run_btn.click(
340
- fn=run_complete_pipeline,
341
- inputs=[audio_file, huggingface_token],
342
  outputs=output,
343
- api_name="run_complete_pipeline",
344
- api_description=(
345
- "Run Parakeet + Pyannote and return merged transcript JSON.\n"
346
- "Response shape:\n"
347
- "{\n"
348
- ' "summary": {\n'
349
- ' "diarization_key_used": str,\n'
350
- ' "parakeet_word_count": int,\n'
351
- ' "pyannote_segment_count": int,\n'
352
- ' "turn_count": int,\n'
353
- ' "assigned_word_count": int,\n'
354
- ' "unassigned_word_count": int\n'
355
- " },\n"
356
- ' "turns": [{"speaker": str, "start": float, "end": float, "text": str}],\n'
357
- ' "transcript_text": str\n'
358
- "}\n"
359
- "For full machine-readable schema + example, call /get_run_complete_pipeline_schema."
360
- ),
361
- )
362
-
363
- with gr.Row():
364
- debug_run_id = gr.Textbox(label="Debug run_id (optional)")
365
- debug_btn = gr.Button("Get debug output")
366
- debug_output = gr.JSON(label="Debug output (raw + benchmark)")
367
-
368
- debug_btn.click(
369
- fn=get_debug_output,
370
- inputs=[debug_run_id],
371
- outputs=debug_output,
372
- api_name="get_debug_output",
373
  api_description=(
374
- "Return latest (or selected) debug payload including raw Parakeet/Pyannote outputs "
375
- "and aggregated pipeline timing."
 
376
  ),
377
  )
378
 
379
- with gr.Row(visible=False):
380
- schema_btn = gr.Button("get_run_complete_pipeline_schema")
381
- schema_output = gr.JSON(label="run_complete_pipeline schema", visible=False)
382
- schema_btn.click(
383
- fn=get_run_complete_pipeline_schema,
384
- inputs=None,
385
- outputs=schema_output,
386
- api_name="get_run_complete_pipeline_schema",
387
- api_description="Return input/output schema contract for /run_complete_pipeline.",
388
- )
389
-
390
 
391
  demo.queue(default_concurrency_limit=1).launch(ssr_mode=False, theme=gr.themes.Ocean())
 
1
+ from __future__ import annotations
2
+
3
  import time
 
 
 
4
  from typing import Any
5
 
6
  import gradio as gr
7
  import spaces
8
 
9
+ from src.parakeet.config import PARAKEET_MODEL_LABEL
10
+ from src.parakeet.model import preload_parakeet_model, run_parakeet_inference
11
+ from src.parakeet.service import run_transcribe_parakeet_request
12
+ from src.runtime.errors import format_exception_for_client
13
+ from src.runtime.logging import configure_logging, get_logger, log_event
 
 
 
 
 
 
 
 
14
 
15
+ configure_logging()
16
+ logger = get_logger(__name__)
 
 
17
 
18
+ _STARTUP_PRELOAD = preload_parakeet_model(strict=False)
19
+ log_event(logger, "startup.parakeet_preload", status=_STARTUP_PRELOAD)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
 
21
 
22
  @spaces.GPU(duration=120)
23
+ def _gpu_transcribe_parakeet(
24
+ audio_file: str,
25
+ duration_seconds: float | None,
26
+ model_options: dict[str, Any],
27
+ ) -> dict[str, Any]:
28
+ gpu_started_at = time.perf_counter()
29
+ result = run_parakeet_inference(
30
  audio_file=audio_file,
 
 
31
  duration_seconds=duration_seconds,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
  model_options=model_options,
33
  )
 
34
  return {
35
  "raw_output": result["raw_output"],
36
  "zerogpu_timing": {
37
+ "gpu_window_seconds": round(time.perf_counter() - gpu_started_at, 4),
38
+ **result["timing"],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
  },
 
 
 
40
  }
 
41
 
 
 
42
 
43
+ def transcribe_parakeet(audio_file: str, model_options_json: str | None) -> dict[str, Any]:
44
+ try:
45
+ return run_transcribe_parakeet_request(
46
+ audio_file=audio_file,
47
+ model_options_json=model_options_json,
48
+ gpu_runner=_gpu_transcribe_parakeet,
49
+ )
50
+ except Exception as exc:
51
+ logger.exception("Parakeet request failed")
52
+ raise gr.Error(format_exception_for_client(exc)) from exc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
 
54
 
55
+ with gr.Blocks(title="Phase 1 - Parakeet only") as demo:
56
  gr.Markdown(
57
+ "# Phase 1 rebuild: Parakeet-only transcription\n\n"
58
+ "The old implementation has been archived. This Space now exposes only the Phase 1 "
59
+ "Parakeet transcription API while ZeroGPU usage is benchmarked and stabilized."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
  )
61
 
62
+ audio_file = gr.Audio(sources=["upload"], type="filepath", label="Audio file")
63
+ model_options_json = gr.Textbox(
64
+ label="model_options_json",
65
+ lines=8,
66
+ value="{}",
67
+ placeholder='{"compute_dtype": "bfloat16"}',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
  )
69
+ run_button = gr.Button("Run /transcribe_parakeet")
70
+ output = gr.JSON(label="Parakeet transcription JSON")
71
 
72
+ run_button.click(
73
+ fn=transcribe_parakeet,
74
+ inputs=[audio_file, model_options_json],
 
 
 
75
  outputs=output,
76
+ api_name="transcribe_parakeet",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
77
  api_description=(
78
+ f"Run {PARAKEET_MODEL_LABEL} only. "
79
+ "This Phase 1 route performs CPU-side duration probe/preload/postprocessing and keeps the "
80
+ "decorated ZeroGPU window narrowly scoped to model inference."
81
  ),
82
  )
83
 
 
 
 
 
 
 
 
 
 
 
 
84
 
85
  demo.queue(default_concurrency_limit=1).launch(ssr_mode=False, theme=gr.themes.Ocean())
archive/legacy_pre_rebuild_20260407_133100/MANIFEST.md ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Legacy archive: pre-rebuild implementation
2
+
3
+ This directory contains the implementation that existed before the phased rebuild began.
4
+
5
+ Archived to prevent old code from polluting the Phase 1 rebuild context.
6
+
7
+ ## What was moved here
8
+ - Previous `app.py`
9
+ - Previous `README.md`
10
+ - Previous `requirements.txt` and `packages.txt`
11
+ - Entire previous `src/` tree
12
+ - Entire previous `tests/` tree
13
+ - Benchmark/output artifacts and sample audio assets
14
+ - Local helper scripts tied to the old combined pipeline
15
+
16
+ ## What was intentionally kept at repo root
17
+ - `.git/`
18
+ - `.gitattributes`
19
+ - `.gitignore`
20
+ - `plan/`
21
+
22
+ ## Rebuild rule
23
+ The active implementation at repo root should now reflect only the new phased rebuild.
archive/legacy_pre_rebuild_20260407_133100/README.md ADDED
@@ -0,0 +1,173 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: Transcribe Diarize
3
+ emoji: ⚡
4
+ colorFrom: indigo
5
+ colorTo: indigo
6
+ sdk: gradio
7
+ sdk_version: 6.6.0
8
+ python_version: "3.12"
9
+ app_file: app.py
10
+ pinned: false
11
+ license: mit
12
+ short_description: End-to-end Parakeet + Pyannote transcript pipeline
13
+ ---
14
+
15
+ This Space is optimized for API usage on ZeroGPU.
16
+
17
+ ## Pipeline
18
+ Single production pipeline:
19
+ 1. Parakeet transcription (word timestamps) on ZeroGPU
20
+ 2. Pyannote Community-1 diarization on ZeroGPU
21
+ 3. Merge transcript + diarization (CPU)
22
+
23
+ Model setup is global/outside `@spaces.GPU` so setup time is not billed to ZeroGPU windows.
24
+
25
+ ## API routes
26
+ - `/transcribe`
27
+ - `/diarize`
28
+ - `/run_complete_pipeline`
29
+ - `/get_debug_output`
30
+ - `/get_run_complete_pipeline_schema`
31
+
32
+ ## `/transcribe` inputs
33
+ - `audio_file` (file path from Gradio client upload)
34
+
35
+ Returns: Parakeet-only transcription JSON, exactly the payload used inside the full pipeline:
36
+
37
+ ```json
38
+ {
39
+ "model": "NVIDIA Parakeet v3",
40
+ "task": "transcribe",
41
+ "audio_file": "/tmp/gradio/example.wav",
42
+ "postprocess_prompt": null,
43
+ "model_options": {},
44
+ "zerogpu_timing": {
45
+ "gpu_window_seconds": 3.12,
46
+ "inference_seconds": 2.87
47
+ },
48
+ "raw_output": {
49
+ "output": {},
50
+ "timestamp_hint": "word timestamps available in output.timestamp['word'] when provided by NeMo",
51
+ "language_hint": "auto",
52
+ "long_audio_settings": {}
53
+ },
54
+ "timestamp_granularity": "word"
55
+ }
56
+ ```
57
+
58
+ ## `/diarize` inputs
59
+ - `audio_file` (file path from Gradio client upload)
60
+ - `huggingface_token`
61
+
62
+ Returns: Pyannote-only diarization JSON, exactly the payload used inside the full pipeline:
63
+
64
+ ```json
65
+ {
66
+ "model": "pyannote/speaker-diarization-community-1",
67
+ "audio_file": "/tmp/gradio/example.wav",
68
+ "duration_seconds": 300.0,
69
+ "model_options": {
70
+ "hf_token": "***redacted***",
71
+ "long_audio_chunk_threshold_s": 7200,
72
+ "chunk_duration_s": 7200,
73
+ "chunk_overlap_s": 0
74
+ },
75
+ "long_audio": {
76
+ "chunk_count": 1,
77
+ "chunk_plan": [{"index": 0, "start": 0.0, "end": 300.0, "duration": 300.0}],
78
+ "chunked": false
79
+ },
80
+ "zerogpu_timing": {
81
+ "gpu_window_seconds": 8.45,
82
+ "inference_seconds": 8.11
83
+ },
84
+ "raw_output": {
85
+ "chunk_results": [],
86
+ "stitched": {
87
+ "speaker_diarization": [],
88
+ "exclusive_speaker_diarization": []
89
+ }
90
+ }
91
+ }
92
+ ```
93
+
94
+ ## `/run_complete_pipeline` inputs
95
+ - `audio_file` (file path from Gradio client upload)
96
+ - `huggingface_token`
97
+
98
+ Returns: merged transcript JSON only, with this structure:
99
+
100
+ ```json
101
+ {
102
+ "summary": {
103
+ "diarization_key_used": "exclusive_speaker_diarization",
104
+ "parakeet_word_count": 1234,
105
+ "pyannote_segment_count": 42,
106
+ "turn_count": 39,
107
+ "assigned_word_count": 1219,
108
+ "unassigned_word_count": 15
109
+ },
110
+ "turns": [
111
+ {
112
+ "speaker": "SPEAKER_00",
113
+ "start": 0.0,
114
+ "end": 12.34,
115
+ "text": "Good morning and welcome to the earnings call."
116
+ }
117
+ ],
118
+ "transcript_text": "[0.00 - 12.34] SPEAKER_00: Good morning and welcome to the earnings call."
119
+ }
120
+ ```
121
+
122
+ ## `/get_debug_output` inputs
123
+ - `run_id` (optional)
124
+
125
+ Returns: raw/debug payload for the latest run (or specific run if provided), including:
126
+ - Parakeet raw output + ZeroGPU timing
127
+ - Pyannote raw output + ZeroGPU timing
128
+ - merged transcript payload
129
+ - aggregated timing
130
+
131
+ ## `/get_run_complete_pipeline_schema` inputs
132
+ - none
133
+
134
+ Returns a machine-readable contract for `/run_complete_pipeline`:
135
+ - `input_schema`
136
+ - `output_schema`
137
+ - `output_example`
138
+
139
+ ## IPython example
140
+ ```python
141
+ from gradio_client import Client, handle_file
142
+
143
+ SPACE = "username/space-name"
144
+ AUDIO_FILE = "Q3-FY26_5min.mp3"
145
+
146
+ client = Client(SPACE)
147
+
148
+ # Run Parakeet only
149
+ parakeet_response = client.predict(
150
+ audio_file=handle_file(AUDIO_FILE),
151
+ api_name="/transcribe",
152
+ )
153
+
154
+ # Run Pyannote only
155
+ pyannote_response = client.predict(
156
+ audio_file=handle_file(AUDIO_FILE),
157
+ huggingface_token="hf_xxx",
158
+ api_name="/diarize",
159
+ )
160
+
161
+ # Run end-to-end pipeline (returns merged transcript)
162
+ merged_transcript = client.predict(
163
+ audio_file=handle_file(AUDIO_FILE),
164
+ huggingface_token="hf_xxx",
165
+ api_name="/run_complete_pipeline",
166
+ )
167
+
168
+ # Fetch latest debug payload
169
+ debug_payload = client.predict(
170
+ run_id=None, # or a specific run_id returned by prior debug call
171
+ api_name="/get_debug_output",
172
+ )
173
+ ```
archive/legacy_pre_rebuild_20260407_133100/app.py ADDED
@@ -0,0 +1,391 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import time
2
+ import uuid
3
+ import warnings
4
+ from collections import OrderedDict
5
+ from typing import Any
6
+
7
+ import gradio as gr
8
+ import spaces
9
+
10
+ from src.constants import PARAKEET_V3
11
+ from src.diarization_service import run_pyannote_diarization_request
12
+ from src.merge_service import merge_parakeet_pyannote_outputs
13
+ from src.models.parakeet_model import preload_parakeet_model, run_parakeet
14
+ from src.models.pyannote_community_model import preload_pyannote_pipeline, run_pyannote_community_chunk
15
+ from src.transcription_service import run_parakeet_transcription_request
16
+
17
+ # Suppress a known deprecation warning emitted by a transitive dependency in spaces.
18
+ warnings.filterwarnings(
19
+ "ignore",
20
+ message=r"`torch\.distributed\.reduce_op` is deprecated, please use `torch\.distributed\.ReduceOp` instead",
21
+ category=FutureWarning,
22
+ )
23
+
24
+ _PRELOAD_ERRORS: dict[str, str] = {}
25
+ _DEBUG_RUNS: "OrderedDict[str, dict[str, Any]]" = OrderedDict()
26
+ _MAX_DEBUG_RUNS = 10
27
+ _LAST_DEBUG_RUN_ID: str | None = None
28
+
29
+ RUN_COMPLETE_PIPELINE_OUTPUT_SCHEMA: dict[str, Any] = {
30
+ "type": "object",
31
+ "description": "Merged transcript output from Parakeet (word timestamps) and Pyannote diarization.",
32
+ "properties": {
33
+ "summary": {
34
+ "type": "object",
35
+ "properties": {
36
+ "diarization_key_used": {"type": "string", "example": "exclusive_speaker_diarization"},
37
+ "parakeet_word_count": {"type": "integer"},
38
+ "pyannote_segment_count": {"type": "integer"},
39
+ "turn_count": {"type": "integer"},
40
+ "assigned_word_count": {"type": "integer"},
41
+ "unassigned_word_count": {"type": "integer"},
42
+ },
43
+ "required": [
44
+ "diarization_key_used",
45
+ "parakeet_word_count",
46
+ "pyannote_segment_count",
47
+ "turn_count",
48
+ "assigned_word_count",
49
+ "unassigned_word_count",
50
+ ],
51
+ },
52
+ "turns": {
53
+ "type": "array",
54
+ "items": {
55
+ "type": "object",
56
+ "properties": {
57
+ "speaker": {"type": "string", "example": "SPEAKER_02"},
58
+ "start": {"type": "number", "example": 40.72},
59
+ "end": {"type": "number", "example": 514.0},
60
+ "text": {"type": "string"},
61
+ },
62
+ "required": ["speaker", "start", "end", "text"],
63
+ },
64
+ },
65
+ "transcript_text": {"type": "string"},
66
+ },
67
+ "required": ["summary", "turns", "transcript_text"],
68
+ }
69
+
70
+ RUN_COMPLETE_PIPELINE_OUTPUT_EXAMPLE: dict[str, Any] = {
71
+ "summary": {
72
+ "diarization_key_used": "exclusive_speaker_diarization",
73
+ "parakeet_word_count": 1234,
74
+ "pyannote_segment_count": 42,
75
+ "turn_count": 39,
76
+ "assigned_word_count": 1219,
77
+ "unassigned_word_count": 15,
78
+ },
79
+ "turns": [
80
+ {
81
+ "speaker": "SPEAKER_00",
82
+ "start": 0.0,
83
+ "end": 12.34,
84
+ "text": "Good morning and welcome to the earnings call.",
85
+ },
86
+ {
87
+ "speaker": "SPEAKER_01",
88
+ "start": 12.34,
89
+ "end": 19.02,
90
+ "text": "Thank you. Let us begin with quarterly highlights.",
91
+ },
92
+ ],
93
+ "transcript_text": "[0.00 - 12.34] SPEAKER_00: Good morning ...",
94
+ }
95
+
96
+ RUN_COMPLETE_PIPELINE_INPUT_SCHEMA: dict[str, Any] = {
97
+ "type": "object",
98
+ "properties": {
99
+ "audio_file": {"type": "file", "description": "Audio file upload"},
100
+ "huggingface_token": {"type": "string", "description": "HF access token for pyannote model"},
101
+ },
102
+ "required": ["audio_file", "huggingface_token"],
103
+ }
104
+
105
+
106
+ def _preload_model(model_label: str, preload_fn) -> None:
107
+ try:
108
+ preload_fn()
109
+ except Exception as exc:
110
+ _PRELOAD_ERRORS[model_label] = str(exc)
111
+
112
+
113
+ def _raise_preload_error_if_any(model_label: str) -> None:
114
+ message = _PRELOAD_ERRORS.get(model_label)
115
+ if message:
116
+ raise gr.Error(
117
+ f"Model preload failed for {model_label}. "
118
+ "Check startup logs and dependencies. "
119
+ f"Details: {message}"
120
+ )
121
+
122
+
123
+ def _store_debug_payload(payload: dict[str, Any]) -> str:
124
+ global _LAST_DEBUG_RUN_ID
125
+ run_id = str(uuid.uuid4())
126
+ _DEBUG_RUNS[run_id] = payload
127
+ _LAST_DEBUG_RUN_ID = run_id
128
+ while len(_DEBUG_RUNS) > _MAX_DEBUG_RUNS:
129
+ _DEBUG_RUNS.popitem(last=False)
130
+ return run_id
131
+
132
+
133
+ # Global setup (outside @spaces.GPU) so setup cost is not charged to ZeroGPU inference window.
134
+ _preload_model(PARAKEET_V3, preload_parakeet_model)
135
+ # Pyannote preload is best-effort at startup because token is provided per request.
136
+ preload_pyannote_pipeline(strict=False)
137
+
138
+
139
+ @spaces.GPU(duration=120)
140
+ def _gpu_infer_parakeet(audio_file: str, duration_seconds: float | None):
141
+ gpu_start = time.perf_counter()
142
+ result = run_parakeet(
143
+ audio_file=audio_file,
144
+ language=None,
145
+ model_options={},
146
+ duration_seconds=duration_seconds,
147
+ )
148
+ gpu_end = time.perf_counter()
149
+ return {
150
+ "raw_output": result["raw_output"],
151
+ "zerogpu_timing": {
152
+ "gpu_window_seconds": round(gpu_end - gpu_start, 4),
153
+ **result.get("timing", {}),
154
+ },
155
+ }
156
+
157
+
158
+ @spaces.GPU(duration=120)
159
+ def _gpu_infer_pyannote_chunk(audio_file: str, model_options: dict[str, Any]):
160
+ gpu_start = time.perf_counter()
161
+ result = run_pyannote_community_chunk(
162
+ audio_file=audio_file,
163
+ model_options=model_options,
164
+ )
165
+ gpu_end = time.perf_counter()
166
+ return {
167
+ "raw_output": result["raw_output"],
168
+ "zerogpu_timing": {
169
+ "gpu_window_seconds": round(gpu_end - gpu_start, 4),
170
+ **result.get("timing", {}),
171
+ },
172
+ }
173
+
174
+
175
+ def transcribe(audio_file: str):
176
+ _raise_preload_error_if_any(PARAKEET_V3)
177
+ return run_parakeet_transcription_request(
178
+ audio_file=audio_file,
179
+ gpu_runner=_gpu_infer_parakeet,
180
+ )
181
+
182
+
183
+ def diarize(audio_file: str, huggingface_token: str):
184
+ return run_pyannote_diarization_request(
185
+ audio_file=audio_file,
186
+ huggingface_token=huggingface_token,
187
+ preload_runner=preload_pyannote_pipeline,
188
+ gpu_chunk_runner=_gpu_infer_pyannote_chunk,
189
+ )
190
+
191
+
192
+ def run_complete_pipeline(
193
+ audio_file: str,
194
+ huggingface_token: str,
195
+ ):
196
+ _raise_preload_error_if_any(PARAKEET_V3)
197
+
198
+ started_at = time.perf_counter()
199
+
200
+ # 1) Parakeet transcription on ZeroGPU.
201
+ parakeet_response = run_parakeet_transcription_request(
202
+ audio_file=audio_file,
203
+ gpu_runner=_gpu_infer_parakeet,
204
+ )
205
+
206
+ # 2) Pyannote diarization on ZeroGPU (chunked only when needed).
207
+ pyannote_response = run_pyannote_diarization_request(
208
+ audio_file=audio_file,
209
+ huggingface_token=huggingface_token,
210
+ preload_runner=preload_pyannote_pipeline,
211
+ gpu_chunk_runner=_gpu_infer_pyannote_chunk,
212
+ )
213
+
214
+ # 3) CPU-side postprocessing outside ZeroGPU.
215
+ merged_transcript = merge_parakeet_pyannote_outputs(
216
+ parakeet_response=parakeet_response,
217
+ pyannote_response=pyannote_response,
218
+ diarization_key="exclusive_speaker_diarization",
219
+ )
220
+
221
+ total_gpu_window_seconds = float(parakeet_response["zerogpu_timing"].get("gpu_window_seconds", 0.0)) + float(
222
+ pyannote_response.get("zerogpu_timing", {}).get("gpu_window_seconds", 0.0)
223
+ )
224
+ total_inference_seconds = float(parakeet_response["zerogpu_timing"].get("inference_seconds", 0.0)) + float(
225
+ pyannote_response.get("zerogpu_timing", {}).get("inference_seconds", 0.0)
226
+ )
227
+
228
+ finished_at = time.perf_counter()
229
+ debug_payload = {
230
+ "pipeline_timing": {
231
+ "total_wall_clock_seconds": round(finished_at - started_at, 4),
232
+ "zerogpu_gpu_window_seconds_total": round(total_gpu_window_seconds, 4),
233
+ "zerogpu_inference_seconds_total": round(total_inference_seconds, 4),
234
+ },
235
+ "inputs": {
236
+ "audio_file": str(audio_file),
237
+ "huggingface_token_provided": bool(huggingface_token),
238
+ },
239
+ "parakeet_response": parakeet_response,
240
+ "pyannote_response": pyannote_response,
241
+ "merged_transcript": merged_transcript,
242
+ }
243
+ _store_debug_payload(debug_payload)
244
+
245
+ # Return merged transcript JSON (OpenAI cleanup is intentionally local/off-space).
246
+ return merged_transcript
247
+
248
+
249
+ def get_debug_output(run_id: str | None):
250
+ if run_id and run_id.strip():
251
+ payload = _DEBUG_RUNS.get(run_id.strip())
252
+ if payload is None:
253
+ raise gr.Error(f"Unknown run_id: {run_id}")
254
+ return {"run_id": run_id.strip(), "debug": payload}
255
+
256
+ if _LAST_DEBUG_RUN_ID is None:
257
+ raise gr.Error("No debug payload available yet. Run /run_complete_pipeline first.")
258
+ return {"run_id": _LAST_DEBUG_RUN_ID, "debug": _DEBUG_RUNS[_LAST_DEBUG_RUN_ID]}
259
+
260
+
261
+ def get_run_complete_pipeline_schema() -> dict[str, Any]:
262
+ return {
263
+ "api_name": "/run_complete_pipeline",
264
+ "input_schema": RUN_COMPLETE_PIPELINE_INPUT_SCHEMA,
265
+ "output_schema": RUN_COMPLETE_PIPELINE_OUTPUT_SCHEMA,
266
+ "output_example": RUN_COMPLETE_PIPELINE_OUTPUT_EXAMPLE,
267
+ "notes": [
268
+ "Use /get_debug_output to fetch raw model payloads and timing.",
269
+ "The production route returns only merged transcript JSON.",
270
+ ],
271
+ }
272
+
273
+
274
+ with gr.Blocks(title="Parakeet + Pyannote Pipeline") as demo:
275
+ gr.Markdown(
276
+ "# End-to-end transcript pipeline\n"
277
+ "Runs Parakeet transcription, Pyannote diarization, then merges into a combined transcript JSON.\n\n"
278
+ "Need stage isolation? Call `/transcribe` or `/diarize`."
279
+ )
280
+
281
+ audio_file = gr.Audio(
282
+ sources=["upload"],
283
+ type="filepath",
284
+ label="Audio file",
285
+ )
286
+ transcribe_btn = gr.Button("Transcribe only")
287
+ transcribe_output = gr.JSON(label="Parakeet transcript JSON")
288
+ transcribe_btn.click(
289
+ fn=transcribe,
290
+ inputs=[audio_file],
291
+ outputs=transcribe_output,
292
+ api_name="transcribe",
293
+ api_description=(
294
+ "Run Parakeet only and return the same transcription payload used inside /run_complete_pipeline.\n"
295
+ "Response shape:\n"
296
+ "{\n"
297
+ ' "model": "NVIDIA Parakeet v3",\n'
298
+ ' "task": "transcribe",\n'
299
+ ' "audio_file": str,\n'
300
+ ' "postprocess_prompt": null,\n'
301
+ ' "model_options": {},\n'
302
+ ' "zerogpu_timing": {"gpu_window_seconds": float, "inference_seconds": float},\n'
303
+ ' "raw_output": dict,\n'
304
+ ' "timestamp_granularity": "word"\n'
305
+ "}"
306
+ ),
307
+ )
308
+
309
+ huggingface_token = gr.Textbox(
310
+ label="HuggingFace token",
311
+ type="password",
312
+ )
313
+ diarize_btn = gr.Button("Diarize only")
314
+ diarize_output = gr.JSON(label="Pyannote diarization JSON")
315
+ diarize_btn.click(
316
+ fn=diarize,
317
+ inputs=[audio_file, huggingface_token],
318
+ outputs=diarize_output,
319
+ api_name="diarize",
320
+ api_description=(
321
+ "Run Pyannote only and return the same diarization payload used inside /run_complete_pipeline.\n"
322
+ "Requires huggingface_token for pyannote/speaker-diarization-community-1.\n"
323
+ "Response shape:\n"
324
+ "{\n"
325
+ ' "model": "pyannote/speaker-diarization-community-1",\n'
326
+ ' "audio_file": str,\n'
327
+ ' "duration_seconds": float | null,\n'
328
+ ' "model_options": dict,\n'
329
+ ' "long_audio": {"chunk_count": int, "chunk_plan": list, "chunked": bool},\n'
330
+ ' "zerogpu_timing": {"gpu_window_seconds": float, "inference_seconds": float},\n'
331
+ ' "raw_output": {"chunk_results": list, "stitched": dict}\n'
332
+ "}"
333
+ ),
334
+ )
335
+
336
+ run_btn = gr.Button("Run full pipeline")
337
+ output = gr.JSON(label="Combined transcript JSON")
338
+
339
+ run_btn.click(
340
+ fn=run_complete_pipeline,
341
+ inputs=[audio_file, huggingface_token],
342
+ outputs=output,
343
+ api_name="run_complete_pipeline",
344
+ api_description=(
345
+ "Run Parakeet + Pyannote and return merged transcript JSON.\n"
346
+ "Response shape:\n"
347
+ "{\n"
348
+ ' "summary": {\n'
349
+ ' "diarization_key_used": str,\n'
350
+ ' "parakeet_word_count": int,\n'
351
+ ' "pyannote_segment_count": int,\n'
352
+ ' "turn_count": int,\n'
353
+ ' "assigned_word_count": int,\n'
354
+ ' "unassigned_word_count": int\n'
355
+ " },\n"
356
+ ' "turns": [{"speaker": str, "start": float, "end": float, "text": str}],\n'
357
+ ' "transcript_text": str\n'
358
+ "}\n"
359
+ "For full machine-readable schema + example, call /get_run_complete_pipeline_schema."
360
+ ),
361
+ )
362
+
363
+ with gr.Row():
364
+ debug_run_id = gr.Textbox(label="Debug run_id (optional)")
365
+ debug_btn = gr.Button("Get debug output")
366
+ debug_output = gr.JSON(label="Debug output (raw + benchmark)")
367
+
368
+ debug_btn.click(
369
+ fn=get_debug_output,
370
+ inputs=[debug_run_id],
371
+ outputs=debug_output,
372
+ api_name="get_debug_output",
373
+ api_description=(
374
+ "Return latest (or selected) debug payload including raw Parakeet/Pyannote outputs "
375
+ "and aggregated pipeline timing."
376
+ ),
377
+ )
378
+
379
+ with gr.Row(visible=False):
380
+ schema_btn = gr.Button("get_run_complete_pipeline_schema")
381
+ schema_output = gr.JSON(label="run_complete_pipeline schema", visible=False)
382
+ schema_btn.click(
383
+ fn=get_run_complete_pipeline_schema,
384
+ inputs=None,
385
+ outputs=schema_output,
386
+ api_name="get_run_complete_pipeline_schema",
387
+ api_description="Return input/output schema contract for /run_complete_pipeline.",
388
+ )
389
+
390
+
391
+ demo.queue(default_concurrency_limit=1).launch(ssr_mode=False, theme=gr.themes.Ocean())
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260221_183454/benchmark_stats.json ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "space": "Ratnesh-dev/transcribe-diarize",
3
+ "audio_file": "Q3-FY26_5min.mp3",
4
+ "task": "transcribe",
5
+ "language": null,
6
+ "models": [
7
+ "Whisper Large V3",
8
+ "Whisper Large V3 Turbo",
9
+ "Whisper.cpp (large)",
10
+ "Whisper faster (large)",
11
+ "NVIDIA Parakeet v3"
12
+ ],
13
+ "benchmark_timing": {
14
+ "total_client_wall_clock_seconds": 158.1297
15
+ },
16
+ "leaderboard_by_gpu_window_seconds": [
17
+ {
18
+ "model": "NVIDIA Parakeet v3",
19
+ "api_name": "/transcribe_parakeet_v3",
20
+ "gpu_window_seconds": 25.6806,
21
+ "inference_seconds": 1.6436,
22
+ "client_wall_clock_seconds": 35.6289
23
+ },
24
+ {
25
+ "model": "Whisper faster (large)",
26
+ "api_name": "/transcribe_whisper_faster_large",
27
+ "gpu_window_seconds": 26.2386,
28
+ "inference_seconds": 23.6107,
29
+ "client_wall_clock_seconds": 32.4749
30
+ }
31
+ ],
32
+ "summary": [
33
+ {
34
+ "model": "Whisper Large V3",
35
+ "status": "error",
36
+ "client_wall_clock_seconds": 32.93,
37
+ "gpu_window_seconds": null,
38
+ "inference_seconds": null
39
+ },
40
+ {
41
+ "model": "Whisper Large V3 Turbo",
42
+ "status": "error",
43
+ "client_wall_clock_seconds": 49.7912,
44
+ "gpu_window_seconds": null,
45
+ "inference_seconds": null
46
+ },
47
+ {
48
+ "model": "Whisper.cpp (large)",
49
+ "status": "error",
50
+ "client_wall_clock_seconds": 7.3045,
51
+ "gpu_window_seconds": null,
52
+ "inference_seconds": null
53
+ },
54
+ {
55
+ "model": "Whisper faster (large)",
56
+ "status": "ok",
57
+ "client_wall_clock_seconds": 32.4749,
58
+ "gpu_window_seconds": 26.2386,
59
+ "inference_seconds": 23.6107
60
+ },
61
+ {
62
+ "model": "NVIDIA Parakeet v3",
63
+ "status": "ok",
64
+ "client_wall_clock_seconds": 35.6289,
65
+ "gpu_window_seconds": 25.6806,
66
+ "inference_seconds": 1.6436
67
+ }
68
+ ]
69
+ }
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260221_183454/nvidia_parakeet_v3.json ADDED
The diff for this file is too large to render. See raw diff
 
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260221_183454/whisper.cpp_large.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "model": "Whisper.cpp (large)",
3
+ "status": "error",
4
+ "error": "Whisper.cpp requires model path. Set WHISPER_CPP_MODEL_LARGE or pass model_options_json={\"whisper_cpp_model\":\"/path/to/ggml-large-v3.bin\"}.",
5
+ "client_wall_clock_seconds": 7.3045
6
+ }
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260221_183454/whisper_faster_large.json ADDED
The diff for this file is too large to render. See raw diff
 
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260221_183454/whisper_large_v3.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "model": "Whisper Large V3",
3
+ "status": "error",
4
+ "error": "RuntimeError",
5
+ "client_wall_clock_seconds": 32.93
6
+ }
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260221_183454/whisper_large_v3_turbo.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ {
2
+ "model": "Whisper Large V3 Turbo",
3
+ "status": "error",
4
+ "error": "TypeError",
5
+ "client_wall_clock_seconds": 49.7912
6
+ }
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260221_185214/benchmark_stats.json ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "space": "Ratnesh-dev/transcribe-diarize",
3
+ "audio_file": "Q3-FY26_5min.mp3",
4
+ "task": "transcribe",
5
+ "language": null,
6
+ "models": [
7
+ "Whisper Large V3",
8
+ "Whisper Large V3 Turbo",
9
+ "Whisper.cpp (large)",
10
+ "Whisper faster (large)",
11
+ "NVIDIA Parakeet v3"
12
+ ],
13
+ "benchmark_timing": {
14
+ "total_client_wall_clock_seconds": 172.2493
15
+ },
16
+ "leaderboard_by_gpu_window_seconds": [
17
+ {
18
+ "model": "NVIDIA Parakeet v3",
19
+ "api_name": "/transcribe_parakeet_v3",
20
+ "gpu_window_seconds": 25.1584,
21
+ "inference_seconds": 1.3924,
22
+ "client_wall_clock_seconds": 33.4613
23
+ },
24
+ {
25
+ "model": "Whisper faster (large)",
26
+ "api_name": "/transcribe_whisper_faster_large",
27
+ "gpu_window_seconds": 27.166,
28
+ "inference_seconds": 19.993,
29
+ "client_wall_clock_seconds": 32.5888
30
+ },
31
+ {
32
+ "model": "Whisper Large V3 Turbo",
33
+ "api_name": "/transcribe_whisper_large_v3_turbo",
34
+ "gpu_window_seconds": 27.5446,
35
+ "inference_seconds": 9.1112,
36
+ "client_wall_clock_seconds": 32.6999
37
+ }
38
+ ],
39
+ "summary": [
40
+ {
41
+ "model": "Whisper Large V3",
42
+ "status": "error",
43
+ "api_name": "/transcribe_whisper_large_v3",
44
+ "client_wall_clock_seconds": 67.0465,
45
+ "gpu_window_seconds": null,
46
+ "inference_seconds": null,
47
+ "error": "GPU task aborted"
48
+ },
49
+ {
50
+ "model": "Whisper Large V3 Turbo",
51
+ "status": "ok",
52
+ "api_name": "/transcribe_whisper_large_v3_turbo",
53
+ "client_wall_clock_seconds": 32.6999,
54
+ "gpu_window_seconds": 27.5446,
55
+ "inference_seconds": 9.1112,
56
+ "error": null
57
+ },
58
+ {
59
+ "model": "Whisper.cpp (large)",
60
+ "status": "error",
61
+ "api_name": "/transcribe_whisper_cpp_large",
62
+ "client_wall_clock_seconds": 6.4526,
63
+ "gpu_window_seconds": null,
64
+ "inference_seconds": null,
65
+ "error": "Whisper.cpp requires model path. Set WHISPER_CPP_MODEL_LARGE or pass model_options_json={\"whisper_cpp_model\":\"/path/to/ggml-large-v3.bin\"}."
66
+ },
67
+ {
68
+ "model": "Whisper faster (large)",
69
+ "status": "ok",
70
+ "api_name": "/transcribe_whisper_faster_large",
71
+ "client_wall_clock_seconds": 32.5888,
72
+ "gpu_window_seconds": 27.166,
73
+ "inference_seconds": 19.993,
74
+ "error": null
75
+ },
76
+ {
77
+ "model": "NVIDIA Parakeet v3",
78
+ "status": "ok",
79
+ "api_name": "/transcribe_parakeet_v3",
80
+ "client_wall_clock_seconds": 33.4613,
81
+ "gpu_window_seconds": 25.1584,
82
+ "inference_seconds": 1.3924,
83
+ "error": null
84
+ }
85
+ ]
86
+ }
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260221_185214/nvidia_parakeet_v3.json ADDED
The diff for this file is too large to render. See raw diff
 
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260221_185214/whisper.cpp_large.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "model": "Whisper.cpp (large)",
3
+ "api_name": "/transcribe_whisper_cpp_large",
4
+ "status": "error",
5
+ "client_wall_clock_seconds": 6.4526,
6
+ "error": "Whisper.cpp requires model path. Set WHISPER_CPP_MODEL_LARGE or pass model_options_json={\"whisper_cpp_model\":\"/path/to/ggml-large-v3.bin\"}."
7
+ }
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260221_185214/whisper_faster_large.json ADDED
The diff for this file is too large to render. See raw diff
 
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260221_185214/whisper_large_v3.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "model": "Whisper Large V3",
3
+ "api_name": "/transcribe_whisper_large_v3",
4
+ "status": "error",
5
+ "client_wall_clock_seconds": 67.0465,
6
+ "error": "GPU task aborted"
7
+ }
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260221_185214/whisper_large_v3_turbo.json ADDED
The diff for this file is too large to render. See raw diff
 
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_102228/benchmark_stats.json ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "space": "Ratnesh-dev/transcribe-diarize",
3
+ "audio_file": "Q3-FY26_5min.mp3",
4
+ "task": "transcribe",
5
+ "language": null,
6
+ "models": [
7
+ "Whisper Large V3",
8
+ "Whisper Large V3 Turbo",
9
+ "Whisper.cpp (large)",
10
+ "Whisper faster (large)",
11
+ "NVIDIA Parakeet v3"
12
+ ],
13
+ "benchmark_timing": {
14
+ "total_client_wall_clock_seconds": 195.695
15
+ },
16
+ "leaderboard_by_gpu_window_seconds": [
17
+ {
18
+ "model": "Whisper Large V3 Turbo",
19
+ "api_name": "/transcribe_whisper_large_v3_turbo",
20
+ "gpu_window_seconds": 21.8813,
21
+ "inference_seconds": 9.9142,
22
+ "client_wall_clock_seconds": 31.3042
23
+ },
24
+ {
25
+ "model": "Whisper faster (large)",
26
+ "api_name": "/transcribe_whisper_faster_large",
27
+ "gpu_window_seconds": 27.4783,
28
+ "inference_seconds": 13.5596,
29
+ "client_wall_clock_seconds": 34.0397
30
+ },
31
+ {
32
+ "model": "NVIDIA Parakeet v3",
33
+ "api_name": "/transcribe_parakeet_v3",
34
+ "gpu_window_seconds": 40.0005,
35
+ "inference_seconds": 2.0911,
36
+ "client_wall_clock_seconds": 49.2008
37
+ },
38
+ {
39
+ "model": "Whisper Large V3",
40
+ "api_name": "/transcribe_whisper_large_v3",
41
+ "gpu_window_seconds": 63.9729,
42
+ "inference_seconds": 42.212,
43
+ "client_wall_clock_seconds": 74.0941
44
+ }
45
+ ],
46
+ "summary": [
47
+ {
48
+ "model": "Whisper Large V3",
49
+ "status": "ok",
50
+ "api_name": "/transcribe_whisper_large_v3",
51
+ "client_wall_clock_seconds": 74.0941,
52
+ "gpu_window_seconds": 63.9729,
53
+ "inference_seconds": 42.212,
54
+ "error": null
55
+ },
56
+ {
57
+ "model": "Whisper Large V3 Turbo",
58
+ "status": "ok",
59
+ "api_name": "/transcribe_whisper_large_v3_turbo",
60
+ "client_wall_clock_seconds": 31.3042,
61
+ "gpu_window_seconds": 21.8813,
62
+ "inference_seconds": 9.9142,
63
+ "error": null
64
+ },
65
+ {
66
+ "model": "Whisper.cpp (large)",
67
+ "status": "error",
68
+ "api_name": "/transcribe_whisper_cpp_large",
69
+ "client_wall_clock_seconds": 7.0561,
70
+ "gpu_window_seconds": null,
71
+ "inference_seconds": null,
72
+ "error": "Whisper.cpp requires model path. Set WHISPER_CPP_MODEL_LARGE or pass model_options_json={\"whisper_cpp_model\":\"/path/to/ggml-large-v3.bin\"}."
73
+ },
74
+ {
75
+ "model": "Whisper faster (large)",
76
+ "status": "ok",
77
+ "api_name": "/transcribe_whisper_faster_large",
78
+ "client_wall_clock_seconds": 34.0397,
79
+ "gpu_window_seconds": 27.4783,
80
+ "inference_seconds": 13.5596,
81
+ "error": null
82
+ },
83
+ {
84
+ "model": "NVIDIA Parakeet v3",
85
+ "status": "ok",
86
+ "api_name": "/transcribe_parakeet_v3",
87
+ "client_wall_clock_seconds": 49.2008,
88
+ "gpu_window_seconds": 40.0005,
89
+ "inference_seconds": 2.0911,
90
+ "error": null
91
+ }
92
+ ]
93
+ }
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_102228/nvidia_parakeet_v3.json ADDED
The diff for this file is too large to render. See raw diff
 
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_102228/whisper.cpp_large.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "model": "Whisper.cpp (large)",
3
+ "api_name": "/transcribe_whisper_cpp_large",
4
+ "status": "error",
5
+ "client_wall_clock_seconds": 7.0561,
6
+ "error": "Whisper.cpp requires model path. Set WHISPER_CPP_MODEL_LARGE or pass model_options_json={\"whisper_cpp_model\":\"/path/to/ggml-large-v3.bin\"}."
7
+ }
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_102228/whisper_faster_large.json ADDED
The diff for this file is too large to render. See raw diff
 
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_102228/whisper_large_v3.json ADDED
The diff for this file is too large to render. See raw diff
 
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_102228/whisper_large_v3_turbo.json ADDED
The diff for this file is too large to render. See raw diff
 
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_155458/benchmark_stats.json ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "space": "Ratnesh-dev/transcribe-diarize",
3
+ "audio_file": "Q3-FY26_5min.mp3",
4
+ "task": "transcribe",
5
+ "language": null,
6
+ "models": [
7
+ "Whisper Large V3 Turbo",
8
+ "NVIDIA Parakeet v3"
9
+ ],
10
+ "benchmark_timing": {
11
+ "total_client_wall_clock_seconds": 51.6486
12
+ },
13
+ "leaderboard_by_gpu_window_seconds": [
14
+ {
15
+ "model": "NVIDIA Parakeet v3",
16
+ "api_name": "/transcribe_parakeet_v3",
17
+ "gpu_window_seconds": 27.4834,
18
+ "inference_seconds": 1.9277,
19
+ "client_wall_clock_seconds": 35.6015
20
+ }
21
+ ],
22
+ "summary": [
23
+ {
24
+ "model": "Whisper Large V3 Turbo",
25
+ "status": "error",
26
+ "api_name": "/transcribe_whisper_large_v3_turbo",
27
+ "client_wall_clock_seconds": 16.047,
28
+ "gpu_window_seconds": null,
29
+ "inference_seconds": null,
30
+ "error": "ValueError"
31
+ },
32
+ {
33
+ "model": "NVIDIA Parakeet v3",
34
+ "status": "ok",
35
+ "api_name": "/transcribe_parakeet_v3",
36
+ "client_wall_clock_seconds": 35.6015,
37
+ "gpu_window_seconds": 27.4834,
38
+ "inference_seconds": 1.9277,
39
+ "error": null
40
+ }
41
+ ]
42
+ }
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_155458/nvidia_parakeet_v3.json ADDED
The diff for this file is too large to render. See raw diff
 
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_155458/whisper_large_v3_turbo.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model": "Whisper Large V3 Turbo",
3
+ "api_name": "/transcribe_whisper_large_v3_turbo",
4
+ "status": "error",
5
+ "client_wall_clock_seconds": 16.047,
6
+ "effective_model_options_json": "{\"chunk_length_s\": 30, \"batch_size\": 16, \"long_audio_threshold_seconds\": 120, \"num_beams\": 1}",
7
+ "error": "ValueError"
8
+ }
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_160801/benchmark_stats.json ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "space": "Ratnesh-dev/transcribe-diarize",
3
+ "audio_file": "Q3-FY26_5min.mp3",
4
+ "task": "transcribe",
5
+ "language": null,
6
+ "models": [
7
+ "Whisper Large V3 Turbo",
8
+ "NVIDIA Parakeet v3"
9
+ ],
10
+ "benchmark_timing": {
11
+ "total_client_wall_clock_seconds": 70.9442
12
+ },
13
+ "leaderboard_by_gpu_window_seconds": [],
14
+ "summary": [
15
+ {
16
+ "model": "Whisper Large V3 Turbo",
17
+ "status": "error",
18
+ "api_name": "/transcribe_whisper_large_v3_turbo",
19
+ "client_wall_clock_seconds": 64.672,
20
+ "gpu_window_seconds": null,
21
+ "inference_seconds": null,
22
+ "error": "IndexError"
23
+ },
24
+ {
25
+ "model": "NVIDIA Parakeet v3",
26
+ "status": "error",
27
+ "api_name": "/transcribe_parakeet_v3",
28
+ "client_wall_clock_seconds": 6.2719,
29
+ "gpu_window_seconds": null,
30
+ "inference_seconds": null,
31
+ "error": "You have exceeded your GPU quota (60s requested vs. 22s left). Try again in 23:46:12"
32
+ }
33
+ ]
34
+ }
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_160801/nvidia_parakeet_v3.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model": "NVIDIA Parakeet v3",
3
+ "api_name": "/transcribe_parakeet_v3",
4
+ "status": "error",
5
+ "client_wall_clock_seconds": 6.2719,
6
+ "effective_model_options_json": "{\"batch_size\": 1, \"long_audio_threshold_seconds\": 480, \"local_attention_left\": 256, \"local_attention_right\": 256, \"subsampling_conv_chunking_factor\": 1}",
7
+ "error": "You have exceeded your GPU quota (60s requested vs. 22s left). Try again in 23:46:12"
8
+ }
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_160801/whisper_large_v3_turbo.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model": "Whisper Large V3 Turbo",
3
+ "api_name": "/transcribe_whisper_large_v3_turbo",
4
+ "status": "error",
5
+ "client_wall_clock_seconds": 64.672,
6
+ "effective_model_options_json": "{\"chunk_length_s\": 30, \"batch_size\": 16, \"long_audio_threshold_seconds\": 120, \"num_beams\": 1}",
7
+ "error": "IndexError"
8
+ }
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_162404/benchmark_stats.json ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "space": "Ratnesh-dev/transcribe-diarize",
3
+ "audio_file": "Q3-FY26_5min.mp3",
4
+ "task": "transcribe",
5
+ "language": null,
6
+ "models": [
7
+ "Whisper Large V3 Turbo",
8
+ "NVIDIA Parakeet v3"
9
+ ],
10
+ "benchmark_timing": {
11
+ "total_client_wall_clock_seconds": 12.4255
12
+ },
13
+ "leaderboard_by_gpu_window_seconds": [],
14
+ "summary": [
15
+ {
16
+ "model": "Whisper Large V3 Turbo",
17
+ "status": "error",
18
+ "api_name": "/transcribe_whisper_large_v3_turbo",
19
+ "client_wall_clock_seconds": 5.9353,
20
+ "gpu_window_seconds": null,
21
+ "inference_seconds": null,
22
+ "error": "You have exceeded your GPU quota (60s requested vs. 22s left). Try again in 23:30:15"
23
+ },
24
+ {
25
+ "model": "NVIDIA Parakeet v3",
26
+ "status": "error",
27
+ "api_name": "/transcribe_parakeet_v3",
28
+ "client_wall_clock_seconds": 6.4901,
29
+ "gpu_window_seconds": null,
30
+ "inference_seconds": null,
31
+ "error": "You have exceeded your GPU quota (60s requested vs. 22s left). Try again in 23:30:10"
32
+ }
33
+ ]
34
+ }
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_162404/nvidia_parakeet_v3.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model": "NVIDIA Parakeet v3",
3
+ "api_name": "/transcribe_parakeet_v3",
4
+ "status": "error",
5
+ "client_wall_clock_seconds": 6.4901,
6
+ "effective_model_options_json": "{\"batch_size\": 1, \"long_audio_threshold_seconds\": 480, \"local_attention_left\": 256, \"local_attention_right\": 256, \"subsampling_conv_chunking_factor\": 1}",
7
+ "error": "You have exceeded your GPU quota (60s requested vs. 22s left). Try again in 23:30:10"
8
+ }
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_162404/whisper_large_v3_turbo.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model": "Whisper Large V3 Turbo",
3
+ "api_name": "/transcribe_whisper_large_v3_turbo",
4
+ "status": "error",
5
+ "client_wall_clock_seconds": 5.9353,
6
+ "effective_model_options_json": "{\"chunk_length_s\": 30, \"batch_size\": 16, \"long_audio_threshold_seconds\": 120, \"num_beams\": 1}",
7
+ "error": "You have exceeded your GPU quota (60s requested vs. 22s left). Try again in 23:30:15"
8
+ }
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_162651/benchmark_stats.json ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "space": "Ratnesh-dev/transcribe-diarize",
3
+ "audio_file": "Q3-FY26_5min.mp3",
4
+ "task": "transcribe",
5
+ "language": null,
6
+ "models": [
7
+ "Whisper Large V3 Turbo",
8
+ "NVIDIA Parakeet v3"
9
+ ],
10
+ "benchmark_timing": {
11
+ "total_client_wall_clock_seconds": 105.8342
12
+ },
13
+ "leaderboard_by_gpu_window_seconds": [
14
+ {
15
+ "model": "NVIDIA Parakeet v3",
16
+ "api_name": "/transcribe_parakeet_v3",
17
+ "gpu_window_seconds": 28.6758,
18
+ "inference_seconds": 2.5322,
19
+ "client_wall_clock_seconds": 36.9385
20
+ }
21
+ ],
22
+ "summary": [
23
+ {
24
+ "model": "Whisper Large V3 Turbo",
25
+ "status": "error",
26
+ "api_name": "/transcribe_whisper_large_v3_turbo",
27
+ "client_wall_clock_seconds": 68.8956,
28
+ "gpu_window_seconds": null,
29
+ "inference_seconds": null,
30
+ "error": "GPU task aborted"
31
+ },
32
+ {
33
+ "model": "NVIDIA Parakeet v3",
34
+ "status": "ok",
35
+ "api_name": "/transcribe_parakeet_v3",
36
+ "client_wall_clock_seconds": 36.9385,
37
+ "gpu_window_seconds": 28.6758,
38
+ "inference_seconds": 2.5322,
39
+ "error": null
40
+ }
41
+ ]
42
+ }
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_162651/nvidia_parakeet_v3.json ADDED
The diff for this file is too large to render. See raw diff
 
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_162651/whisper_large_v3_turbo.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model": "Whisper Large V3 Turbo",
3
+ "api_name": "/transcribe_whisper_large_v3_turbo",
4
+ "status": "error",
5
+ "client_wall_clock_seconds": 68.8956,
6
+ "effective_model_options_json": "{\"chunk_length_s\": 30, \"batch_size\": 16, \"long_audio_threshold_seconds\": 120, \"num_beams\": 1}",
7
+ "error": "GPU task aborted"
8
+ }
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_163912/benchmark_stats.json ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "space": "Ratnesh-dev/transcribe-diarize",
3
+ "audio_file": "Q3-FY26_5min.mp3",
4
+ "task": "transcribe",
5
+ "language": null,
6
+ "models": [
7
+ "Whisper Large V3 Turbo",
8
+ "NVIDIA Parakeet v3"
9
+ ],
10
+ "benchmark_timing": {
11
+ "total_client_wall_clock_seconds": 50.2386
12
+ },
13
+ "leaderboard_by_gpu_window_seconds": [
14
+ {
15
+ "model": "NVIDIA Parakeet v3",
16
+ "api_name": "/transcribe_parakeet_v3",
17
+ "gpu_window_seconds": 26.4022,
18
+ "inference_seconds": 1.9466,
19
+ "client_wall_clock_seconds": 35.5696
20
+ }
21
+ ],
22
+ "summary": [
23
+ {
24
+ "model": "Whisper Large V3 Turbo",
25
+ "status": "error",
26
+ "api_name": "/transcribe_whisper_large_v3_turbo",
27
+ "client_wall_clock_seconds": 14.6688,
28
+ "gpu_window_seconds": null,
29
+ "inference_seconds": null,
30
+ "error": "TypeError"
31
+ },
32
+ {
33
+ "model": "NVIDIA Parakeet v3",
34
+ "status": "ok",
35
+ "api_name": "/transcribe_parakeet_v3",
36
+ "client_wall_clock_seconds": 35.5696,
37
+ "gpu_window_seconds": 26.4022,
38
+ "inference_seconds": 1.9466,
39
+ "error": null
40
+ }
41
+ ]
42
+ }
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_163912/nvidia_parakeet_v3.json ADDED
The diff for this file is too large to render. See raw diff
 
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_163912/whisper_large_v3_turbo.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model": "Whisper Large V3 Turbo",
3
+ "api_name": "/transcribe_whisper_large_v3_turbo",
4
+ "status": "error",
5
+ "client_wall_clock_seconds": 14.6688,
6
+ "effective_model_options_json": "{\"chunk_length_s\": 30, \"batch_size\": 16, \"long_audio_threshold_seconds\": 120, \"num_beams\": 1}",
7
+ "error": "TypeError"
8
+ }
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_170425/benchmark_stats.json ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "space": "Ratnesh-dev/transcribe-diarize",
3
+ "audio_file": "Q3-FY26_5min.mp3",
4
+ "task": "transcribe",
5
+ "language": null,
6
+ "models": [
7
+ "Whisper Large V3 Turbo",
8
+ "NVIDIA Parakeet v3"
9
+ ],
10
+ "benchmark_timing": {
11
+ "total_client_wall_clock_seconds": 19.1928
12
+ },
13
+ "leaderboard_by_gpu_window_seconds": [
14
+ {
15
+ "model": "NVIDIA Parakeet v3",
16
+ "api_name": "/transcribe_parakeet_v3",
17
+ "gpu_window_seconds": 1.7501,
18
+ "inference_seconds": 1.7462,
19
+ "client_wall_clock_seconds": 10.4831
20
+ }
21
+ ],
22
+ "summary": [
23
+ {
24
+ "model": "Whisper Large V3 Turbo",
25
+ "status": "error",
26
+ "api_name": "/transcribe_whisper_large_v3_turbo",
27
+ "client_wall_clock_seconds": 8.7096,
28
+ "gpu_window_seconds": null,
29
+ "inference_seconds": null,
30
+ "error": "TypeError"
31
+ },
32
+ {
33
+ "model": "NVIDIA Parakeet v3",
34
+ "status": "ok",
35
+ "api_name": "/transcribe_parakeet_v3",
36
+ "client_wall_clock_seconds": 10.4831,
37
+ "gpu_window_seconds": 1.7501,
38
+ "inference_seconds": 1.7462,
39
+ "error": null
40
+ }
41
+ ]
42
+ }
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_170425/nvidia_parakeet_v3.json ADDED
The diff for this file is too large to render. See raw diff
 
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_170425/whisper_large_v3_turbo.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model": "Whisper Large V3 Turbo",
3
+ "api_name": "/transcribe_whisper_large_v3_turbo",
4
+ "status": "error",
5
+ "client_wall_clock_seconds": 8.7096,
6
+ "effective_model_options_json": "{\"num_beams\": 1, \"temperature\": 0.0}",
7
+ "error": "TypeError"
8
+ }
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_171344/benchmark_stats.json ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "space": "Ratnesh-dev/transcribe-diarize",
3
+ "audio_file": "Q3-FY26_5min.mp3",
4
+ "task": "transcribe",
5
+ "language": null,
6
+ "models": [
7
+ "Whisper Large V3 Turbo",
8
+ "NVIDIA Parakeet v3"
9
+ ],
10
+ "benchmark_timing": {
11
+ "total_client_wall_clock_seconds": 57.7283
12
+ },
13
+ "leaderboard_by_gpu_window_seconds": [
14
+ {
15
+ "model": "NVIDIA Parakeet v3",
16
+ "api_name": "/transcribe_parakeet_v3",
17
+ "gpu_window_seconds": 2.2344,
18
+ "inference_seconds": 2.221,
19
+ "client_wall_clock_seconds": 15.0925
20
+ },
21
+ {
22
+ "model": "Whisper Large V3 Turbo",
23
+ "api_name": "/transcribe_whisper_large_v3_turbo",
24
+ "gpu_window_seconds": 35.4609,
25
+ "inference_seconds": 35.4596,
26
+ "client_wall_clock_seconds": 42.6357
27
+ }
28
+ ],
29
+ "summary": [
30
+ {
31
+ "model": "Whisper Large V3 Turbo",
32
+ "status": "ok",
33
+ "api_name": "/transcribe_whisper_large_v3_turbo",
34
+ "client_wall_clock_seconds": 42.6357,
35
+ "gpu_window_seconds": 35.4609,
36
+ "inference_seconds": 35.4596,
37
+ "error": null
38
+ },
39
+ {
40
+ "model": "NVIDIA Parakeet v3",
41
+ "status": "ok",
42
+ "api_name": "/transcribe_parakeet_v3",
43
+ "client_wall_clock_seconds": 15.0925,
44
+ "gpu_window_seconds": 2.2344,
45
+ "inference_seconds": 2.221,
46
+ "error": null
47
+ }
48
+ ]
49
+ }
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_171344/nvidia_parakeet_v3.json ADDED
The diff for this file is too large to render. See raw diff
 
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_171344/whisper_large_v3_turbo.json ADDED
@@ -0,0 +1,4815 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model": "Whisper Large V3 Turbo",
3
+ "task": "transcribe",
4
+ "audio_file": "/tmp/gradio/7805a61018caf7c7cf375cda35bf3e0e8c88096aaec4ccbf416d6be775af26aa/Q3-FY26_5min.mp3",
5
+ "postprocess_prompt": "You have the transcript of the quarterly conference call for Kotak Mahindra BankClean up any mispelled words, false starts, repeated words from the transcript.Do not add anything new on your own. Here are some executive names which might be misspelled: Ashok Vaswani Jaideep Hansraj Paritosh Kashyap Anup Kumar Saha Devang Gheewalla Manish Agarwal Manish Kothari Oisharya Das Pranav Mishra Vyomesh Kapasi",
6
+ "model_options": {
7
+ "num_beams": 1,
8
+ "temperature": 0.0
9
+ },
10
+ "zerogpu_timing": {
11
+ "gpu_window_seconds": 35.4609,
12
+ "inference_seconds": 35.4596
13
+ },
14
+ "raw_output": {
15
+ "backend": "transformers-pipeline-basic",
16
+ "model_name": "openai/whisper-large-v3-turbo",
17
+ "prompt": {
18
+ "initial_prompt_provided": true
19
+ },
20
+ "result": {
21
+ "text": " Ladies and gentlemen, good day and welcome to the Kortak Mahindra Bank Q3 FY26 Earnings Conference Call. As a reminder, all participant lines will be in the listen-only mode and there will be an opportunity for you to ask questions after the presentation concludes. Should you need assistance during this conference call, please signal an operator by pressing star and then zero on your touchstone phone. Please note that this conference is being recorded. I now hand the conference over to Mr. Ashok Vaswani, Managing Director and CEO of Kotak Mahindra Bank. Thank you and over to you, sir. Thank you. Thank you so much, operator. Good evening. Good evening, everyone, and thank you for joining us. Before I begin, let me welcome Anup Saha, our new WTD designate. Anup brings over three decades of vast experience and domain expertise across many fields, including retail finance, analytics, risk, collections, and financial service operations. He will oversee our consumer bank, data analytics, and marketing verticals. His additions strengthens our leadership team and accelerates our ability to execute at scale. Moving on to today's agenda, I'll make some opening remarks. Devang will cover the numbers in detail. Pradab, the deposit franchise, Yomesh, consumer assets, Manish, commercial banking, Paritosh, wholesale banking and institutional businesses, and finally, Jerry will update you on our subs. Let me first talk a little bit about the macroeconomic environment. The global landscape has become more volatile. Geopolitical tensions, trade and tariff uncertainties have weighed on global investor confidence. While there seems to be a high level of confidence to get a trade deal with the EU, the absence of a final trade agreement with the US continues to add to this uncertainty. We have seen unprecedented strengthening of gold and silver and outflows from India by FIIs to other markets that have perceived to be more attractive to foreign investors. However, the Indian economy continues to demonstrate strong and stable growth. GDP growth continues to be resilient with a positive outlook. This is supported by several enabling actions like the RBI's repo rate cuts and GST rate rationalization. 3Q also saw an uptick in growth led by the usual festive demand. Rural India overall looks stable, supported by good monsuits. The rupee weakness has partly offset tariff impacts, but has also affected foreign flows and liquidity. With respect to capital flows, while FIIs have been net sellers, domestic institutional investors have provided support with around $24 billion in inflows in Q3 FY26, reinforcing the savers to investors' strength. This is also evident in the strong IPO pipeline expected for calendar 2026. In the banking sector specifically, system credit growth has been healthy, but the flows into commodities and capital markets are putting more pressure on low-cost deposits. There is enhanced volatility seen in the banking sector liquidity. While benchmark rates are reduced, longer-term credit yields have gone down. Within this context, coming to quota, we remain focused on our strategy to scale responsibly. This discipline is reflected in our quarterly performance. In the bank, net advances grew 16% YOY. This is in line with our stated philosophy of growing our advances in the range of 1.5 to 2 times nominal GDP growth. We have seen consistent growth of around 4% per quarter for the last three quarters of this financial year. Having deposits grew 15% year on year, we have been focusing on granular casa growth. This is on the back of our focus segment strategy, and I will come to that shortly. We called out unsecured retail loans earlier. We said we would grow gradually and responsibly. with the unsecured assets growing in absolute terms in the first instance. And that's exactly what we have done and will continue to do so. The bank's NIL continues to be healthy at 4.54%, supported by a low cost of funds. Credit costs, as indicated previously, continue the downward trend, supported by updated underwriting models and enhanced collection efforts. Credit costs are down sequentially from 93 basis points in Q1 to 79 basis points in Q1.",
22
+ "chunks": [
23
+ {
24
+ "text": " Ladies",
25
+ "timestamp": [
26
+ 0.52,
27
+ 0.8
28
+ ]
29
+ },
30
+ {
31
+ "text": " and",
32
+ "timestamp": [
33
+ 0.8,
34
+ 1.0
35
+ ]
36
+ },
37
+ {
38
+ "text": " gentlemen,",
39
+ "timestamp": [
40
+ 1.0,
41
+ 1.72
42
+ ]
43
+ },
44
+ {
45
+ "text": " good",
46
+ "timestamp": [
47
+ 1.72,
48
+ 2.08
49
+ ]
50
+ },
51
+ {
52
+ "text": " day",
53
+ "timestamp": [
54
+ 2.08,
55
+ 2.3
56
+ ]
57
+ },
58
+ {
59
+ "text": " and",
60
+ "timestamp": [
61
+ 2.3,
62
+ 2.5
63
+ ]
64
+ },
65
+ {
66
+ "text": " welcome",
67
+ "timestamp": [
68
+ 2.5,
69
+ 2.88
70
+ ]
71
+ },
72
+ {
73
+ "text": " to",
74
+ "timestamp": [
75
+ 2.88,
76
+ 3.28
77
+ ]
78
+ },
79
+ {
80
+ "text": " the",
81
+ "timestamp": [
82
+ 3.28,
83
+ 3.38
84
+ ]
85
+ },
86
+ {
87
+ "text": " Kortak",
88
+ "timestamp": [
89
+ 3.38,
90
+ 3.72
91
+ ]
92
+ },
93
+ {
94
+ "text": " Mahindra",
95
+ "timestamp": [
96
+ 3.72,
97
+ 4.12
98
+ ]
99
+ },
100
+ {
101
+ "text": " Bank",
102
+ "timestamp": [
103
+ 4.12,
104
+ 4.44
105
+ ]
106
+ },
107
+ {
108
+ "text": " Q3",
109
+ "timestamp": [
110
+ 4.44,
111
+ 5.1
112
+ ]
113
+ },
114
+ {
115
+ "text": " FY26",
116
+ "timestamp": [
117
+ 5.1,
118
+ 6.0
119
+ ]
120
+ },
121
+ {
122
+ "text": " Earnings",
123
+ "timestamp": [
124
+ 6.0,
125
+ 6.52
126
+ ]
127
+ },
128
+ {
129
+ "text": " Conference",
130
+ "timestamp": [
131
+ 6.52,
132
+ 6.84
133
+ ]
134
+ },
135
+ {
136
+ "text": " Call.",
137
+ "timestamp": [
138
+ 6.84,
139
+ 7.32
140
+ ]
141
+ },
142
+ {
143
+ "text": " As",
144
+ "timestamp": [
145
+ 8.84,
146
+ 9.14
147
+ ]
148
+ },
149
+ {
150
+ "text": " a",
151
+ "timestamp": [
152
+ 9.14,
153
+ 9.22
154
+ ]
155
+ },
156
+ {
157
+ "text": " reminder,",
158
+ "timestamp": [
159
+ 9.22,
160
+ 9.88
161
+ ]
162
+ },
163
+ {
164
+ "text": " all",
165
+ "timestamp": [
166
+ 9.88,
167
+ 10.36
168
+ ]
169
+ },
170
+ {
171
+ "text": " participant",
172
+ "timestamp": [
173
+ 10.36,
174
+ 10.84
175
+ ]
176
+ },
177
+ {
178
+ "text": " lines",
179
+ "timestamp": [
180
+ 10.84,
181
+ 11.18
182
+ ]
183
+ },
184
+ {
185
+ "text": " will",
186
+ "timestamp": [
187
+ 11.18,
188
+ 11.46
189
+ ]
190
+ },
191
+ {
192
+ "text": " be",
193
+ "timestamp": [
194
+ 11.46,
195
+ 11.6
196
+ ]
197
+ },
198
+ {
199
+ "text": " in",
200
+ "timestamp": [
201
+ 11.6,
202
+ 11.7
203
+ ]
204
+ },
205
+ {
206
+ "text": " the",
207
+ "timestamp": [
208
+ 11.7,
209
+ 11.8
210
+ ]
211
+ },
212
+ {
213
+ "text": " listen",
214
+ "timestamp": [
215
+ 11.8,
216
+ 12.02
217
+ ]
218
+ },
219
+ {
220
+ "text": "-only",
221
+ "timestamp": [
222
+ 12.02,
223
+ 12.28
224
+ ]
225
+ },
226
+ {
227
+ "text": " mode",
228
+ "timestamp": [
229
+ 12.28,
230
+ 12.62
231
+ ]
232
+ },
233
+ {
234
+ "text": " and",
235
+ "timestamp": [
236
+ 12.62,
237
+ 13.2
238
+ ]
239
+ },
240
+ {
241
+ "text": " there",
242
+ "timestamp": [
243
+ 13.2,
244
+ 13.32
245
+ ]
246
+ },
247
+ {
248
+ "text": " will",
249
+ "timestamp": [
250
+ 13.32,
251
+ 13.44
252
+ ]
253
+ },
254
+ {
255
+ "text": " be",
256
+ "timestamp": [
257
+ 13.44,
258
+ 13.54
259
+ ]
260
+ },
261
+ {
262
+ "text": " an",
263
+ "timestamp": [
264
+ 13.54,
265
+ 13.68
266
+ ]
267
+ },
268
+ {
269
+ "text": " opportunity",
270
+ "timestamp": [
271
+ 13.68,
272
+ 14.02
273
+ ]
274
+ },
275
+ {
276
+ "text": " for",
277
+ "timestamp": [
278
+ 14.02,
279
+ 14.38
280
+ ]
281
+ },
282
+ {
283
+ "text": " you",
284
+ "timestamp": [
285
+ 14.38,
286
+ 14.48
287
+ ]
288
+ },
289
+ {
290
+ "text": " to",
291
+ "timestamp": [
292
+ 14.48,
293
+ 14.6
294
+ ]
295
+ },
296
+ {
297
+ "text": " ask",
298
+ "timestamp": [
299
+ 14.6,
300
+ 14.9
301
+ ]
302
+ },
303
+ {
304
+ "text": " questions",
305
+ "timestamp": [
306
+ 14.9,
307
+ 15.46
308
+ ]
309
+ },
310
+ {
311
+ "text": " after",
312
+ "timestamp": [
313
+ 15.46,
314
+ 16.26
315
+ ]
316
+ },
317
+ {
318
+ "text": " the",
319
+ "timestamp": [
320
+ 16.26,
321
+ 16.4
322
+ ]
323
+ },
324
+ {
325
+ "text": " presentation",
326
+ "timestamp": [
327
+ 16.4,
328
+ 16.9
329
+ ]
330
+ },
331
+ {
332
+ "text": " concludes.",
333
+ "timestamp": [
334
+ 16.9,
335
+ 17.92
336
+ ]
337
+ },
338
+ {
339
+ "text": " Should",
340
+ "timestamp": [
341
+ 18.6,
342
+ 18.8
343
+ ]
344
+ },
345
+ {
346
+ "text": " you",
347
+ "timestamp": [
348
+ 18.8,
349
+ 18.92
350
+ ]
351
+ },
352
+ {
353
+ "text": " need",
354
+ "timestamp": [
355
+ 18.92,
356
+ 19.08
357
+ ]
358
+ },
359
+ {
360
+ "text": " assistance",
361
+ "timestamp": [
362
+ 19.08,
363
+ 19.52
364
+ ]
365
+ },
366
+ {
367
+ "text": " during",
368
+ "timestamp": [
369
+ 19.52,
370
+ 19.8
371
+ ]
372
+ },
373
+ {
374
+ "text": " this",
375
+ "timestamp": [
376
+ 19.8,
377
+ 20.04
378
+ ]
379
+ },
380
+ {
381
+ "text": " conference",
382
+ "timestamp": [
383
+ 20.04,
384
+ 20.38
385
+ ]
386
+ },
387
+ {
388
+ "text": " call,",
389
+ "timestamp": [
390
+ 20.38,
391
+ 20.98
392
+ ]
393
+ },
394
+ {
395
+ "text": " please",
396
+ "timestamp": [
397
+ 20.98,
398
+ 21.36
399
+ ]
400
+ },
401
+ {
402
+ "text": " signal",
403
+ "timestamp": [
404
+ 21.36,
405
+ 21.64
406
+ ]
407
+ },
408
+ {
409
+ "text": " an",
410
+ "timestamp": [
411
+ 21.64,
412
+ 21.82
413
+ ]
414
+ },
415
+ {
416
+ "text": " operator",
417
+ "timestamp": [
418
+ 21.82,
419
+ 22.2
420
+ ]
421
+ },
422
+ {
423
+ "text": " by",
424
+ "timestamp": [
425
+ 22.2,
426
+ 22.62
427
+ ]
428
+ },
429
+ {
430
+ "text": " pressing",
431
+ "timestamp": [
432
+ 22.62,
433
+ 22.94
434
+ ]
435
+ },
436
+ {
437
+ "text": " star",
438
+ "timestamp": [
439
+ 22.94,
440
+ 23.28
441
+ ]
442
+ },
443
+ {
444
+ "text": " and",
445
+ "timestamp": [
446
+ 23.28,
447
+ 23.62
448
+ ]
449
+ },
450
+ {
451
+ "text": " then",
452
+ "timestamp": [
453
+ 23.62,
454
+ 23.8
455
+ ]
456
+ },
457
+ {
458
+ "text": " zero",
459
+ "timestamp": [
460
+ 23.8,
461
+ 24.18
462
+ ]
463
+ },
464
+ {
465
+ "text": " on",
466
+ "timestamp": [
467
+ 24.18,
468
+ 24.74
469
+ ]
470
+ },
471
+ {
472
+ "text": " your",
473
+ "timestamp": [
474
+ 24.74,
475
+ 24.88
476
+ ]
477
+ },
478
+ {
479
+ "text": " touchstone",
480
+ "timestamp": [
481
+ 24.88,
482
+ 25.32
483
+ ]
484
+ },
485
+ {
486
+ "text": " phone.",
487
+ "timestamp": [
488
+ 25.32,
489
+ 25.96
490
+ ]
491
+ },
492
+ {
493
+ "text": " Please",
494
+ "timestamp": [
495
+ 26.64,
496
+ 27.02
497
+ ]
498
+ },
499
+ {
500
+ "text": " note",
501
+ "timestamp": [
502
+ 27.02,
503
+ 27.34
504
+ ]
505
+ },
506
+ {
507
+ "text": " that",
508
+ "timestamp": [
509
+ 27.34,
510
+ 27.84
511
+ ]
512
+ },
513
+ {
514
+ "text": " this",
515
+ "timestamp": [
516
+ 27.84,
517
+ 28.0
518
+ ]
519
+ },
520
+ {
521
+ "text": " conference",
522
+ "timestamp": [
523
+ 28.0,
524
+ 28.36
525
+ ]
526
+ },
527
+ {
528
+ "text": " is",
529
+ "timestamp": [
530
+ 28.36,
531
+ 28.66
532
+ ]
533
+ },
534
+ {
535
+ "text": " being",
536
+ "timestamp": [
537
+ 28.66,
538
+ 28.9
539
+ ]
540
+ },
541
+ {
542
+ "text": " recorded.",
543
+ "timestamp": [
544
+ 28.9,
545
+ 29.56
546
+ ]
547
+ },
548
+ {
549
+ "text": " I",
550
+ "timestamp": [
551
+ 30.5,
552
+ 30.76
553
+ ]
554
+ },
555
+ {
556
+ "text": " now",
557
+ "timestamp": [
558
+ 30.76,
559
+ 30.98
560
+ ]
561
+ },
562
+ {
563
+ "text": " hand",
564
+ "timestamp": [
565
+ 30.98,
566
+ 31.2
567
+ ]
568
+ },
569
+ {
570
+ "text": " the",
571
+ "timestamp": [
572
+ 31.2,
573
+ 31.32
574
+ ]
575
+ },
576
+ {
577
+ "text": " conference",
578
+ "timestamp": [
579
+ 31.32,
580
+ 31.7
581
+ ]
582
+ },
583
+ {
584
+ "text": " over",
585
+ "timestamp": [
586
+ 31.7,
587
+ 32.04
588
+ ]
589
+ },
590
+ {
591
+ "text": " to",
592
+ "timestamp": [
593
+ 32.04,
594
+ 32.44
595
+ ]
596
+ },
597
+ {
598
+ "text": " Mr.",
599
+ "timestamp": [
600
+ 32.44,
601
+ 32.74
602
+ ]
603
+ },
604
+ {
605
+ "text": " Ashok",
606
+ "timestamp": [
607
+ 32.74,
608
+ 32.98
609
+ ]
610
+ },
611
+ {
612
+ "text": " Vaswani,",
613
+ "timestamp": [
614
+ 32.98,
615
+ 33.92
616
+ ]
617
+ },
618
+ {
619
+ "text": " Managing",
620
+ "timestamp": [
621
+ 33.92,
622
+ 34.36
623
+ ]
624
+ },
625
+ {
626
+ "text": " Director",
627
+ "timestamp": [
628
+ 34.36,
629
+ 34.76
630
+ ]
631
+ },
632
+ {
633
+ "text": " and",
634
+ "timestamp": [
635
+ 34.76,
636
+ 35.2
637
+ ]
638
+ },
639
+ {
640
+ "text": " CEO",
641
+ "timestamp": [
642
+ 35.2,
643
+ 35.66
644
+ ]
645
+ },
646
+ {
647
+ "text": " of",
648
+ "timestamp": [
649
+ 35.66,
650
+ 36.24
651
+ ]
652
+ },
653
+ {
654
+ "text": " Kotak",
655
+ "timestamp": [
656
+ 36.24,
657
+ 36.66
658
+ ]
659
+ },
660
+ {
661
+ "text": " Mahindra",
662
+ "timestamp": [
663
+ 36.66,
664
+ 37.04
665
+ ]
666
+ },
667
+ {
668
+ "text": " Bank.",
669
+ "timestamp": [
670
+ 37.04,
671
+ 37.52
672
+ ]
673
+ },
674
+ {
675
+ "text": " Thank",
676
+ "timestamp": [
677
+ 38.04,
678
+ 38.18
679
+ ]
680
+ },
681
+ {
682
+ "text": " you",
683
+ "timestamp": [
684
+ 38.18,
685
+ 38.38
686
+ ]
687
+ },
688
+ {
689
+ "text": " and",
690
+ "timestamp": [
691
+ 38.38,
692
+ 38.72
693
+ ]
694
+ },
695
+ {
696
+ "text": " over",
697
+ "timestamp": [
698
+ 38.72,
699
+ 39.02
700
+ ]
701
+ },
702
+ {
703
+ "text": " to",
704
+ "timestamp": [
705
+ 39.02,
706
+ 39.14
707
+ ]
708
+ },
709
+ {
710
+ "text": " you,",
711
+ "timestamp": [
712
+ 39.14,
713
+ 39.38
714
+ ]
715
+ },
716
+ {
717
+ "text": " sir.",
718
+ "timestamp": [
719
+ 39.38,
720
+ 39.78
721
+ ]
722
+ },
723
+ {
724
+ "text": " Thank",
725
+ "timestamp": [
726
+ 40.8,
727
+ 40.92
728
+ ]
729
+ },
730
+ {
731
+ "text": " you.",
732
+ "timestamp": [
733
+ 40.92,
734
+ 41.2
735
+ ]
736
+ },
737
+ {
738
+ "text": " Thank",
739
+ "timestamp": [
740
+ 41.2,
741
+ 41.32
742
+ ]
743
+ },
744
+ {
745
+ "text": " you",
746
+ "timestamp": [
747
+ 41.32,
748
+ 41.44
749
+ ]
750
+ },
751
+ {
752
+ "text": " so",
753
+ "timestamp": [
754
+ 41.44,
755
+ 41.6
756
+ ]
757
+ },
758
+ {
759
+ "text": " much,",
760
+ "timestamp": [
761
+ 41.6,
762
+ 41.86
763
+ ]
764
+ },
765
+ {
766
+ "text": " operator.",
767
+ "timestamp": [
768
+ 41.86,
769
+ 42.46
770
+ ]
771
+ },
772
+ {
773
+ "text": " Good",
774
+ "timestamp": [
775
+ 42.9,
776
+ 43.48
777
+ ]
778
+ },
779
+ {
780
+ "text": " evening.",
781
+ "timestamp": [
782
+ 43.48,
783
+ 43.96
784
+ ]
785
+ },
786
+ {
787
+ "text": " Good",
788
+ "timestamp": [
789
+ 43.96,
790
+ 44.1
791
+ ]
792
+ },
793
+ {
794
+ "text": " evening,",
795
+ "timestamp": [
796
+ 44.1,
797
+ 44.4
798
+ ]
799
+ },
800
+ {
801
+ "text": " everyone,",
802
+ "timestamp": [
803
+ 44.4,
804
+ 44.72
805
+ ]
806
+ },
807
+ {
808
+ "text": " and",
809
+ "timestamp": [
810
+ 44.72,
811
+ 44.9
812
+ ]
813
+ },
814
+ {
815
+ "text": " thank",
816
+ "timestamp": [
817
+ 44.9,
818
+ 45.12
819
+ ]
820
+ },
821
+ {
822
+ "text": " you",
823
+ "timestamp": [
824
+ 45.12,
825
+ 45.24
826
+ ]
827
+ },
828
+ {
829
+ "text": " for",
830
+ "timestamp": [
831
+ 45.24,
832
+ 45.4
833
+ ]
834
+ },
835
+ {
836
+ "text": " joining",
837
+ "timestamp": [
838
+ 45.4,
839
+ 45.68
840
+ ]
841
+ },
842
+ {
843
+ "text": " us.",
844
+ "timestamp": [
845
+ 45.68,
846
+ 46.18
847
+ ]
848
+ },
849
+ {
850
+ "text": " Before",
851
+ "timestamp": [
852
+ 46.72,
853
+ 47.04
854
+ ]
855
+ },
856
+ {
857
+ "text": " I",
858
+ "timestamp": [
859
+ 47.04,
860
+ 47.2
861
+ ]
862
+ },
863
+ {
864
+ "text": " begin,",
865
+ "timestamp": [
866
+ 47.2,
867
+ 47.8
868
+ ]
869
+ },
870
+ {
871
+ "text": " let",
872
+ "timestamp": [
873
+ 47.8,
874
+ 48.22
875
+ ]
876
+ },
877
+ {
878
+ "text": " me",
879
+ "timestamp": [
880
+ 48.22,
881
+ 48.4
882
+ ]
883
+ },
884
+ {
885
+ "text": " welcome",
886
+ "timestamp": [
887
+ 48.4,
888
+ 48.88
889
+ ]
890
+ },
891
+ {
892
+ "text": " Anup",
893
+ "timestamp": [
894
+ 48.88,
895
+ 49.3
896
+ ]
897
+ },
898
+ {
899
+ "text": " Saha,",
900
+ "timestamp": [
901
+ 49.3,
902
+ 50.06
903
+ ]
904
+ },
905
+ {
906
+ "text": " our",
907
+ "timestamp": [
908
+ 50.06,
909
+ 50.26
910
+ ]
911
+ },
912
+ {
913
+ "text": " new",
914
+ "timestamp": [
915
+ 50.26,
916
+ 50.54
917
+ ]
918
+ },
919
+ {
920
+ "text": " WTD",
921
+ "timestamp": [
922
+ 50.54,
923
+ 52.48
924
+ ]
925
+ },
926
+ {
927
+ "text": " designate.",
928
+ "timestamp": [
929
+ 52.48,
930
+ 53.22
931
+ ]
932
+ },
933
+ {
934
+ "text": " Anup",
935
+ "timestamp": [
936
+ 53.6,
937
+ 53.9
938
+ ]
939
+ },
940
+ {
941
+ "text": " brings",
942
+ "timestamp": [
943
+ 53.9,
944
+ 54.14
945
+ ]
946
+ },
947
+ {
948
+ "text": " over",
949
+ "timestamp": [
950
+ 54.14,
951
+ 54.38
952
+ ]
953
+ },
954
+ {
955
+ "text": " three",
956
+ "timestamp": [
957
+ 54.38,
958
+ 54.6
959
+ ]
960
+ },
961
+ {
962
+ "text": " decades",
963
+ "timestamp": [
964
+ 54.6,
965
+ 54.96
966
+ ]
967
+ },
968
+ {
969
+ "text": " of",
970
+ "timestamp": [
971
+ 54.96,
972
+ 55.16
973
+ ]
974
+ },
975
+ {
976
+ "text": " vast",
977
+ "timestamp": [
978
+ 55.16,
979
+ 55.46
980
+ ]
981
+ },
982
+ {
983
+ "text": " experience",
984
+ "timestamp": [
985
+ 55.46,
986
+ 55.96
987
+ ]
988
+ },
989
+ {
990
+ "text": " and",
991
+ "timestamp": [
992
+ 55.96,
993
+ 56.62
994
+ ]
995
+ },
996
+ {
997
+ "text": " domain",
998
+ "timestamp": [
999
+ 56.62,
1000
+ 56.94
1001
+ ]
1002
+ },
1003
+ {
1004
+ "text": " expertise",
1005
+ "timestamp": [
1006
+ 56.94,
1007
+ 57.46
1008
+ ]
1009
+ },
1010
+ {
1011
+ "text": " across",
1012
+ "timestamp": [
1013
+ 57.46,
1014
+ 58.08
1015
+ ]
1016
+ },
1017
+ {
1018
+ "text": " many",
1019
+ "timestamp": [
1020
+ 58.08,
1021
+ 58.48
1022
+ ]
1023
+ },
1024
+ {
1025
+ "text": " fields,",
1026
+ "timestamp": [
1027
+ 58.48,
1028
+ 59.04
1029
+ ]
1030
+ },
1031
+ {
1032
+ "text": " including",
1033
+ "timestamp": [
1034
+ 59.38,
1035
+ 59.78
1036
+ ]
1037
+ },
1038
+ {
1039
+ "text": " retail",
1040
+ "timestamp": [
1041
+ 59.78,
1042
+ 60.12
1043
+ ]
1044
+ },
1045
+ {
1046
+ "text": " finance,",
1047
+ "timestamp": [
1048
+ 60.12,
1049
+ 60.84
1050
+ ]
1051
+ },
1052
+ {
1053
+ "text": " analytics,",
1054
+ "timestamp": [
1055
+ 60.84,
1056
+ 61.64
1057
+ ]
1058
+ },
1059
+ {
1060
+ "text": " risk,",
1061
+ "timestamp": [
1062
+ 61.64,
1063
+ 62.62
1064
+ ]
1065
+ },
1066
+ {
1067
+ "text": " collections,",
1068
+ "timestamp": [
1069
+ 62.62,
1070
+ 63.3
1071
+ ]
1072
+ },
1073
+ {
1074
+ "text": " and",
1075
+ "timestamp": [
1076
+ 63.3,
1077
+ 63.54
1078
+ ]
1079
+ },
1080
+ {
1081
+ "text": " financial",
1082
+ "timestamp": [
1083
+ 63.54,
1084
+ 63.88
1085
+ ]
1086
+ },
1087
+ {
1088
+ "text": " service",
1089
+ "timestamp": [
1090
+ 63.88,
1091
+ 64.24
1092
+ ]
1093
+ },
1094
+ {
1095
+ "text": " operations.",
1096
+ "timestamp": [
1097
+ 64.24,
1098
+ 65.04
1099
+ ]
1100
+ },
1101
+ {
1102
+ "text": " He",
1103
+ "timestamp": [
1104
+ 65.58,
1105
+ 65.74
1106
+ ]
1107
+ },
1108
+ {
1109
+ "text": " will",
1110
+ "timestamp": [
1111
+ 65.74,
1112
+ 65.88
1113
+ ]
1114
+ },
1115
+ {
1116
+ "text": " oversee",
1117
+ "timestamp": [
1118
+ 65.88,
1119
+ 66.28
1120
+ ]
1121
+ },
1122
+ {
1123
+ "text": " our",
1124
+ "timestamp": [
1125
+ 66.28,
1126
+ 66.46
1127
+ ]
1128
+ },
1129
+ {
1130
+ "text": " consumer",
1131
+ "timestamp": [
1132
+ 66.46,
1133
+ 66.82
1134
+ ]
1135
+ },
1136
+ {
1137
+ "text": " bank,",
1138
+ "timestamp": [
1139
+ 66.82,
1140
+ 67.7
1141
+ ]
1142
+ },
1143
+ {
1144
+ "text": " data",
1145
+ "timestamp": [
1146
+ 67.7,
1147
+ 67.9
1148
+ ]
1149
+ },
1150
+ {
1151
+ "text": " analytics,",
1152
+ "timestamp": [
1153
+ 67.9,
1154
+ 68.58
1155
+ ]
1156
+ },
1157
+ {
1158
+ "text": " and",
1159
+ "timestamp": [
1160
+ 68.58,
1161
+ 68.8
1162
+ ]
1163
+ },
1164
+ {
1165
+ "text": " marketing",
1166
+ "timestamp": [
1167
+ 68.8,
1168
+ 69.22
1169
+ ]
1170
+ },
1171
+ {
1172
+ "text": " verticals.",
1173
+ "timestamp": [
1174
+ 69.22,
1175
+ 70.04
1176
+ ]
1177
+ },
1178
+ {
1179
+ "text": " His",
1180
+ "timestamp": [
1181
+ 70.4,
1182
+ 70.6
1183
+ ]
1184
+ },
1185
+ {
1186
+ "text": " additions",
1187
+ "timestamp": [
1188
+ 70.6,
1189
+ 71.02
1190
+ ]
1191
+ },
1192
+ {
1193
+ "text": " strengthens",
1194
+ "timestamp": [
1195
+ 71.02,
1196
+ 71.64
1197
+ ]
1198
+ },
1199
+ {
1200
+ "text": " our",
1201
+ "timestamp": [
1202
+ 71.64,
1203
+ 71.78
1204
+ ]
1205
+ },
1206
+ {
1207
+ "text": " leadership",
1208
+ "timestamp": [
1209
+ 71.78,
1210
+ 72.1
1211
+ ]
1212
+ },
1213
+ {
1214
+ "text": " team",
1215
+ "timestamp": [
1216
+ 72.1,
1217
+ 72.48
1218
+ ]
1219
+ },
1220
+ {
1221
+ "text": " and",
1222
+ "timestamp": [
1223
+ 72.48,
1224
+ 73.1
1225
+ ]
1226
+ },
1227
+ {
1228
+ "text": " accelerates",
1229
+ "timestamp": [
1230
+ 73.1,
1231
+ 73.78
1232
+ ]
1233
+ },
1234
+ {
1235
+ "text": " our",
1236
+ "timestamp": [
1237
+ 73.78,
1238
+ 73.92
1239
+ ]
1240
+ },
1241
+ {
1242
+ "text": " ability",
1243
+ "timestamp": [
1244
+ 73.92,
1245
+ 74.32
1246
+ ]
1247
+ },
1248
+ {
1249
+ "text": " to",
1250
+ "timestamp": [
1251
+ 74.32,
1252
+ 74.96
1253
+ ]
1254
+ },
1255
+ {
1256
+ "text": " execute",
1257
+ "timestamp": [
1258
+ 74.96,
1259
+ 75.56
1260
+ ]
1261
+ },
1262
+ {
1263
+ "text": " at",
1264
+ "timestamp": [
1265
+ 75.56,
1266
+ 76.0
1267
+ ]
1268
+ },
1269
+ {
1270
+ "text": " scale.",
1271
+ "timestamp": [
1272
+ 76.0,
1273
+ 77.14
1274
+ ]
1275
+ },
1276
+ {
1277
+ "text": " Moving",
1278
+ "timestamp": [
1279
+ 78.08,
1280
+ 78.36
1281
+ ]
1282
+ },
1283
+ {
1284
+ "text": " on",
1285
+ "timestamp": [
1286
+ 78.36,
1287
+ 78.5
1288
+ ]
1289
+ },
1290
+ {
1291
+ "text": " to",
1292
+ "timestamp": [
1293
+ 78.5,
1294
+ 78.6
1295
+ ]
1296
+ },
1297
+ {
1298
+ "text": " today's",
1299
+ "timestamp": [
1300
+ 78.6,
1301
+ 78.94
1302
+ ]
1303
+ },
1304
+ {
1305
+ "text": " agenda,",
1306
+ "timestamp": [
1307
+ 78.94,
1308
+ 79.56
1309
+ ]
1310
+ },
1311
+ {
1312
+ "text": " I'll",
1313
+ "timestamp": [
1314
+ 79.56,
1315
+ 79.9
1316
+ ]
1317
+ },
1318
+ {
1319
+ "text": " make",
1320
+ "timestamp": [
1321
+ 79.9,
1322
+ 80.02
1323
+ ]
1324
+ },
1325
+ {
1326
+ "text": " some",
1327
+ "timestamp": [
1328
+ 80.02,
1329
+ 80.18
1330
+ ]
1331
+ },
1332
+ {
1333
+ "text": " opening",
1334
+ "timestamp": [
1335
+ 80.18,
1336
+ 80.48
1337
+ ]
1338
+ },
1339
+ {
1340
+ "text": " remarks.",
1341
+ "timestamp": [
1342
+ 80.48,
1343
+ 81.12
1344
+ ]
1345
+ },
1346
+ {
1347
+ "text": " Devang",
1348
+ "timestamp": [
1349
+ 81.42,
1350
+ 81.74
1351
+ ]
1352
+ },
1353
+ {
1354
+ "text": " will",
1355
+ "timestamp": [
1356
+ 81.74,
1357
+ 81.92
1358
+ ]
1359
+ },
1360
+ {
1361
+ "text": " cover",
1362
+ "timestamp": [
1363
+ 81.92,
1364
+ 82.16
1365
+ ]
1366
+ },
1367
+ {
1368
+ "text": " the",
1369
+ "timestamp": [
1370
+ 82.16,
1371
+ 82.3
1372
+ ]
1373
+ },
1374
+ {
1375
+ "text": " numbers",
1376
+ "timestamp": [
1377
+ 82.3,
1378
+ 82.54
1379
+ ]
1380
+ },
1381
+ {
1382
+ "text": " in",
1383
+ "timestamp": [
1384
+ 82.54,
1385
+ 82.7
1386
+ ]
1387
+ },
1388
+ {
1389
+ "text": " detail.",
1390
+ "timestamp": [
1391
+ 82.7,
1392
+ 83.3
1393
+ ]
1394
+ },
1395
+ {
1396
+ "text": " Pradab,",
1397
+ "timestamp": [
1398
+ 83.58,
1399
+ 84.06
1400
+ ]
1401
+ },
1402
+ {
1403
+ "text": " the",
1404
+ "timestamp": [
1405
+ 84.06,
1406
+ 84.1
1407
+ ]
1408
+ },
1409
+ {
1410
+ "text": " deposit",
1411
+ "timestamp": [
1412
+ 84.1,
1413
+ 84.46
1414
+ ]
1415
+ },
1416
+ {
1417
+ "text": " franchise,",
1418
+ "timestamp": [
1419
+ 84.46,
1420
+ 85.3
1421
+ ]
1422
+ },
1423
+ {
1424
+ "text": " Yomesh,",
1425
+ "timestamp": [
1426
+ 85.3,
1427
+ 85.78
1428
+ ]
1429
+ },
1430
+ {
1431
+ "text": " consumer",
1432
+ "timestamp": [
1433
+ 85.78,
1434
+ 86.04
1435
+ ]
1436
+ },
1437
+ {
1438
+ "text": " assets,",
1439
+ "timestamp": [
1440
+ 86.04,
1441
+ 87.14
1442
+ ]
1443
+ },
1444
+ {
1445
+ "text": " Manish,",
1446
+ "timestamp": [
1447
+ 87.14,
1448
+ 87.6
1449
+ ]
1450
+ },
1451
+ {
1452
+ "text": " commercial",
1453
+ "timestamp": [
1454
+ 87.6,
1455
+ 87.76
1456
+ ]
1457
+ },
1458
+ {
1459
+ "text": " banking,",
1460
+ "timestamp": [
1461
+ 87.76,
1462
+ 88.86
1463
+ ]
1464
+ },
1465
+ {
1466
+ "text": " Paritosh,",
1467
+ "timestamp": [
1468
+ 88.86,
1469
+ 89.56
1470
+ ]
1471
+ },
1472
+ {
1473
+ "text": " wholesale",
1474
+ "timestamp": [
1475
+ 89.56,
1476
+ 89.84
1477
+ ]
1478
+ },
1479
+ {
1480
+ "text": " banking",
1481
+ "timestamp": [
1482
+ 89.84,
1483
+ 90.24
1484
+ ]
1485
+ },
1486
+ {
1487
+ "text": " and",
1488
+ "timestamp": [
1489
+ 90.24,
1490
+ 90.46
1491
+ ]
1492
+ },
1493
+ {
1494
+ "text": " institutional",
1495
+ "timestamp": [
1496
+ 90.46,
1497
+ 90.88
1498
+ ]
1499
+ },
1500
+ {
1501
+ "text": " businesses,",
1502
+ "timestamp": [
1503
+ 90.88,
1504
+ 91.68
1505
+ ]
1506
+ },
1507
+ {
1508
+ "text": " and",
1509
+ "timestamp": [
1510
+ 91.68,
1511
+ 92.1
1512
+ ]
1513
+ },
1514
+ {
1515
+ "text": " finally,",
1516
+ "timestamp": [
1517
+ 92.1,
1518
+ 92.6
1519
+ ]
1520
+ },
1521
+ {
1522
+ "text": " Jerry",
1523
+ "timestamp": [
1524
+ 92.6,
1525
+ 92.74
1526
+ ]
1527
+ },
1528
+ {
1529
+ "text": " will",
1530
+ "timestamp": [
1531
+ 92.74,
1532
+ 93.44
1533
+ ]
1534
+ },
1535
+ {
1536
+ "text": " update",
1537
+ "timestamp": [
1538
+ 93.44,
1539
+ 93.84
1540
+ ]
1541
+ },
1542
+ {
1543
+ "text": " you",
1544
+ "timestamp": [
1545
+ 93.84,
1546
+ 94.12
1547
+ ]
1548
+ },
1549
+ {
1550
+ "text": " on",
1551
+ "timestamp": [
1552
+ 94.12,
1553
+ 94.44
1554
+ ]
1555
+ },
1556
+ {
1557
+ "text": " our",
1558
+ "timestamp": [
1559
+ 94.44,
1560
+ 94.66
1561
+ ]
1562
+ },
1563
+ {
1564
+ "text": " subs.",
1565
+ "timestamp": [
1566
+ 94.66,
1567
+ 95.78
1568
+ ]
1569
+ },
1570
+ {
1571
+ "text": " Let",
1572
+ "timestamp": [
1573
+ 96.54,
1574
+ 96.74
1575
+ ]
1576
+ },
1577
+ {
1578
+ "text": " me",
1579
+ "timestamp": [
1580
+ 96.74,
1581
+ 96.86
1582
+ ]
1583
+ },
1584
+ {
1585
+ "text": " first",
1586
+ "timestamp": [
1587
+ 96.86,
1588
+ 97.12
1589
+ ]
1590
+ },
1591
+ {
1592
+ "text": " talk",
1593
+ "timestamp": [
1594
+ 97.12,
1595
+ 97.34
1596
+ ]
1597
+ },
1598
+ {
1599
+ "text": " a",
1600
+ "timestamp": [
1601
+ 97.34,
1602
+ 97.46
1603
+ ]
1604
+ },
1605
+ {
1606
+ "text": " little",
1607
+ "timestamp": [
1608
+ 97.46,
1609
+ 97.6
1610
+ ]
1611
+ },
1612
+ {
1613
+ "text": " bit",
1614
+ "timestamp": [
1615
+ 97.6,
1616
+ 97.74
1617
+ ]
1618
+ },
1619
+ {
1620
+ "text": " about",
1621
+ "timestamp": [
1622
+ 97.74,
1623
+ 98.02
1624
+ ]
1625
+ },
1626
+ {
1627
+ "text": " the",
1628
+ "timestamp": [
1629
+ 98.02,
1630
+ 98.32
1631
+ ]
1632
+ },
1633
+ {
1634
+ "text": " macroeconomic",
1635
+ "timestamp": [
1636
+ 98.32,
1637
+ 99.38
1638
+ ]
1639
+ },
1640
+ {
1641
+ "text": " environment.",
1642
+ "timestamp": [
1643
+ 99.38,
1644
+ 100.24
1645
+ ]
1646
+ },
1647
+ {
1648
+ "text": " The",
1649
+ "timestamp": [
1650
+ 101.2,
1651
+ 101.4
1652
+ ]
1653
+ },
1654
+ {
1655
+ "text": " global",
1656
+ "timestamp": [
1657
+ 101.4,
1658
+ 101.68
1659
+ ]
1660
+ },
1661
+ {
1662
+ "text": " landscape",
1663
+ "timestamp": [
1664
+ 101.68,
1665
+ 102.12
1666
+ ]
1667
+ },
1668
+ {
1669
+ "text": " has",
1670
+ "timestamp": [
1671
+ 102.12,
1672
+ 102.56
1673
+ ]
1674
+ },
1675
+ {
1676
+ "text": " become",
1677
+ "timestamp": [
1678
+ 102.56,
1679
+ 102.82
1680
+ ]
1681
+ },
1682
+ {
1683
+ "text": " more",
1684
+ "timestamp": [
1685
+ 102.82,
1686
+ 103.06
1687
+ ]
1688
+ },
1689
+ {
1690
+ "text": " volatile.",
1691
+ "timestamp": [
1692
+ 103.06,
1693
+ 103.84
1694
+ ]
1695
+ },
1696
+ {
1697
+ "text": " Geopolitical",
1698
+ "timestamp": [
1699
+ 104.12,
1700
+ 104.84
1701
+ ]
1702
+ },
1703
+ {
1704
+ "text": " tensions,",
1705
+ "timestamp": [
1706
+ 104.84,
1707
+ 105.62
1708
+ ]
1709
+ },
1710
+ {
1711
+ "text": " trade",
1712
+ "timestamp": [
1713
+ 105.62,
1714
+ 105.88
1715
+ ]
1716
+ },
1717
+ {
1718
+ "text": " and",
1719
+ "timestamp": [
1720
+ 105.88,
1721
+ 106.04
1722
+ ]
1723
+ },
1724
+ {
1725
+ "text": " tariff",
1726
+ "timestamp": [
1727
+ 106.04,
1728
+ 106.38
1729
+ ]
1730
+ },
1731
+ {
1732
+ "text": " uncertainties",
1733
+ "timestamp": [
1734
+ 106.38,
1735
+ 107.14
1736
+ ]
1737
+ },
1738
+ {
1739
+ "text": " have",
1740
+ "timestamp": [
1741
+ 107.14,
1742
+ 107.76
1743
+ ]
1744
+ },
1745
+ {
1746
+ "text": " weighed",
1747
+ "timestamp": [
1748
+ 107.76,
1749
+ 108.06
1750
+ ]
1751
+ },
1752
+ {
1753
+ "text": " on",
1754
+ "timestamp": [
1755
+ 108.06,
1756
+ 108.4
1757
+ ]
1758
+ },
1759
+ {
1760
+ "text": " global",
1761
+ "timestamp": [
1762
+ 108.4,
1763
+ 108.8
1764
+ ]
1765
+ },
1766
+ {
1767
+ "text": " investor",
1768
+ "timestamp": [
1769
+ 108.8,
1770
+ 109.24
1771
+ ]
1772
+ },
1773
+ {
1774
+ "text": " confidence.",
1775
+ "timestamp": [
1776
+ 109.24,
1777
+ 110.12
1778
+ ]
1779
+ },
1780
+ {
1781
+ "text": " While",
1782
+ "timestamp": [
1783
+ 110.52,
1784
+ 110.88
1785
+ ]
1786
+ },
1787
+ {
1788
+ "text": " there",
1789
+ "timestamp": [
1790
+ 110.88,
1791
+ 111.02
1792
+ ]
1793
+ },
1794
+ {
1795
+ "text": " seems",
1796
+ "timestamp": [
1797
+ 111.02,
1798
+ 111.28
1799
+ ]
1800
+ },
1801
+ {
1802
+ "text": " to",
1803
+ "timestamp": [
1804
+ 111.28,
1805
+ 111.42
1806
+ ]
1807
+ },
1808
+ {
1809
+ "text": " be",
1810
+ "timestamp": [
1811
+ 111.42,
1812
+ 111.5
1813
+ ]
1814
+ },
1815
+ {
1816
+ "text": " a",
1817
+ "timestamp": [
1818
+ 111.5,
1819
+ 111.6
1820
+ ]
1821
+ },
1822
+ {
1823
+ "text": " high",
1824
+ "timestamp": [
1825
+ 111.6,
1826
+ 111.78
1827
+ ]
1828
+ },
1829
+ {
1830
+ "text": " level",
1831
+ "timestamp": [
1832
+ 111.78,
1833
+ 112.02
1834
+ ]
1835
+ },
1836
+ {
1837
+ "text": " of",
1838
+ "timestamp": [
1839
+ 112.02,
1840
+ 112.16
1841
+ ]
1842
+ },
1843
+ {
1844
+ "text": " confidence",
1845
+ "timestamp": [
1846
+ 112.16,
1847
+ 112.58
1848
+ ]
1849
+ },
1850
+ {
1851
+ "text": " to",
1852
+ "timestamp": [
1853
+ 112.58,
1854
+ 112.84
1855
+ ]
1856
+ },
1857
+ {
1858
+ "text": " get",
1859
+ "timestamp": [
1860
+ 112.84,
1861
+ 112.98
1862
+ ]
1863
+ },
1864
+ {
1865
+ "text": " a",
1866
+ "timestamp": [
1867
+ 112.98,
1868
+ 113.08
1869
+ ]
1870
+ },
1871
+ {
1872
+ "text": " trade",
1873
+ "timestamp": [
1874
+ 113.08,
1875
+ 113.32
1876
+ ]
1877
+ },
1878
+ {
1879
+ "text": " deal",
1880
+ "timestamp": [
1881
+ 113.32,
1882
+ 113.6
1883
+ ]
1884
+ },
1885
+ {
1886
+ "text": " with",
1887
+ "timestamp": [
1888
+ 113.6,
1889
+ 113.78
1890
+ ]
1891
+ },
1892
+ {
1893
+ "text": " the",
1894
+ "timestamp": [
1895
+ 113.78,
1896
+ 113.9
1897
+ ]
1898
+ },
1899
+ {
1900
+ "text": " EU,",
1901
+ "timestamp": [
1902
+ 113.9,
1903
+ 114.46
1904
+ ]
1905
+ },
1906
+ {
1907
+ "text": " the",
1908
+ "timestamp": [
1909
+ 114.82,
1910
+ 114.98
1911
+ ]
1912
+ },
1913
+ {
1914
+ "text": " absence",
1915
+ "timestamp": [
1916
+ 114.98,
1917
+ 115.36
1918
+ ]
1919
+ },
1920
+ {
1921
+ "text": " of",
1922
+ "timestamp": [
1923
+ 115.36,
1924
+ 115.6
1925
+ ]
1926
+ },
1927
+ {
1928
+ "text": " a",
1929
+ "timestamp": [
1930
+ 115.6,
1931
+ 115.74
1932
+ ]
1933
+ },
1934
+ {
1935
+ "text": " final",
1936
+ "timestamp": [
1937
+ 115.74,
1938
+ 116.08
1939
+ ]
1940
+ },
1941
+ {
1942
+ "text": " trade",
1943
+ "timestamp": [
1944
+ 116.08,
1945
+ 116.38
1946
+ ]
1947
+ },
1948
+ {
1949
+ "text": " agreement",
1950
+ "timestamp": [
1951
+ 116.38,
1952
+ 116.74
1953
+ ]
1954
+ },
1955
+ {
1956
+ "text": " with",
1957
+ "timestamp": [
1958
+ 116.74,
1959
+ 116.96
1960
+ ]
1961
+ },
1962
+ {
1963
+ "text": " the",
1964
+ "timestamp": [
1965
+ 116.96,
1966
+ 117.08
1967
+ ]
1968
+ },
1969
+ {
1970
+ "text": " US",
1971
+ "timestamp": [
1972
+ 117.08,
1973
+ 117.46
1974
+ ]
1975
+ },
1976
+ {
1977
+ "text": " continues",
1978
+ "timestamp": [
1979
+ 117.46,
1980
+ 118.3
1981
+ ]
1982
+ },
1983
+ {
1984
+ "text": " to",
1985
+ "timestamp": [
1986
+ 118.3,
1987
+ 118.68
1988
+ ]
1989
+ },
1990
+ {
1991
+ "text": " add",
1992
+ "timestamp": [
1993
+ 118.68,
1994
+ 119.04
1995
+ ]
1996
+ },
1997
+ {
1998
+ "text": " to",
1999
+ "timestamp": [
2000
+ 119.04,
2001
+ 119.3
2002
+ ]
2003
+ },
2004
+ {
2005
+ "text": " this",
2006
+ "timestamp": [
2007
+ 119.3,
2008
+ 119.52
2009
+ ]
2010
+ },
2011
+ {
2012
+ "text": " uncertainty.",
2013
+ "timestamp": [
2014
+ 119.52,
2015
+ 120.34
2016
+ ]
2017
+ },
2018
+ {
2019
+ "text": " We",
2020
+ "timestamp": [
2021
+ 121.08,
2022
+ 121.28
2023
+ ]
2024
+ },
2025
+ {
2026
+ "text": " have",
2027
+ "timestamp": [
2028
+ 121.28,
2029
+ 121.38
2030
+ ]
2031
+ },
2032
+ {
2033
+ "text": " seen",
2034
+ "timestamp": [
2035
+ 121.38,
2036
+ 121.6
2037
+ ]
2038
+ },
2039
+ {
2040
+ "text": " unprecedented",
2041
+ "timestamp": [
2042
+ 121.6,
2043
+ 122.26
2044
+ ]
2045
+ },
2046
+ {
2047
+ "text": " strengthening",
2048
+ "timestamp": [
2049
+ 122.26,
2050
+ 122.84
2051
+ ]
2052
+ },
2053
+ {
2054
+ "text": " of",
2055
+ "timestamp": [
2056
+ 122.84,
2057
+ 123.08
2058
+ ]
2059
+ },
2060
+ {
2061
+ "text": " gold",
2062
+ "timestamp": [
2063
+ 123.08,
2064
+ 123.34
2065
+ ]
2066
+ },
2067
+ {
2068
+ "text": " and",
2069
+ "timestamp": [
2070
+ 123.34,
2071
+ 123.48
2072
+ ]
2073
+ },
2074
+ {
2075
+ "text": " silver",
2076
+ "timestamp": [
2077
+ 123.48,
2078
+ 123.76
2079
+ ]
2080
+ },
2081
+ {
2082
+ "text": " and",
2083
+ "timestamp": [
2084
+ 123.76,
2085
+ 124.6
2086
+ ]
2087
+ },
2088
+ {
2089
+ "text": " outflows",
2090
+ "timestamp": [
2091
+ 124.6,
2092
+ 125.22
2093
+ ]
2094
+ },
2095
+ {
2096
+ "text": " from",
2097
+ "timestamp": [
2098
+ 125.22,
2099
+ 125.48
2100
+ ]
2101
+ },
2102
+ {
2103
+ "text": " India",
2104
+ "timestamp": [
2105
+ 125.48,
2106
+ 125.76
2107
+ ]
2108
+ },
2109
+ {
2110
+ "text": " by",
2111
+ "timestamp": [
2112
+ 125.76,
2113
+ 126.06
2114
+ ]
2115
+ },
2116
+ {
2117
+ "text": " FIIs",
2118
+ "timestamp": [
2119
+ 126.06,
2120
+ 126.76
2121
+ ]
2122
+ },
2123
+ {
2124
+ "text": " to",
2125
+ "timestamp": [
2126
+ 127.1,
2127
+ 127.24
2128
+ ]
2129
+ },
2130
+ {
2131
+ "text": " other",
2132
+ "timestamp": [
2133
+ 127.24,
2134
+ 127.52
2135
+ ]
2136
+ },
2137
+ {
2138
+ "text": " markets",
2139
+ "timestamp": [
2140
+ 127.52,
2141
+ 127.92
2142
+ ]
2143
+ },
2144
+ {
2145
+ "text": " that",
2146
+ "timestamp": [
2147
+ 127.92,
2148
+ 128.12
2149
+ ]
2150
+ },
2151
+ {
2152
+ "text": " have",
2153
+ "timestamp": [
2154
+ 128.12,
2155
+ 128.22
2156
+ ]
2157
+ },
2158
+ {
2159
+ "text": " perceived",
2160
+ "timestamp": [
2161
+ 128.22,
2162
+ 128.52
2163
+ ]
2164
+ },
2165
+ {
2166
+ "text": " to",
2167
+ "timestamp": [
2168
+ 128.52,
2169
+ 128.8
2170
+ ]
2171
+ },
2172
+ {
2173
+ "text": " be",
2174
+ "timestamp": [
2175
+ 128.8,
2176
+ 128.92
2177
+ ]
2178
+ },
2179
+ {
2180
+ "text": " more",
2181
+ "timestamp": [
2182
+ 128.92,
2183
+ 129.16
2184
+ ]
2185
+ },
2186
+ {
2187
+ "text": " attractive",
2188
+ "timestamp": [
2189
+ 129.16,
2190
+ 129.64
2191
+ ]
2192
+ },
2193
+ {
2194
+ "text": " to",
2195
+ "timestamp": [
2196
+ 129.64,
2197
+ 130.24
2198
+ ]
2199
+ },
2200
+ {
2201
+ "text": " foreign",
2202
+ "timestamp": [
2203
+ 130.24,
2204
+ 130.56
2205
+ ]
2206
+ },
2207
+ {
2208
+ "text": " investors.",
2209
+ "timestamp": [
2210
+ 130.56,
2211
+ 131.6
2212
+ ]
2213
+ },
2214
+ {
2215
+ "text": " However,",
2216
+ "timestamp": [
2217
+ 132.72,
2218
+ 133.54
2219
+ ]
2220
+ },
2221
+ {
2222
+ "text": " the",
2223
+ "timestamp": [
2224
+ 133.54,
2225
+ 133.7
2226
+ ]
2227
+ },
2228
+ {
2229
+ "text": " Indian",
2230
+ "timestamp": [
2231
+ 133.7,
2232
+ 133.96
2233
+ ]
2234
+ },
2235
+ {
2236
+ "text": " economy",
2237
+ "timestamp": [
2238
+ 133.96,
2239
+ 134.46
2240
+ ]
2241
+ },
2242
+ {
2243
+ "text": " continues",
2244
+ "timestamp": [
2245
+ 134.46,
2246
+ 134.9
2247
+ ]
2248
+ },
2249
+ {
2250
+ "text": " to",
2251
+ "timestamp": [
2252
+ 134.9,
2253
+ 135.12
2254
+ ]
2255
+ },
2256
+ {
2257
+ "text": " demonstrate",
2258
+ "timestamp": [
2259
+ 135.12,
2260
+ 135.66
2261
+ ]
2262
+ },
2263
+ {
2264
+ "text": " strong",
2265
+ "timestamp": [
2266
+ 135.66,
2267
+ 136.5
2268
+ ]
2269
+ },
2270
+ {
2271
+ "text": " and",
2272
+ "timestamp": [
2273
+ 136.5,
2274
+ 136.8
2275
+ ]
2276
+ },
2277
+ {
2278
+ "text": " stable",
2279
+ "timestamp": [
2280
+ 136.8,
2281
+ 137.18
2282
+ ]
2283
+ },
2284
+ {
2285
+ "text": " growth.",
2286
+ "timestamp": [
2287
+ 137.18,
2288
+ 137.74
2289
+ ]
2290
+ },
2291
+ {
2292
+ "text": " GDP",
2293
+ "timestamp": [
2294
+ 138.32,
2295
+ 138.7
2296
+ ]
2297
+ },
2298
+ {
2299
+ "text": " growth",
2300
+ "timestamp": [
2301
+ 138.7,
2302
+ 139.12
2303
+ ]
2304
+ },
2305
+ {
2306
+ "text": " continues",
2307
+ "timestamp": [
2308
+ 139.12,
2309
+ 139.7
2310
+ ]
2311
+ },
2312
+ {
2313
+ "text": " to",
2314
+ "timestamp": [
2315
+ 139.7,
2316
+ 139.88
2317
+ ]
2318
+ },
2319
+ {
2320
+ "text": " be",
2321
+ "timestamp": [
2322
+ 139.88,
2323
+ 139.98
2324
+ ]
2325
+ },
2326
+ {
2327
+ "text": " resilient",
2328
+ "timestamp": [
2329
+ 139.98,
2330
+ 140.38
2331
+ ]
2332
+ },
2333
+ {
2334
+ "text": " with",
2335
+ "timestamp": [
2336
+ 140.38,
2337
+ 140.96
2338
+ ]
2339
+ },
2340
+ {
2341
+ "text": " a",
2342
+ "timestamp": [
2343
+ 140.96,
2344
+ 141.06
2345
+ ]
2346
+ },
2347
+ {
2348
+ "text": " positive",
2349
+ "timestamp": [
2350
+ 141.06,
2351
+ 141.38
2352
+ ]
2353
+ },
2354
+ {
2355
+ "text": " outlook.",
2356
+ "timestamp": [
2357
+ 141.38,
2358
+ 142.16
2359
+ ]
2360
+ },
2361
+ {
2362
+ "text": " This",
2363
+ "timestamp": [
2364
+ 142.66,
2365
+ 142.84
2366
+ ]
2367
+ },
2368
+ {
2369
+ "text": " is",
2370
+ "timestamp": [
2371
+ 142.84,
2372
+ 142.96
2373
+ ]
2374
+ },
2375
+ {
2376
+ "text": " supported",
2377
+ "timestamp": [
2378
+ 142.96,
2379
+ 143.34
2380
+ ]
2381
+ },
2382
+ {
2383
+ "text": " by",
2384
+ "timestamp": [
2385
+ 143.34,
2386
+ 143.56
2387
+ ]
2388
+ },
2389
+ {
2390
+ "text": " several",
2391
+ "timestamp": [
2392
+ 143.56,
2393
+ 143.98
2394
+ ]
2395
+ },
2396
+ {
2397
+ "text": " enabling",
2398
+ "timestamp": [
2399
+ 143.98,
2400
+ 144.46
2401
+ ]
2402
+ },
2403
+ {
2404
+ "text": " actions",
2405
+ "timestamp": [
2406
+ 144.46,
2407
+ 144.94
2408
+ ]
2409
+ },
2410
+ {
2411
+ "text": " like",
2412
+ "timestamp": [
2413
+ 144.94,
2414
+ 145.76
2415
+ ]
2416
+ },
2417
+ {
2418
+ "text": " the",
2419
+ "timestamp": [
2420
+ 145.76,
2421
+ 145.96
2422
+ ]
2423
+ },
2424
+ {
2425
+ "text": " RBI's",
2426
+ "timestamp": [
2427
+ 145.96,
2428
+ 146.46
2429
+ ]
2430
+ },
2431
+ {
2432
+ "text": " repo",
2433
+ "timestamp": [
2434
+ 146.46,
2435
+ 146.68
2436
+ ]
2437
+ },
2438
+ {
2439
+ "text": " rate",
2440
+ "timestamp": [
2441
+ 146.68,
2442
+ 146.9
2443
+ ]
2444
+ },
2445
+ {
2446
+ "text": " cuts",
2447
+ "timestamp": [
2448
+ 146.9,
2449
+ 147.3
2450
+ ]
2451
+ },
2452
+ {
2453
+ "text": " and",
2454
+ "timestamp": [
2455
+ 147.3,
2456
+ 147.92
2457
+ ]
2458
+ },
2459
+ {
2460
+ "text": " GST",
2461
+ "timestamp": [
2462
+ 147.92,
2463
+ 148.44
2464
+ ]
2465
+ },
2466
+ {
2467
+ "text": " rate",
2468
+ "timestamp": [
2469
+ 148.44,
2470
+ 149.06
2471
+ ]
2472
+ },
2473
+ {
2474
+ "text": " rationalization.",
2475
+ "timestamp": [
2476
+ 149.06,
2477
+ 150.28
2478
+ ]
2479
+ },
2480
+ {
2481
+ "text": " 3Q",
2482
+ "timestamp": [
2483
+ 151.06,
2484
+ 151.48
2485
+ ]
2486
+ },
2487
+ {
2488
+ "text": " also",
2489
+ "timestamp": [
2490
+ 151.48,
2491
+ 151.98
2492
+ ]
2493
+ },
2494
+ {
2495
+ "text": " saw",
2496
+ "timestamp": [
2497
+ 151.98,
2498
+ 152.32
2499
+ ]
2500
+ },
2501
+ {
2502
+ "text": " an",
2503
+ "timestamp": [
2504
+ 152.32,
2505
+ 152.62
2506
+ ]
2507
+ },
2508
+ {
2509
+ "text": " uptick",
2510
+ "timestamp": [
2511
+ 152.62,
2512
+ 153.02
2513
+ ]
2514
+ },
2515
+ {
2516
+ "text": " in",
2517
+ "timestamp": [
2518
+ 153.02,
2519
+ 153.12
2520
+ ]
2521
+ },
2522
+ {
2523
+ "text": " growth",
2524
+ "timestamp": [
2525
+ 153.12,
2526
+ 153.44
2527
+ ]
2528
+ },
2529
+ {
2530
+ "text": " led",
2531
+ "timestamp": [
2532
+ 153.44,
2533
+ 154.0
2534
+ ]
2535
+ },
2536
+ {
2537
+ "text": " by",
2538
+ "timestamp": [
2539
+ 154.0,
2540
+ 154.18
2541
+ ]
2542
+ },
2543
+ {
2544
+ "text": " the",
2545
+ "timestamp": [
2546
+ 154.18,
2547
+ 154.32
2548
+ ]
2549
+ },
2550
+ {
2551
+ "text": " usual",
2552
+ "timestamp": [
2553
+ 154.32,
2554
+ 154.72
2555
+ ]
2556
+ },
2557
+ {
2558
+ "text": " festive",
2559
+ "timestamp": [
2560
+ 154.72,
2561
+ 155.18
2562
+ ]
2563
+ },
2564
+ {
2565
+ "text": " demand.",
2566
+ "timestamp": [
2567
+ 155.18,
2568
+ 156.16
2569
+ ]
2570
+ },
2571
+ {
2572
+ "text": " Rural",
2573
+ "timestamp": [
2574
+ 156.76,
2575
+ 157.1
2576
+ ]
2577
+ },
2578
+ {
2579
+ "text": " India",
2580
+ "timestamp": [
2581
+ 157.1,
2582
+ 157.44
2583
+ ]
2584
+ },
2585
+ {
2586
+ "text": " overall",
2587
+ "timestamp": [
2588
+ 157.44,
2589
+ 157.96
2590
+ ]
2591
+ },
2592
+ {
2593
+ "text": " looks",
2594
+ "timestamp": [
2595
+ 157.96,
2596
+ 158.26
2597
+ ]
2598
+ },
2599
+ {
2600
+ "text": " stable,",
2601
+ "timestamp": [
2602
+ 158.26,
2603
+ 158.78
2604
+ ]
2605
+ },
2606
+ {
2607
+ "text": " supported",
2608
+ "timestamp": [
2609
+ 158.78,
2610
+ 159.26
2611
+ ]
2612
+ },
2613
+ {
2614
+ "text": " by",
2615
+ "timestamp": [
2616
+ 159.26,
2617
+ 159.54
2618
+ ]
2619
+ },
2620
+ {
2621
+ "text": " good",
2622
+ "timestamp": [
2623
+ 159.54,
2624
+ 159.84
2625
+ ]
2626
+ },
2627
+ {
2628
+ "text": " monsuits.",
2629
+ "timestamp": [
2630
+ 159.84,
2631
+ 161.14
2632
+ ]
2633
+ },
2634
+ {
2635
+ "text": " The",
2636
+ "timestamp": [
2637
+ 161.52,
2638
+ 161.8
2639
+ ]
2640
+ },
2641
+ {
2642
+ "text": " rupee",
2643
+ "timestamp": [
2644
+ 161.8,
2645
+ 162.06
2646
+ ]
2647
+ },
2648
+ {
2649
+ "text": " weakness",
2650
+ "timestamp": [
2651
+ 162.06,
2652
+ 162.5
2653
+ ]
2654
+ },
2655
+ {
2656
+ "text": " has",
2657
+ "timestamp": [
2658
+ 162.5,
2659
+ 162.84
2660
+ ]
2661
+ },
2662
+ {
2663
+ "text": " partly",
2664
+ "timestamp": [
2665
+ 162.84,
2666
+ 163.16
2667
+ ]
2668
+ },
2669
+ {
2670
+ "text": " offset",
2671
+ "timestamp": [
2672
+ 163.16,
2673
+ 163.72
2674
+ ]
2675
+ },
2676
+ {
2677
+ "text": " tariff",
2678
+ "timestamp": [
2679
+ 163.72,
2680
+ 164.16
2681
+ ]
2682
+ },
2683
+ {
2684
+ "text": " impacts,",
2685
+ "timestamp": [
2686
+ 164.16,
2687
+ 164.82
2688
+ ]
2689
+ },
2690
+ {
2691
+ "text": " but",
2692
+ "timestamp": [
2693
+ 164.82,
2694
+ 165.24
2695
+ ]
2696
+ },
2697
+ {
2698
+ "text": " has",
2699
+ "timestamp": [
2700
+ 165.24,
2701
+ 165.4
2702
+ ]
2703
+ },
2704
+ {
2705
+ "text": " also",
2706
+ "timestamp": [
2707
+ 165.4,
2708
+ 165.8
2709
+ ]
2710
+ },
2711
+ {
2712
+ "text": " affected",
2713
+ "timestamp": [
2714
+ 165.8,
2715
+ 166.26
2716
+ ]
2717
+ },
2718
+ {
2719
+ "text": " foreign",
2720
+ "timestamp": [
2721
+ 166.26,
2722
+ 166.62
2723
+ ]
2724
+ },
2725
+ {
2726
+ "text": " flows",
2727
+ "timestamp": [
2728
+ 166.62,
2729
+ 167.06
2730
+ ]
2731
+ },
2732
+ {
2733
+ "text": " and",
2734
+ "timestamp": [
2735
+ 167.06,
2736
+ 167.76
2737
+ ]
2738
+ },
2739
+ {
2740
+ "text": " liquidity.",
2741
+ "timestamp": [
2742
+ 167.76,
2743
+ 168.6
2744
+ ]
2745
+ },
2746
+ {
2747
+ "text": " With",
2748
+ "timestamp": [
2749
+ 169.76,
2750
+ 169.98
2751
+ ]
2752
+ },
2753
+ {
2754
+ "text": " respect",
2755
+ "timestamp": [
2756
+ 169.98,
2757
+ 170.26
2758
+ ]
2759
+ },
2760
+ {
2761
+ "text": " to",
2762
+ "timestamp": [
2763
+ 170.26,
2764
+ 170.42
2765
+ ]
2766
+ },
2767
+ {
2768
+ "text": " capital",
2769
+ "timestamp": [
2770
+ 170.42,
2771
+ 170.76
2772
+ ]
2773
+ },
2774
+ {
2775
+ "text": " flows,",
2776
+ "timestamp": [
2777
+ 170.76,
2778
+ 171.22
2779
+ ]
2780
+ },
2781
+ {
2782
+ "text": " while",
2783
+ "timestamp": [
2784
+ 171.22,
2785
+ 171.44
2786
+ ]
2787
+ },
2788
+ {
2789
+ "text": " FIIs",
2790
+ "timestamp": [
2791
+ 171.44,
2792
+ 172.02
2793
+ ]
2794
+ },
2795
+ {
2796
+ "text": " have",
2797
+ "timestamp": [
2798
+ 172.02,
2799
+ 172.14
2800
+ ]
2801
+ },
2802
+ {
2803
+ "text": " been",
2804
+ "timestamp": [
2805
+ 172.14,
2806
+ 172.28
2807
+ ]
2808
+ },
2809
+ {
2810
+ "text": " net",
2811
+ "timestamp": [
2812
+ 172.28,
2813
+ 172.5
2814
+ ]
2815
+ },
2816
+ {
2817
+ "text": " sellers,",
2818
+ "timestamp": [
2819
+ 172.5,
2820
+ 173.4
2821
+ ]
2822
+ },
2823
+ {
2824
+ "text": " domestic",
2825
+ "timestamp": [
2826
+ 173.48,
2827
+ 173.82
2828
+ ]
2829
+ },
2830
+ {
2831
+ "text": " institutional",
2832
+ "timestamp": [
2833
+ 173.82,
2834
+ 175.02
2835
+ ]
2836
+ },
2837
+ {
2838
+ "text": " investors",
2839
+ "timestamp": [
2840
+ 175.02,
2841
+ 175.58
2842
+ ]
2843
+ },
2844
+ {
2845
+ "text": " have",
2846
+ "timestamp": [
2847
+ 175.58,
2848
+ 176.4
2849
+ ]
2850
+ },
2851
+ {
2852
+ "text": " provided",
2853
+ "timestamp": [
2854
+ 176.4,
2855
+ 176.74
2856
+ ]
2857
+ },
2858
+ {
2859
+ "text": " support",
2860
+ "timestamp": [
2861
+ 176.74,
2862
+ 177.18
2863
+ ]
2864
+ },
2865
+ {
2866
+ "text": " with",
2867
+ "timestamp": [
2868
+ 177.18,
2869
+ 177.48
2870
+ ]
2871
+ },
2872
+ {
2873
+ "text": " around",
2874
+ "timestamp": [
2875
+ 177.48,
2876
+ 177.74
2877
+ ]
2878
+ },
2879
+ {
2880
+ "text": " $24",
2881
+ "timestamp": [
2882
+ 177.74,
2883
+ 178.32
2884
+ ]
2885
+ },
2886
+ {
2887
+ "text": " billion",
2888
+ "timestamp": [
2889
+ 178.32,
2890
+ 178.92
2891
+ ]
2892
+ },
2893
+ {
2894
+ "text": " in",
2895
+ "timestamp": [
2896
+ 178.92,
2897
+ 180.18
2898
+ ]
2899
+ },
2900
+ {
2901
+ "text": " inflows",
2902
+ "timestamp": [
2903
+ 180.18,
2904
+ 180.82
2905
+ ]
2906
+ },
2907
+ {
2908
+ "text": " in",
2909
+ "timestamp": [
2910
+ 180.82,
2911
+ 181.36
2912
+ ]
2913
+ },
2914
+ {
2915
+ "text": " Q3",
2916
+ "timestamp": [
2917
+ 181.36,
2918
+ 181.86
2919
+ ]
2920
+ },
2921
+ {
2922
+ "text": " FY26,",
2923
+ "timestamp": [
2924
+ 181.86,
2925
+ 183.42
2926
+ ]
2927
+ },
2928
+ {
2929
+ "text": " reinforcing",
2930
+ "timestamp": [
2931
+ 183.84,
2932
+ 184.52
2933
+ ]
2934
+ },
2935
+ {
2936
+ "text": " the",
2937
+ "timestamp": [
2938
+ 184.52,
2939
+ 184.84
2940
+ ]
2941
+ },
2942
+ {
2943
+ "text": " savers",
2944
+ "timestamp": [
2945
+ 184.84,
2946
+ 185.18
2947
+ ]
2948
+ },
2949
+ {
2950
+ "text": " to",
2951
+ "timestamp": [
2952
+ 185.18,
2953
+ 185.34
2954
+ ]
2955
+ },
2956
+ {
2957
+ "text": " investors'",
2958
+ "timestamp": [
2959
+ 185.34,
2960
+ 186.04
2961
+ ]
2962
+ },
2963
+ {
2964
+ "text": " strength.",
2965
+ "timestamp": [
2966
+ 186.04,
2967
+ 186.42
2968
+ ]
2969
+ },
2970
+ {
2971
+ "text": " This",
2972
+ "timestamp": [
2973
+ 186.36,
2974
+ 187.34
2975
+ ]
2976
+ },
2977
+ {
2978
+ "text": " is",
2979
+ "timestamp": [
2980
+ 187.34,
2981
+ 187.48
2982
+ ]
2983
+ },
2984
+ {
2985
+ "text": " also",
2986
+ "timestamp": [
2987
+ 187.48,
2988
+ 187.86
2989
+ ]
2990
+ },
2991
+ {
2992
+ "text": " evident",
2993
+ "timestamp": [
2994
+ 187.86,
2995
+ 188.28
2996
+ ]
2997
+ },
2998
+ {
2999
+ "text": " in",
3000
+ "timestamp": [
3001
+ 188.28,
3002
+ 188.58
3003
+ ]
3004
+ },
3005
+ {
3006
+ "text": " the",
3007
+ "timestamp": [
3008
+ 188.58,
3009
+ 188.68
3010
+ ]
3011
+ },
3012
+ {
3013
+ "text": " strong",
3014
+ "timestamp": [
3015
+ 188.68,
3016
+ 189.04
3017
+ ]
3018
+ },
3019
+ {
3020
+ "text": " IPO",
3021
+ "timestamp": [
3022
+ 189.04,
3023
+ 189.54
3024
+ ]
3025
+ },
3026
+ {
3027
+ "text": " pipeline",
3028
+ "timestamp": [
3029
+ 189.54,
3030
+ 190.08
3031
+ ]
3032
+ },
3033
+ {
3034
+ "text": " expected",
3035
+ "timestamp": [
3036
+ 190.08,
3037
+ 191.22
3038
+ ]
3039
+ },
3040
+ {
3041
+ "text": " for",
3042
+ "timestamp": [
3043
+ 191.22,
3044
+ 191.58
3045
+ ]
3046
+ },
3047
+ {
3048
+ "text": " calendar",
3049
+ "timestamp": [
3050
+ 191.58,
3051
+ 191.94
3052
+ ]
3053
+ },
3054
+ {
3055
+ "text": " 2026.",
3056
+ "timestamp": [
3057
+ 191.94,
3058
+ 193.68
3059
+ ]
3060
+ },
3061
+ {
3062
+ "text": " In",
3063
+ "timestamp": [
3064
+ 194.54,
3065
+ 194.7
3066
+ ]
3067
+ },
3068
+ {
3069
+ "text": " the",
3070
+ "timestamp": [
3071
+ 194.7,
3072
+ 194.8
3073
+ ]
3074
+ },
3075
+ {
3076
+ "text": " banking",
3077
+ "timestamp": [
3078
+ 194.8,
3079
+ 195.12
3080
+ ]
3081
+ },
3082
+ {
3083
+ "text": " sector",
3084
+ "timestamp": [
3085
+ 195.12,
3086
+ 195.54
3087
+ ]
3088
+ },
3089
+ {
3090
+ "text": " specifically,",
3091
+ "timestamp": [
3092
+ 195.54,
3093
+ 196.74
3094
+ ]
3095
+ },
3096
+ {
3097
+ "text": " system",
3098
+ "timestamp": [
3099
+ 196.74,
3100
+ 197.08
3101
+ ]
3102
+ },
3103
+ {
3104
+ "text": " credit",
3105
+ "timestamp": [
3106
+ 197.08,
3107
+ 197.42
3108
+ ]
3109
+ },
3110
+ {
3111
+ "text": " growth",
3112
+ "timestamp": [
3113
+ 197.42,
3114
+ 197.76
3115
+ ]
3116
+ },
3117
+ {
3118
+ "text": " has",
3119
+ "timestamp": [
3120
+ 197.76,
3121
+ 197.92
3122
+ ]
3123
+ },
3124
+ {
3125
+ "text": " been",
3126
+ "timestamp": [
3127
+ 197.92,
3128
+ 198.06
3129
+ ]
3130
+ },
3131
+ {
3132
+ "text": " healthy,",
3133
+ "timestamp": [
3134
+ 198.06,
3135
+ 198.62
3136
+ ]
3137
+ },
3138
+ {
3139
+ "text": " but",
3140
+ "timestamp": [
3141
+ 199.02,
3142
+ 199.16
3143
+ ]
3144
+ },
3145
+ {
3146
+ "text": " the",
3147
+ "timestamp": [
3148
+ 199.16,
3149
+ 199.26
3150
+ ]
3151
+ },
3152
+ {
3153
+ "text": " flows",
3154
+ "timestamp": [
3155
+ 199.26,
3156
+ 199.52
3157
+ ]
3158
+ },
3159
+ {
3160
+ "text": " into",
3161
+ "timestamp": [
3162
+ 199.52,
3163
+ 199.76
3164
+ ]
3165
+ },
3166
+ {
3167
+ "text": " commodities",
3168
+ "timestamp": [
3169
+ 199.76,
3170
+ 200.26
3171
+ ]
3172
+ },
3173
+ {
3174
+ "text": " and",
3175
+ "timestamp": [
3176
+ 200.26,
3177
+ 200.5
3178
+ ]
3179
+ },
3180
+ {
3181
+ "text": " capital",
3182
+ "timestamp": [
3183
+ 200.5,
3184
+ 200.84
3185
+ ]
3186
+ },
3187
+ {
3188
+ "text": " markets",
3189
+ "timestamp": [
3190
+ 200.84,
3191
+ 201.34
3192
+ ]
3193
+ },
3194
+ {
3195
+ "text": " are",
3196
+ "timestamp": [
3197
+ 201.34,
3198
+ 201.92
3199
+ ]
3200
+ },
3201
+ {
3202
+ "text": " putting",
3203
+ "timestamp": [
3204
+ 201.92,
3205
+ 202.16
3206
+ ]
3207
+ },
3208
+ {
3209
+ "text": " more",
3210
+ "timestamp": [
3211
+ 202.16,
3212
+ 202.48
3213
+ ]
3214
+ },
3215
+ {
3216
+ "text": " pressure",
3217
+ "timestamp": [
3218
+ 202.48,
3219
+ 202.88
3220
+ ]
3221
+ },
3222
+ {
3223
+ "text": " on",
3224
+ "timestamp": [
3225
+ 202.88,
3226
+ 203.46
3227
+ ]
3228
+ },
3229
+ {
3230
+ "text": " low",
3231
+ "timestamp": [
3232
+ 203.46,
3233
+ 203.7
3234
+ ]
3235
+ },
3236
+ {
3237
+ "text": "-cost",
3238
+ "timestamp": [
3239
+ 203.7,
3240
+ 203.98
3241
+ ]
3242
+ },
3243
+ {
3244
+ "text": " deposits.",
3245
+ "timestamp": [
3246
+ 203.98,
3247
+ 204.82
3248
+ ]
3249
+ },
3250
+ {
3251
+ "text": " There",
3252
+ "timestamp": [
3253
+ 205.42,
3254
+ 205.64
3255
+ ]
3256
+ },
3257
+ {
3258
+ "text": " is",
3259
+ "timestamp": [
3260
+ 205.64,
3261
+ 205.78
3262
+ ]
3263
+ },
3264
+ {
3265
+ "text": " enhanced",
3266
+ "timestamp": [
3267
+ 205.78,
3268
+ 206.3
3269
+ ]
3270
+ },
3271
+ {
3272
+ "text": " volatility",
3273
+ "timestamp": [
3274
+ 206.3,
3275
+ 206.8
3276
+ ]
3277
+ },
3278
+ {
3279
+ "text": " seen",
3280
+ "timestamp": [
3281
+ 206.8,
3282
+ 207.64
3283
+ ]
3284
+ },
3285
+ {
3286
+ "text": " in",
3287
+ "timestamp": [
3288
+ 207.64,
3289
+ 207.8
3290
+ ]
3291
+ },
3292
+ {
3293
+ "text": " the",
3294
+ "timestamp": [
3295
+ 207.8,
3296
+ 207.88
3297
+ ]
3298
+ },
3299
+ {
3300
+ "text": " banking",
3301
+ "timestamp": [
3302
+ 207.88,
3303
+ 208.16
3304
+ ]
3305
+ },
3306
+ {
3307
+ "text": " sector",
3308
+ "timestamp": [
3309
+ 208.16,
3310
+ 208.52
3311
+ ]
3312
+ },
3313
+ {
3314
+ "text": " liquidity.",
3315
+ "timestamp": [
3316
+ 208.52,
3317
+ 209.34
3318
+ ]
3319
+ },
3320
+ {
3321
+ "text": " While",
3322
+ "timestamp": [
3323
+ 209.7,
3324
+ 209.9
3325
+ ]
3326
+ },
3327
+ {
3328
+ "text": " benchmark",
3329
+ "timestamp": [
3330
+ 209.9,
3331
+ 210.28
3332
+ ]
3333
+ },
3334
+ {
3335
+ "text": " rates",
3336
+ "timestamp": [
3337
+ 210.28,
3338
+ 210.68
3339
+ ]
3340
+ },
3341
+ {
3342
+ "text": " are",
3343
+ "timestamp": [
3344
+ 210.68,
3345
+ 210.84
3346
+ ]
3347
+ },
3348
+ {
3349
+ "text": " reduced,",
3350
+ "timestamp": [
3351
+ 210.84,
3352
+ 211.8
3353
+ ]
3354
+ },
3355
+ {
3356
+ "text": " longer",
3357
+ "timestamp": [
3358
+ 211.8,
3359
+ 212.14
3360
+ ]
3361
+ },
3362
+ {
3363
+ "text": "-term",
3364
+ "timestamp": [
3365
+ 212.14,
3366
+ 212.54
3367
+ ]
3368
+ },
3369
+ {
3370
+ "text": " credit",
3371
+ "timestamp": [
3372
+ 212.54,
3373
+ 212.98
3374
+ ]
3375
+ },
3376
+ {
3377
+ "text": " yields",
3378
+ "timestamp": [
3379
+ 212.98,
3380
+ 213.44
3381
+ ]
3382
+ },
3383
+ {
3384
+ "text": " have",
3385
+ "timestamp": [
3386
+ 213.44,
3387
+ 213.94
3388
+ ]
3389
+ },
3390
+ {
3391
+ "text": " gone",
3392
+ "timestamp": [
3393
+ 213.94,
3394
+ 214.24
3395
+ ]
3396
+ },
3397
+ {
3398
+ "text": " down.",
3399
+ "timestamp": [
3400
+ 214.24,
3401
+ 214.84
3402
+ ]
3403
+ },
3404
+ {
3405
+ "text": " Within",
3406
+ "timestamp": [
3407
+ 216.26,
3408
+ 216.58
3409
+ ]
3410
+ },
3411
+ {
3412
+ "text": " this",
3413
+ "timestamp": [
3414
+ 216.58,
3415
+ 216.82
3416
+ ]
3417
+ },
3418
+ {
3419
+ "text": " context,",
3420
+ "timestamp": [
3421
+ 216.82,
3422
+ 217.54
3423
+ ]
3424
+ },
3425
+ {
3426
+ "text": " coming",
3427
+ "timestamp": [
3428
+ 217.54,
3429
+ 217.78
3430
+ ]
3431
+ },
3432
+ {
3433
+ "text": " to",
3434
+ "timestamp": [
3435
+ 217.78,
3436
+ 217.94
3437
+ ]
3438
+ },
3439
+ {
3440
+ "text": " quota,",
3441
+ "timestamp": [
3442
+ 217.94,
3443
+ 218.48
3444
+ ]
3445
+ },
3446
+ {
3447
+ "text": " we",
3448
+ "timestamp": [
3449
+ 218.48,
3450
+ 218.7
3451
+ ]
3452
+ },
3453
+ {
3454
+ "text": " remain",
3455
+ "timestamp": [
3456
+ 218.7,
3457
+ 218.98
3458
+ ]
3459
+ },
3460
+ {
3461
+ "text": " focused",
3462
+ "timestamp": [
3463
+ 218.98,
3464
+ 219.38
3465
+ ]
3466
+ },
3467
+ {
3468
+ "text": " on",
3469
+ "timestamp": [
3470
+ 219.38,
3471
+ 219.6
3472
+ ]
3473
+ },
3474
+ {
3475
+ "text": " our",
3476
+ "timestamp": [
3477
+ 219.6,
3478
+ 219.78
3479
+ ]
3480
+ },
3481
+ {
3482
+ "text": " strategy",
3483
+ "timestamp": [
3484
+ 219.78,
3485
+ 220.18
3486
+ ]
3487
+ },
3488
+ {
3489
+ "text": " to",
3490
+ "timestamp": [
3491
+ 220.18,
3492
+ 220.8
3493
+ ]
3494
+ },
3495
+ {
3496
+ "text": " scale",
3497
+ "timestamp": [
3498
+ 220.8,
3499
+ 221.24
3500
+ ]
3501
+ },
3502
+ {
3503
+ "text": " responsibly.",
3504
+ "timestamp": [
3505
+ 221.24,
3506
+ 222.42
3507
+ ]
3508
+ },
3509
+ {
3510
+ "text": " This",
3511
+ "timestamp": [
3512
+ 222.98,
3513
+ 223.18
3514
+ ]
3515
+ },
3516
+ {
3517
+ "text": " discipline",
3518
+ "timestamp": [
3519
+ 223.18,
3520
+ 223.6
3521
+ ]
3522
+ },
3523
+ {
3524
+ "text": " is",
3525
+ "timestamp": [
3526
+ 223.6,
3527
+ 223.96
3528
+ ]
3529
+ },
3530
+ {
3531
+ "text": " reflected",
3532
+ "timestamp": [
3533
+ 223.96,
3534
+ 224.38
3535
+ ]
3536
+ },
3537
+ {
3538
+ "text": " in",
3539
+ "timestamp": [
3540
+ 224.38,
3541
+ 224.78
3542
+ ]
3543
+ },
3544
+ {
3545
+ "text": " our",
3546
+ "timestamp": [
3547
+ 224.78,
3548
+ 224.88
3549
+ ]
3550
+ },
3551
+ {
3552
+ "text": " quarterly",
3553
+ "timestamp": [
3554
+ 224.88,
3555
+ 225.22
3556
+ ]
3557
+ },
3558
+ {
3559
+ "text": " performance.",
3560
+ "timestamp": [
3561
+ 225.22,
3562
+ 226.14
3563
+ ]
3564
+ },
3565
+ {
3566
+ "text": " In",
3567
+ "timestamp": [
3568
+ 227.04,
3569
+ 227.24
3570
+ ]
3571
+ },
3572
+ {
3573
+ "text": " the",
3574
+ "timestamp": [
3575
+ 227.24,
3576
+ 227.34
3577
+ ]
3578
+ },
3579
+ {
3580
+ "text": " bank,",
3581
+ "timestamp": [
3582
+ 227.34,
3583
+ 227.94
3584
+ ]
3585
+ },
3586
+ {
3587
+ "text": " net",
3588
+ "timestamp": [
3589
+ 227.94,
3590
+ 228.08
3591
+ ]
3592
+ },
3593
+ {
3594
+ "text": " advances",
3595
+ "timestamp": [
3596
+ 228.08,
3597
+ 228.54
3598
+ ]
3599
+ },
3600
+ {
3601
+ "text": " grew",
3602
+ "timestamp": [
3603
+ 228.54,
3604
+ 228.86
3605
+ ]
3606
+ },
3607
+ {
3608
+ "text": " 16",
3609
+ "timestamp": [
3610
+ 228.86,
3611
+ 229.26
3612
+ ]
3613
+ },
3614
+ {
3615
+ "text": "%",
3616
+ "timestamp": [
3617
+ 229.26,
3618
+ 229.78
3619
+ ]
3620
+ },
3621
+ {
3622
+ "text": " YOY.",
3623
+ "timestamp": [
3624
+ 229.78,
3625
+ 231.16
3626
+ ]
3627
+ },
3628
+ {
3629
+ "text": " This",
3630
+ "timestamp": [
3631
+ 231.64,
3632
+ 231.78
3633
+ ]
3634
+ },
3635
+ {
3636
+ "text": " is",
3637
+ "timestamp": [
3638
+ 231.78,
3639
+ 231.9
3640
+ ]
3641
+ },
3642
+ {
3643
+ "text": " in",
3644
+ "timestamp": [
3645
+ 231.9,
3646
+ 232.1
3647
+ ]
3648
+ },
3649
+ {
3650
+ "text": " line",
3651
+ "timestamp": [
3652
+ 232.1,
3653
+ 232.22
3654
+ ]
3655
+ },
3656
+ {
3657
+ "text": " with",
3658
+ "timestamp": [
3659
+ 232.22,
3660
+ 232.42
3661
+ ]
3662
+ },
3663
+ {
3664
+ "text": " our",
3665
+ "timestamp": [
3666
+ 232.42,
3667
+ 232.56
3668
+ ]
3669
+ },
3670
+ {
3671
+ "text": " stated",
3672
+ "timestamp": [
3673
+ 232.56,
3674
+ 232.82
3675
+ ]
3676
+ },
3677
+ {
3678
+ "text": " philosophy",
3679
+ "timestamp": [
3680
+ 232.82,
3681
+ 233.36
3682
+ ]
3683
+ },
3684
+ {
3685
+ "text": " of",
3686
+ "timestamp": [
3687
+ 233.36,
3688
+ 234.08
3689
+ ]
3690
+ },
3691
+ {
3692
+ "text": " growing",
3693
+ "timestamp": [
3694
+ 234.08,
3695
+ 234.48
3696
+ ]
3697
+ },
3698
+ {
3699
+ "text": " our",
3700
+ "timestamp": [
3701
+ 234.48,
3702
+ 234.76
3703
+ ]
3704
+ },
3705
+ {
3706
+ "text": " advances",
3707
+ "timestamp": [
3708
+ 234.76,
3709
+ 235.2
3710
+ ]
3711
+ },
3712
+ {
3713
+ "text": " in",
3714
+ "timestamp": [
3715
+ 235.2,
3716
+ 235.94
3717
+ ]
3718
+ },
3719
+ {
3720
+ "text": " the",
3721
+ "timestamp": [
3722
+ 235.94,
3723
+ 236.06
3724
+ ]
3725
+ },
3726
+ {
3727
+ "text": " range",
3728
+ "timestamp": [
3729
+ 236.06,
3730
+ 236.34
3731
+ ]
3732
+ },
3733
+ {
3734
+ "text": " of",
3735
+ "timestamp": [
3736
+ 236.34,
3737
+ 236.52
3738
+ ]
3739
+ },
3740
+ {
3741
+ "text": " 1",
3742
+ "timestamp": [
3743
+ 236.52,
3744
+ 236.68
3745
+ ]
3746
+ },
3747
+ {
3748
+ "text": ".5",
3749
+ "timestamp": [
3750
+ 236.68,
3751
+ 237.02
3752
+ ]
3753
+ },
3754
+ {
3755
+ "text": " to",
3756
+ "timestamp": [
3757
+ 237.34,
3758
+ 237.52
3759
+ ]
3760
+ },
3761
+ {
3762
+ "text": " 2",
3763
+ "timestamp": [
3764
+ 237.52,
3765
+ 237.72
3766
+ ]
3767
+ },
3768
+ {
3769
+ "text": " times",
3770
+ "timestamp": [
3771
+ 237.72,
3772
+ 238.1
3773
+ ]
3774
+ },
3775
+ {
3776
+ "text": " nominal",
3777
+ "timestamp": [
3778
+ 238.1,
3779
+ 238.52
3780
+ ]
3781
+ },
3782
+ {
3783
+ "text": " GDP",
3784
+ "timestamp": [
3785
+ 238.52,
3786
+ 238.9
3787
+ ]
3788
+ },
3789
+ {
3790
+ "text": " growth.",
3791
+ "timestamp": [
3792
+ 238.9,
3793
+ 239.52
3794
+ ]
3795
+ },
3796
+ {
3797
+ "text": " We",
3798
+ "timestamp": [
3799
+ 239.34,
3800
+ 240.4
3801
+ ]
3802
+ },
3803
+ {
3804
+ "text": " have",
3805
+ "timestamp": [
3806
+ 240.4,
3807
+ 240.52
3808
+ ]
3809
+ },
3810
+ {
3811
+ "text": " seen",
3812
+ "timestamp": [
3813
+ 240.52,
3814
+ 240.72
3815
+ ]
3816
+ },
3817
+ {
3818
+ "text": " consistent",
3819
+ "timestamp": [
3820
+ 240.72,
3821
+ 241.24
3822
+ ]
3823
+ },
3824
+ {
3825
+ "text": " growth",
3826
+ "timestamp": [
3827
+ 241.24,
3828
+ 241.58
3829
+ ]
3830
+ },
3831
+ {
3832
+ "text": " of",
3833
+ "timestamp": [
3834
+ 241.58,
3835
+ 241.9
3836
+ ]
3837
+ },
3838
+ {
3839
+ "text": " around",
3840
+ "timestamp": [
3841
+ 241.9,
3842
+ 242.14
3843
+ ]
3844
+ },
3845
+ {
3846
+ "text": " 4",
3847
+ "timestamp": [
3848
+ 242.14,
3849
+ 242.38
3850
+ ]
3851
+ },
3852
+ {
3853
+ "text": "%",
3854
+ "timestamp": [
3855
+ 242.38,
3856
+ 242.64
3857
+ ]
3858
+ },
3859
+ {
3860
+ "text": " per",
3861
+ "timestamp": [
3862
+ 242.64,
3863
+ 242.88
3864
+ ]
3865
+ },
3866
+ {
3867
+ "text": " quarter",
3868
+ "timestamp": [
3869
+ 242.88,
3870
+ 243.3
3871
+ ]
3872
+ },
3873
+ {
3874
+ "text": " for",
3875
+ "timestamp": [
3876
+ 243.3,
3877
+ 243.8
3878
+ ]
3879
+ },
3880
+ {
3881
+ "text": " the",
3882
+ "timestamp": [
3883
+ 243.8,
3884
+ 243.88
3885
+ ]
3886
+ },
3887
+ {
3888
+ "text": " last",
3889
+ "timestamp": [
3890
+ 243.88,
3891
+ 244.16
3892
+ ]
3893
+ },
3894
+ {
3895
+ "text": " three",
3896
+ "timestamp": [
3897
+ 244.16,
3898
+ 244.38
3899
+ ]
3900
+ },
3901
+ {
3902
+ "text": " quarters",
3903
+ "timestamp": [
3904
+ 244.38,
3905
+ 244.74
3906
+ ]
3907
+ },
3908
+ {
3909
+ "text": " of",
3910
+ "timestamp": [
3911
+ 244.74,
3912
+ 245.38
3913
+ ]
3914
+ },
3915
+ {
3916
+ "text": " this",
3917
+ "timestamp": [
3918
+ 245.38,
3919
+ 245.6
3920
+ ]
3921
+ },
3922
+ {
3923
+ "text": " financial",
3924
+ "timestamp": [
3925
+ 245.6,
3926
+ 246.02
3927
+ ]
3928
+ },
3929
+ {
3930
+ "text": " year.",
3931
+ "timestamp": [
3932
+ 246.02,
3933
+ 246.98
3934
+ ]
3935
+ },
3936
+ {
3937
+ "text": " Having",
3938
+ "timestamp": [
3939
+ 248.0,
3940
+ 248.28
3941
+ ]
3942
+ },
3943
+ {
3944
+ "text": " deposits",
3945
+ "timestamp": [
3946
+ 248.28,
3947
+ 248.78
3948
+ ]
3949
+ },
3950
+ {
3951
+ "text": " grew",
3952
+ "timestamp": [
3953
+ 248.78,
3954
+ 248.98
3955
+ ]
3956
+ },
3957
+ {
3958
+ "text": " 15",
3959
+ "timestamp": [
3960
+ 248.98,
3961
+ 249.3
3962
+ ]
3963
+ },
3964
+ {
3965
+ "text": "%",
3966
+ "timestamp": [
3967
+ 249.3,
3968
+ 249.64
3969
+ ]
3970
+ },
3971
+ {
3972
+ "text": " year",
3973
+ "timestamp": [
3974
+ 249.64,
3975
+ 249.9
3976
+ ]
3977
+ },
3978
+ {
3979
+ "text": " on",
3980
+ "timestamp": [
3981
+ 249.9,
3982
+ 250.06
3983
+ ]
3984
+ },
3985
+ {
3986
+ "text": " year,",
3987
+ "timestamp": [
3988
+ 250.06,
3989
+ 250.58
3990
+ ]
3991
+ },
3992
+ {
3993
+ "text": " we",
3994
+ "timestamp": [
3995
+ 250.58,
3996
+ 251.06
3997
+ ]
3998
+ },
3999
+ {
4000
+ "text": " have",
4001
+ "timestamp": [
4002
+ 251.06,
4003
+ 251.14
4004
+ ]
4005
+ },
4006
+ {
4007
+ "text": " been",
4008
+ "timestamp": [
4009
+ 251.14,
4010
+ 251.28
4011
+ ]
4012
+ },
4013
+ {
4014
+ "text": " focusing",
4015
+ "timestamp": [
4016
+ 251.28,
4017
+ 251.66
4018
+ ]
4019
+ },
4020
+ {
4021
+ "text": " on",
4022
+ "timestamp": [
4023
+ 251.66,
4024
+ 251.88
4025
+ ]
4026
+ },
4027
+ {
4028
+ "text": " granular",
4029
+ "timestamp": [
4030
+ 251.88,
4031
+ 252.28
4032
+ ]
4033
+ },
4034
+ {
4035
+ "text": " casa",
4036
+ "timestamp": [
4037
+ 252.28,
4038
+ 252.58
4039
+ ]
4040
+ },
4041
+ {
4042
+ "text": " growth.",
4043
+ "timestamp": [
4044
+ 252.58,
4045
+ 253.14
4046
+ ]
4047
+ },
4048
+ {
4049
+ "text": " This",
4050
+ "timestamp": [
4051
+ 253.62,
4052
+ 253.78
4053
+ ]
4054
+ },
4055
+ {
4056
+ "text": " is",
4057
+ "timestamp": [
4058
+ 253.78,
4059
+ 253.9
4060
+ ]
4061
+ },
4062
+ {
4063
+ "text": " on",
4064
+ "timestamp": [
4065
+ 253.9,
4066
+ 254.04
4067
+ ]
4068
+ },
4069
+ {
4070
+ "text": " the",
4071
+ "timestamp": [
4072
+ 254.04,
4073
+ 254.14
4074
+ ]
4075
+ },
4076
+ {
4077
+ "text": " back",
4078
+ "timestamp": [
4079
+ 254.14,
4080
+ 254.48
4081
+ ]
4082
+ },
4083
+ {
4084
+ "text": " of",
4085
+ "timestamp": [
4086
+ 254.48,
4087
+ 255.1
4088
+ ]
4089
+ },
4090
+ {
4091
+ "text": " our",
4092
+ "timestamp": [
4093
+ 255.1,
4094
+ 255.26
4095
+ ]
4096
+ },
4097
+ {
4098
+ "text": " focus",
4099
+ "timestamp": [
4100
+ 255.26,
4101
+ 255.6
4102
+ ]
4103
+ },
4104
+ {
4105
+ "text": " segment",
4106
+ "timestamp": [
4107
+ 255.6,
4108
+ 255.98
4109
+ ]
4110
+ },
4111
+ {
4112
+ "text": " strategy,",
4113
+ "timestamp": [
4114
+ 255.98,
4115
+ 256.58
4116
+ ]
4117
+ },
4118
+ {
4119
+ "text": " and",
4120
+ "timestamp": [
4121
+ 256.58,
4122
+ 257.06
4123
+ ]
4124
+ },
4125
+ {
4126
+ "text": " I",
4127
+ "timestamp": [
4128
+ 257.06,
4129
+ 257.16
4130
+ ]
4131
+ },
4132
+ {
4133
+ "text": " will",
4134
+ "timestamp": [
4135
+ 257.16,
4136
+ 257.3
4137
+ ]
4138
+ },
4139
+ {
4140
+ "text": " come",
4141
+ "timestamp": [
4142
+ 257.3,
4143
+ 257.5
4144
+ ]
4145
+ },
4146
+ {
4147
+ "text": " to",
4148
+ "timestamp": [
4149
+ 257.5,
4150
+ 257.66
4151
+ ]
4152
+ },
4153
+ {
4154
+ "text": " that",
4155
+ "timestamp": [
4156
+ 257.66,
4157
+ 257.9
4158
+ ]
4159
+ },
4160
+ {
4161
+ "text": " shortly.",
4162
+ "timestamp": [
4163
+ 257.9,
4164
+ 258.72
4165
+ ]
4166
+ },
4167
+ {
4168
+ "text": " We",
4169
+ "timestamp": [
4170
+ 259.52,
4171
+ 259.84
4172
+ ]
4173
+ },
4174
+ {
4175
+ "text": " called",
4176
+ "timestamp": [
4177
+ 259.84,
4178
+ 260.14
4179
+ ]
4180
+ },
4181
+ {
4182
+ "text": " out",
4183
+ "timestamp": [
4184
+ 260.14,
4185
+ 260.32
4186
+ ]
4187
+ },
4188
+ {
4189
+ "text": " unsecured",
4190
+ "timestamp": [
4191
+ 260.32,
4192
+ 260.9
4193
+ ]
4194
+ },
4195
+ {
4196
+ "text": " retail",
4197
+ "timestamp": [
4198
+ 260.9,
4199
+ 261.18
4200
+ ]
4201
+ },
4202
+ {
4203
+ "text": " loans",
4204
+ "timestamp": [
4205
+ 261.18,
4206
+ 261.68
4207
+ ]
4208
+ },
4209
+ {
4210
+ "text": " earlier.",
4211
+ "timestamp": [
4212
+ 261.68,
4213
+ 262.46
4214
+ ]
4215
+ },
4216
+ {
4217
+ "text": " We",
4218
+ "timestamp": [
4219
+ 262.98,
4220
+ 263.1
4221
+ ]
4222
+ },
4223
+ {
4224
+ "text": " said",
4225
+ "timestamp": [
4226
+ 263.1,
4227
+ 263.28
4228
+ ]
4229
+ },
4230
+ {
4231
+ "text": " we",
4232
+ "timestamp": [
4233
+ 263.28,
4234
+ 263.42
4235
+ ]
4236
+ },
4237
+ {
4238
+ "text": " would",
4239
+ "timestamp": [
4240
+ 263.42,
4241
+ 263.54
4242
+ ]
4243
+ },
4244
+ {
4245
+ "text": " grow",
4246
+ "timestamp": [
4247
+ 263.54,
4248
+ 265.04
4249
+ ]
4250
+ },
4251
+ {
4252
+ "text": " gradually",
4253
+ "timestamp": [
4254
+ 265.04,
4255
+ 265.54
4256
+ ]
4257
+ },
4258
+ {
4259
+ "text": " and",
4260
+ "timestamp": [
4261
+ 265.54,
4262
+ 265.9
4263
+ ]
4264
+ },
4265
+ {
4266
+ "text": " responsibly.",
4267
+ "timestamp": [
4268
+ 265.9,
4269
+ 266.84
4270
+ ]
4271
+ },
4272
+ {
4273
+ "text": " with",
4274
+ "timestamp": [
4275
+ 266.6,
4276
+ 267.44
4277
+ ]
4278
+ },
4279
+ {
4280
+ "text": " the",
4281
+ "timestamp": [
4282
+ 267.44,
4283
+ 267.56
4284
+ ]
4285
+ },
4286
+ {
4287
+ "text": " unsecured",
4288
+ "timestamp": [
4289
+ 267.56,
4290
+ 268.0
4291
+ ]
4292
+ },
4293
+ {
4294
+ "text": " assets",
4295
+ "timestamp": [
4296
+ 268.0,
4297
+ 268.38
4298
+ ]
4299
+ },
4300
+ {
4301
+ "text": " growing",
4302
+ "timestamp": [
4303
+ 268.38,
4304
+ 268.72
4305
+ ]
4306
+ },
4307
+ {
4308
+ "text": " in",
4309
+ "timestamp": [
4310
+ 268.72,
4311
+ 268.94
4312
+ ]
4313
+ },
4314
+ {
4315
+ "text": " absolute",
4316
+ "timestamp": [
4317
+ 268.94,
4318
+ 269.38
4319
+ ]
4320
+ },
4321
+ {
4322
+ "text": " terms",
4323
+ "timestamp": [
4324
+ 269.38,
4325
+ 269.84
4326
+ ]
4327
+ },
4328
+ {
4329
+ "text": " in",
4330
+ "timestamp": [
4331
+ 269.84,
4332
+ 270.36
4333
+ ]
4334
+ },
4335
+ {
4336
+ "text": " the",
4337
+ "timestamp": [
4338
+ 270.36,
4339
+ 270.46
4340
+ ]
4341
+ },
4342
+ {
4343
+ "text": " first",
4344
+ "timestamp": [
4345
+ 270.46,
4346
+ 270.72
4347
+ ]
4348
+ },
4349
+ {
4350
+ "text": " instance.",
4351
+ "timestamp": [
4352
+ 270.72,
4353
+ 271.34
4354
+ ]
4355
+ },
4356
+ {
4357
+ "text": " And",
4358
+ "timestamp": [
4359
+ 271.76,
4360
+ 271.88
4361
+ ]
4362
+ },
4363
+ {
4364
+ "text": " that's",
4365
+ "timestamp": [
4366
+ 271.88,
4367
+ 272.12
4368
+ ]
4369
+ },
4370
+ {
4371
+ "text": " exactly",
4372
+ "timestamp": [
4373
+ 272.12,
4374
+ 272.62
4375
+ ]
4376
+ },
4377
+ {
4378
+ "text": " what",
4379
+ "timestamp": [
4380
+ 272.62,
4381
+ 272.88
4382
+ ]
4383
+ },
4384
+ {
4385
+ "text": " we",
4386
+ "timestamp": [
4387
+ 272.88,
4388
+ 273.06
4389
+ ]
4390
+ },
4391
+ {
4392
+ "text": " have",
4393
+ "timestamp": [
4394
+ 273.06,
4395
+ 273.2
4396
+ ]
4397
+ },
4398
+ {
4399
+ "text": " done",
4400
+ "timestamp": [
4401
+ 273.2,
4402
+ 273.48
4403
+ ]
4404
+ },
4405
+ {
4406
+ "text": " and",
4407
+ "timestamp": [
4408
+ 273.48,
4409
+ 274.04
4410
+ ]
4411
+ },
4412
+ {
4413
+ "text": " will",
4414
+ "timestamp": [
4415
+ 274.04,
4416
+ 274.22
4417
+ ]
4418
+ },
4419
+ {
4420
+ "text": " continue",
4421
+ "timestamp": [
4422
+ 274.22,
4423
+ 274.58
4424
+ ]
4425
+ },
4426
+ {
4427
+ "text": " to",
4428
+ "timestamp": [
4429
+ 274.58,
4430
+ 275.02
4431
+ ]
4432
+ },
4433
+ {
4434
+ "text": " do",
4435
+ "timestamp": [
4436
+ 275.02,
4437
+ 275.2
4438
+ ]
4439
+ },
4440
+ {
4441
+ "text": " so.",
4442
+ "timestamp": [
4443
+ 275.2,
4444
+ 275.7
4445
+ ]
4446
+ },
4447
+ {
4448
+ "text": " The",
4449
+ "timestamp": [
4450
+ 276.32,
4451
+ 276.5
4452
+ ]
4453
+ },
4454
+ {
4455
+ "text": " bank's",
4456
+ "timestamp": [
4457
+ 276.5,
4458
+ 277.16
4459
+ ]
4460
+ },
4461
+ {
4462
+ "text": " NIL",
4463
+ "timestamp": [
4464
+ 277.16,
4465
+ 277.36
4466
+ ]
4467
+ },
4468
+ {
4469
+ "text": " continues",
4470
+ "timestamp": [
4471
+ 277.36,
4472
+ 277.82
4473
+ ]
4474
+ },
4475
+ {
4476
+ "text": " to",
4477
+ "timestamp": [
4478
+ 277.82,
4479
+ 278.0
4480
+ ]
4481
+ },
4482
+ {
4483
+ "text": " be",
4484
+ "timestamp": [
4485
+ 278.0,
4486
+ 278.22
4487
+ ]
4488
+ },
4489
+ {
4490
+ "text": " healthy",
4491
+ "timestamp": [
4492
+ 278.22,
4493
+ 278.98
4494
+ ]
4495
+ },
4496
+ {
4497
+ "text": " at",
4498
+ "timestamp": [
4499
+ 278.98,
4500
+ 279.42
4501
+ ]
4502
+ },
4503
+ {
4504
+ "text": " 4",
4505
+ "timestamp": [
4506
+ 279.42,
4507
+ 279.62
4508
+ ]
4509
+ },
4510
+ {
4511
+ "text": ".54%,",
4512
+ "timestamp": [
4513
+ 279.62,
4514
+ 281.64
4515
+ ]
4516
+ },
4517
+ {
4518
+ "text": " supported",
4519
+ "timestamp": [
4520
+ 281.64,
4521
+ 282.68
4522
+ ]
4523
+ },
4524
+ {
4525
+ "text": " by",
4526
+ "timestamp": [
4527
+ 282.68,
4528
+ 282.94
4529
+ ]
4530
+ },
4531
+ {
4532
+ "text": " a",
4533
+ "timestamp": [
4534
+ 282.94,
4535
+ 283.1
4536
+ ]
4537
+ },
4538
+ {
4539
+ "text": " low",
4540
+ "timestamp": [
4541
+ 283.1,
4542
+ 283.28
4543
+ ]
4544
+ },
4545
+ {
4546
+ "text": " cost",
4547
+ "timestamp": [
4548
+ 283.28,
4549
+ 283.58
4550
+ ]
4551
+ },
4552
+ {
4553
+ "text": " of",
4554
+ "timestamp": [
4555
+ 283.58,
4556
+ 283.74
4557
+ ]
4558
+ },
4559
+ {
4560
+ "text": " funds.",
4561
+ "timestamp": [
4562
+ 283.74,
4563
+ 284.54
4564
+ ]
4565
+ },
4566
+ {
4567
+ "text": " Credit",
4568
+ "timestamp": [
4569
+ 284.9,
4570
+ 285.2
4571
+ ]
4572
+ },
4573
+ {
4574
+ "text": " costs,",
4575
+ "timestamp": [
4576
+ 285.2,
4577
+ 285.62
4578
+ ]
4579
+ },
4580
+ {
4581
+ "text": " as",
4582
+ "timestamp": [
4583
+ 285.62,
4584
+ 285.72
4585
+ ]
4586
+ },
4587
+ {
4588
+ "text": " indicated",
4589
+ "timestamp": [
4590
+ 285.72,
4591
+ 286.14
4592
+ ]
4593
+ },
4594
+ {
4595
+ "text": " previously,",
4596
+ "timestamp": [
4597
+ 286.14,
4598
+ 287.22
4599
+ ]
4600
+ },
4601
+ {
4602
+ "text": " continue",
4603
+ "timestamp": [
4604
+ 287.22,
4605
+ 287.54
4606
+ ]
4607
+ },
4608
+ {
4609
+ "text": " the",
4610
+ "timestamp": [
4611
+ 287.54,
4612
+ 287.78
4613
+ ]
4614
+ },
4615
+ {
4616
+ "text": " downward",
4617
+ "timestamp": [
4618
+ 287.78,
4619
+ 288.1
4620
+ ]
4621
+ },
4622
+ {
4623
+ "text": " trend,",
4624
+ "timestamp": [
4625
+ 288.1,
4626
+ 288.7
4627
+ ]
4628
+ },
4629
+ {
4630
+ "text": " supported",
4631
+ "timestamp": [
4632
+ 288.94,
4633
+ 289.44
4634
+ ]
4635
+ },
4636
+ {
4637
+ "text": " by",
4638
+ "timestamp": [
4639
+ 289.44,
4640
+ 289.84
4641
+ ]
4642
+ },
4643
+ {
4644
+ "text": " updated",
4645
+ "timestamp": [
4646
+ 289.84,
4647
+ 290.58
4648
+ ]
4649
+ },
4650
+ {
4651
+ "text": " underwriting",
4652
+ "timestamp": [
4653
+ 290.58,
4654
+ 291.06
4655
+ ]
4656
+ },
4657
+ {
4658
+ "text": " models",
4659
+ "timestamp": [
4660
+ 291.06,
4661
+ 291.48
4662
+ ]
4663
+ },
4664
+ {
4665
+ "text": " and",
4666
+ "timestamp": [
4667
+ 291.48,
4668
+ 292.04
4669
+ ]
4670
+ },
4671
+ {
4672
+ "text": " enhanced",
4673
+ "timestamp": [
4674
+ 292.04,
4675
+ 292.46
4676
+ ]
4677
+ },
4678
+ {
4679
+ "text": " collection",
4680
+ "timestamp": [
4681
+ 292.46,
4682
+ 292.88
4683
+ ]
4684
+ },
4685
+ {
4686
+ "text": " efforts.",
4687
+ "timestamp": [
4688
+ 292.88,
4689
+ 293.52
4690
+ ]
4691
+ },
4692
+ {
4693
+ "text": " Credit",
4694
+ "timestamp": [
4695
+ 323.32,
4696
+ 323.32
4697
+ ]
4698
+ },
4699
+ {
4700
+ "text": " costs",
4701
+ "timestamp": [
4702
+ 323.32,
4703
+ 323.32
4704
+ ]
4705
+ },
4706
+ {
4707
+ "text": " are",
4708
+ "timestamp": [
4709
+ 323.32,
4710
+ 323.32
4711
+ ]
4712
+ },
4713
+ {
4714
+ "text": " down",
4715
+ "timestamp": [
4716
+ 323.32,
4717
+ 323.32
4718
+ ]
4719
+ },
4720
+ {
4721
+ "text": " sequentially",
4722
+ "timestamp": [
4723
+ 323.32,
4724
+ 323.32
4725
+ ]
4726
+ },
4727
+ {
4728
+ "text": " from",
4729
+ "timestamp": [
4730
+ 323.32,
4731
+ 323.32
4732
+ ]
4733
+ },
4734
+ {
4735
+ "text": " 93",
4736
+ "timestamp": [
4737
+ 323.32,
4738
+ 323.32
4739
+ ]
4740
+ },
4741
+ {
4742
+ "text": " basis",
4743
+ "timestamp": [
4744
+ 323.32,
4745
+ 323.32
4746
+ ]
4747
+ },
4748
+ {
4749
+ "text": " points",
4750
+ "timestamp": [
4751
+ 323.32,
4752
+ 323.32
4753
+ ]
4754
+ },
4755
+ {
4756
+ "text": " in",
4757
+ "timestamp": [
4758
+ 323.32,
4759
+ 323.32
4760
+ ]
4761
+ },
4762
+ {
4763
+ "text": " Q1",
4764
+ "timestamp": [
4765
+ 323.32,
4766
+ 323.32
4767
+ ]
4768
+ },
4769
+ {
4770
+ "text": " to",
4771
+ "timestamp": [
4772
+ 323.32,
4773
+ 323.32
4774
+ ]
4775
+ },
4776
+ {
4777
+ "text": " 79",
4778
+ "timestamp": [
4779
+ 323.32,
4780
+ 323.32
4781
+ ]
4782
+ },
4783
+ {
4784
+ "text": " basis",
4785
+ "timestamp": [
4786
+ 323.32,
4787
+ 323.32
4788
+ ]
4789
+ },
4790
+ {
4791
+ "text": " points",
4792
+ "timestamp": [
4793
+ 323.32,
4794
+ 323.32
4795
+ ]
4796
+ },
4797
+ {
4798
+ "text": " in",
4799
+ "timestamp": [
4800
+ 323.32,
4801
+ 323.32
4802
+ ]
4803
+ },
4804
+ {
4805
+ "text": " Q1.",
4806
+ "timestamp": [
4807
+ 323.32,
4808
+ 323.32
4809
+ ]
4810
+ }
4811
+ ]
4812
+ }
4813
+ },
4814
+ "timestamp_granularity": "word"
4815
+ }
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_171648/benchmark_stats.json ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "space": "Ratnesh-dev/transcribe-diarize",
3
+ "audio_file": "Q3-FY26_15min.mp3",
4
+ "task": "transcribe",
5
+ "language": null,
6
+ "models": [
7
+ "Whisper Large V3 Turbo",
8
+ "NVIDIA Parakeet v3"
9
+ ],
10
+ "benchmark_timing": {
11
+ "total_client_wall_clock_seconds": 97.6962
12
+ },
13
+ "leaderboard_by_gpu_window_seconds": [
14
+ {
15
+ "model": "NVIDIA Parakeet v3",
16
+ "api_name": "/transcribe_parakeet_v3",
17
+ "gpu_window_seconds": 4.3778,
18
+ "inference_seconds": 3.6975,
19
+ "client_wall_clock_seconds": 15.3745
20
+ }
21
+ ],
22
+ "summary": [
23
+ {
24
+ "model": "Whisper Large V3 Turbo",
25
+ "status": "error",
26
+ "api_name": "/transcribe_whisper_large_v3_turbo",
27
+ "client_wall_clock_seconds": 82.3215,
28
+ "gpu_window_seconds": null,
29
+ "inference_seconds": null,
30
+ "error": "GPU task aborted"
31
+ },
32
+ {
33
+ "model": "NVIDIA Parakeet v3",
34
+ "status": "ok",
35
+ "api_name": "/transcribe_parakeet_v3",
36
+ "client_wall_clock_seconds": 15.3745,
37
+ "gpu_window_seconds": 4.3778,
38
+ "inference_seconds": 3.6975,
39
+ "error": null
40
+ }
41
+ ]
42
+ }
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_171648/nvidia_parakeet_v3.json ADDED
The diff for this file is too large to render. See raw diff
 
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_171648/whisper_large_v3_turbo.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model": "Whisper Large V3 Turbo",
3
+ "api_name": "/transcribe_whisper_large_v3_turbo",
4
+ "status": "error",
5
+ "client_wall_clock_seconds": 82.3215,
6
+ "effective_model_options_json": "{\"num_beams\": 1, \"temperature\": 0.0}",
7
+ "error": "GPU task aborted"
8
+ }
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_183018/benchmark_stats.json ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "space": "Ratnesh-dev/transcribe-diarize",
3
+ "audio_file": "Q3-FY26_5min.mp3",
4
+ "task": "diarize",
5
+ "language": null,
6
+ "models": [
7
+ "pyannote/speaker-diarization-community-1"
8
+ ],
9
+ "benchmark_timing": {
10
+ "total_client_wall_clock_seconds": 6.6803
11
+ },
12
+ "leaderboard_by_gpu_window_seconds": [],
13
+ "summary": [
14
+ {
15
+ "model": "pyannote/speaker-diarization-community-1",
16
+ "status": "error",
17
+ "api_name": "/diarize_pyannote_community_1",
18
+ "client_wall_clock_seconds": 6.6803,
19
+ "gpu_window_seconds": null,
20
+ "inference_seconds": null,
21
+ "error": "You have exceeded your GPU quota (60s requested vs. 22s left). Try again in 21:23:55"
22
+ }
23
+ ]
24
+ }
archive/legacy_pre_rebuild_20260407_133100/benchmark_outputs/20260223_183018/pyannote_speaker-diarization-community-1.json ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model": "pyannote/speaker-diarization-community-1",
3
+ "api_name": "/diarize_pyannote_community_1",
4
+ "status": "error",
5
+ "client_wall_clock_seconds": 6.6803,
6
+ "effective_model_options_json": "{\"long_audio_chunk_threshold_s\": 300, \"chunk_duration_s\": 180, \"chunk_overlap_s\": 8}",
7
+ "num_speakers": null,
8
+ "min_speakers": null,
9
+ "max_speakers": null,
10
+ "error": "You have exceeded your GPU quota (60s requested vs. 22s left). Try again in 21:23:55"
11
+ }