Reading additional input from stdin...
OpenAI Codex v0.128.0 (research preview)
--------
workdir: J:\CLAUDE\PROJECTS\Wakeword
model: gpt-5.5
provider: openai
approval: never
sandbox: danger-full-access
reasoning effort: xhigh
reasoning summaries: none
session id: 019e0330-25c6-7c52-95ca-5045f171cae7
--------
user
READ-ONLY INVESTIGATION. Do NOT modify any files. Do NOT commit. Do NOT push.

Environment: Windows 11, bash shell. Project root: J:\CLAUDE\PROJECTS\Wakeword.

PROBLEM
Job 49 (latest training job) failed with:
```
DispatchError: No ONNX function found for <OpOverload(op='aten.adaptive_max_pool2d', overload='default')>
```

This happened at the ONNX export step (`torch.onnx.export` of the trained TemporalCNN). The SDK has produced 17 successful trained models historically (visible in SQLite job_queue.db). Something has regressed.

Find:
1. **Was this op always present in the model?** Search `src/violawake_sdk/` for `adaptive_max_pool2d`, `AdaptiveMaxPool2d`, `aten.adaptive_max_pool2d`. Where in the TemporalCNN architecture is it used?

2. **Why does the new ONNX exporter fail?** torch's ONNX export has changed across versions. The old `torch.onnx.export` had broader op coverage; the new "dynamo-based" path is stricter. Check:
   - What version of torch is installed in the container? `docker exec wakeword-backend-1 python -c "import torch; print(torch.__version__)"`
   - What version of onnxscript? `docker exec wakeword-backend-1 python -c "import onnxscript; print(onnxscript.__version__)"`
   - Read the SDK's export call: `grep -n "torch.onnx.export" src/violawake_sdk/`. What `dynamo=` flag is used?

3. **Did the 17 historical successes use a different torch version?** Look at the dates of those jobs (`SELECT id, created_at FROM jobs WHERE status='completed' ORDER BY id`). Then check git history of `console/backend/requirements.txt` and `pyproject.toml` for torch version pinning.

4. **What was the RECENT change that broke it?**
   - Maybe `torchaudio>=2.1` in `[training]` resolved to torchaudio 2.10, which dragged torch 2.10 with it.
   - Old torch (e.g. 2.4) might have had broader ONNX op coverage.
   - Check: was torch pinned more strictly in `console/backend/requirements.txt` before my session? `git show 54f20b4:console/backend/requirements.txt | grep -i torch`
   - Check: what specific torch version is in `viola-whisper` host venv (where past training presumably worked)? Compare to container.

5. **Workarounds:**
   - Replace `nn.AdaptiveMaxPool2d((1,1))` with `nn.MaxPool2d` of fixed kernel (depends on input shape, may need refactor).
   - Use `torch.onnx.export(..., dynamo=False)` to use the legacy exporter that has broader op coverage.
   - Pin torch to an older version that handles this op.

CONSTRAINTS
- READ-ONLY. Do NOT modify files, commit, or restart anything.

Report:
- Where in the SDK code adaptive_max_pool2d is used.
- The torch version installed vs. what's in pyproject.toml vs. host venv.
- Whether the 17 historical successes were on an older torch.
- A concrete recommended one-line fix (with the diff to apply if the user approves).
codex
I’ll keep this read-only and anchor the answer in the live container, repo code, SQLite state, and git history. First I’m checking the SDK export path and installed package versions, then I’ll compare historical job dates against dependency changes.
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'docker exec wakeword-backend-1 python -c "import torch; print(torch.__version__)"' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "rg -n \"adaptive_max_pool2d|AdaptiveMaxPool2d|aten\\.adaptive_max_pool2d\" src/violawake_sdk" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "rg -n \"torch\\.onnx\\.export\" src/violawake_sdk" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'git status --short' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'docker exec wakeword-backend-1 python -c "import onnxscript; print(onnxscript.__version__)"' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "rg --files | rg \"(job_queue\\.db"'$|requirements'"\\.txt"'$|pyproject'"\\.toml"'$|uv'"\\.lock"'$|poetry'"\\.lock"'$|requirements.*'"\\.txt"'$)"' in J:\CLAUDE\PROJECTS\Wakeword
 succeeded in 1088ms:
 M console/backend/requirements.txt
?? .codex_inv1.txt
?? .codex_inv2.txt
?? .codex_inv3.txt
?? .codex_log_a.txt
?? .codex_log_alpha.txt
?? .codex_log_b.txt
?? .codex_log_c.txt
?? .codex_log_corpus.txt
?? .codex_log_delta.txt
?? .codex_log_inv1.txt
?? .codex_log_inv2.txt
?? .codex_log_inv3.txt
?? .codex_prompt_a.txt
?? .codex_prompt_alpha.txt
?? .codex_prompt_b.txt
?? .codex_prompt_c.txt
?? .codex_prompt_corpus.txt
?? .codex_prompt_delta.txt

2026-05-07T16:06:18.564172Z ERROR codex_core::tools::router: error=Exit code: 1
Wall time: 1.1 seconds
Output:

 exited 1 in 1122ms:
 succeeded in 1104ms:
src/violawake_sdk\training\temporal_model.py:271:        torch.onnx.export(
src/violawake_sdk\tools\train.py:2153:    torch.onnx.export(

2026-05-07T16:06:18.668566Z ERROR codex_core::tools::router: error=Exit code: 1
Wall time: 1.2 seconds
Output:

 exited 1 in 1181ms:
 succeeded in 4522ms:
0.7.0

 succeeded in 6982ms:
2.11.0+cu130

codex
The direct SDK search found the ONNX export calls but no literal `AdaptiveMaxPool2d` text under `src/violawake_sdk`, which is already an important discrepancy with the failing exported graph. I’m widening the read-only search to the model code and generated/console paths, then I’ll inspect the actual lines around the export calls.
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'rg -n "Adaptive.*Pool|adaptive_.*pool|max_pool|pool" src console pyproject.toml' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "rg -n -C 8 \"torch\\.onnx\\.export\" src/violawake_sdk" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'Get-ChildItem -Force' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'Get-ChildItem -Path . -Recurse -Filter job_queue.db -File | Select-Object -ExpandProperty FullName' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'rg -n "torch|torchaudio|onnx|onnxscript" pyproject.toml console/backend/requirements.txt' in J:\CLAUDE\PROJECTS\Wakeword
 succeeded in 321ms:
src/violawake_sdk\training\temporal_model.py-263-        from pathlib import Path
src/violawake_sdk\training\temporal_model.py-264-
src/violawake_sdk\training\temporal_model.py-265-        model = model.cpu()
src/violawake_sdk\training\temporal_model.py-266-        model.eval()
src/violawake_sdk\training\temporal_model.py-267-        dummy_input = torch.zeros(1, seq_len, embedding_dim)
src/violawake_sdk\training\temporal_model.py-268-
src/violawake_sdk\training\temporal_model.py-269-        Path(output_path).parent.mkdir(parents=True, exist_ok=True)
src/violawake_sdk\training\temporal_model.py-270-
src/violawake_sdk\training\temporal_model.py:271:        torch.onnx.export(
src/violawake_sdk\training\temporal_model.py-272-            model,
src/violawake_sdk\training\temporal_model.py-273-            dummy_input,
src/violawake_sdk\training\temporal_model.py-274-            str(output_path),
src/violawake_sdk\training\temporal_model.py-275-            input_names=["embeddings"],
src/violawake_sdk\training\temporal_model.py-276-            output_names=["score"],
src/violawake_sdk\training\temporal_model.py-277-            dynamic_axes={
src/violawake_sdk\training\temporal_model.py-278-                "embeddings": {0: "batch"},
src/violawake_sdk\training\temporal_model.py-279-                "score": {0: "batch"},
--
src/violawake_sdk\tools\train.py-2145-        print(f"\nAveraging: {averaging_method}")
src/violawake_sdk\tools\train.py-2146-        print(f"Best val loss: {best_val_loss:.4f} at epoch {best_epoch}")
src/violawake_sdk\tools\train.py-2147-        print(f"Duration: {training_duration:.1f}s")
src/violawake_sdk\tools\train.py-2148-
src/violawake_sdk\tools\train.py-2149-    # Export
src/violawake_sdk\tools\train.py-2150-    output_path.parent.mkdir(parents=True, exist_ok=True)
src/violawake_sdk\tools\train.py-2151-    model.eval()
src/violawake_sdk\tools\train.py-2152-    dummy_input = torch.zeros(1, embedding_dim)
src/violawake_sdk\tools\train.py:2153:    torch.onnx.export(
src/violawake_sdk\tools\train.py-2154-        model,
src/violawake_sdk\tools\train.py-2155-        dummy_input,
src/violawake_sdk\tools\train.py-2156-        str(output_path),
src/violawake_sdk\tools\train.py-2157-        input_names=["embedding"],
src/violawake_sdk\tools\train.py-2158-        output_names=["score"],
src/violawake_sdk\tools\train.py-2159-        dynamic_axes={"embedding": {0: "batch"}, "score": {0: "batch"}},
src/violawake_sdk\tools\train.py-2160-        opset_version=11,
src/violawake_sdk\tools\train.py-2161-    )

 succeeded in 335ms:
pyproject.toml:19:    "onnx",
pyproject.toml:41:    "onnxruntime>=1.17",
pyproject.toml:62:    "kokoro-onnx>=0.4",
pyproject.toml:76:# TFLite: lightweight inference backend (alternative to onnxruntime)
pyproject.toml:89:    "torch>=2.1",
pyproject.toml:90:    "torchaudio>=2.1",
pyproject.toml:100:    "onnx>=1.15",
pyproject.toml:101:    # Required for ONNX export of the trained TemporalCNN — torch.onnx.export
pyproject.toml:102:    # uses onnxscript internally for newer opsets. Was missing from the
pyproject.toml:104:    "onnxscript>=0.6",
pyproject.toml:115:# Sample generation: TTS-based sample creation (no torch needed)
pyproject.toml:190:    "*.onnx",
pyproject.toml:240:# numpy/torch return types are complex; these codes are noisy in strict mode
pyproject.toml:247:    "onnxruntime.*",
pyproject.toml:252:    "kokoro_onnx.*",
pyproject.toml:256:    "torchaudio.*",
pyproject.toml:257:    "torch.*",
console/backend/requirements.txt:26:onnxscript

 succeeded in 816ms:
console\backend\alembic\env.py:16:from sqlalchemy import pool
console\backend\alembic\env.py:81:        poolclass=pool.NullPool,
src\violawake_sdk\tools\train.py:85:# Edge-TTS voice pool for diverse positive and negative generation
src\violawake_sdk\tools\train.py:332:            with concurrent.futures.ThreadPoolExecutor() as pool:
src\violawake_sdk\tools\train.py:333:                return pool.submit(lambda: asyncio.run(_synth())).result(timeout=30)
src\violawake_sdk\tools\train.py:979:    """Extract mean-pooled OWW embeddings for legacy MLP architecture.
src\violawake_sdk\tools\train.py:1855:    """Legacy MLP training on mean-pooled OWW embeddings.
src\violawake_sdk\tools\train.py:2435:            print("Using legacy MLP architecture (single-frame, mean-pooled embeddings).\n")
src\violawake_sdk\training\evaluate.py:102:    pooled_std = np.sqrt(0.5 * (pos.var() + neg.var()))
src\violawake_sdk\training\evaluate.py:103:    if pooled_std < 1e-10:
src\violawake_sdk\training\evaluate.py:106:    return float((pos.mean() - neg.mean()) / pooled_std)
src\violawake_sdk\training\evaluate.py:253:    """Build a scorer for mean-pooled OpenWakeWord embedding models."""
src\violawake_sdk\training\temporal_model.py:4:Instead of mean-pooling N frames of 96-dim OWW embeddings into a single vector,
src\violawake_sdk\training\temporal_model.py:12:   by adaptive pooling and a small MLP head. ~15K params.
src\violawake_sdk\training\temporal_model.py:54:        adaptive max pooling and a small MLP classifier.
src\violawake_sdk\training\temporal_model.py:58:            Conv1d(64, 32, k=3) -> BN -> ReLU -> AdaptiveMaxPool(1)
src\violawake_sdk\training\temporal_model.py:85:            self.pool = nn.AdaptiveMaxPool1d(1)
src\violawake_sdk\training\temporal_model.py:109:            x = self.pool(x).squeeze(-1)  # (batch, 32)
console\backend\app\rate_limit.py:14:    Cloudflare edge IP, which collapses all end users into a small pool of

 succeeded in 817ms:


    Directory: J:\CLAUDE\PROJECTS\Wakeword


Mode                 LastWriteTime         Length Name                                                                 
----                 -------------         ------ ----                                                                 
d-----         3/18/2026   8:35 PM                .benchmarks                                                          
d-----         3/29/2026   4:51 PM                .codex_tmp                                                           
d--h--          5/7/2026  11:06 AM                .git                                                                 
d-----         3/17/2026   7:47 PM                .github                                                              
d-----         3/28/2026   1:58 PM                .mypy_cache                                                          
d-----         3/18/2026   8:35 PM                .pytest_cache                                                        
d-----          5/6/2026  10:23 PM                .ruff_cache                                                          
d-----         3/26/2026   5:55 PM                .viola                                                               
d-----          5/6/2026  11:56 PM                .wrangler                                                            
d-----          4/5/2026   8:36 AM                benchmark_oww                                                        
d-----          4/5/2026   8:39 AM                benchmark_v2                                                         
d-----          4/5/2026   2:24 PM                console                                                              
d-----         3/26/2026   4:04 PM                corpus                                                               
d-----         3/27/2026  11:20 PM                data                                                                 
d-----          4/5/2026   5:19 AM                dist                                                                 
d-----          5/7/2026   6:39 AM                docs                                                                 
d-----          4/5/2026   8:36 AM                eval_clean                                                           
d-----         3/28/2026   8:26 AM                examples                                                             
d-----          4/5/2026   8:36 AM                experiments                                                          
d-----         3/26/2026   5:55 PM                logs                                                                 
d-----          4/5/2026   3:44 AM                models                                                               
d-----          5/6/2026  11:58 PM                scripts                                                              
d-----         3/28/2026   1:01 PM                src                                                                  
d-----          5/6/2026   8:27 PM                tests                                                                
d-----          5/6/2026   7:38 PM                tools                                                                
d-----          4/5/2026   7:23 AM                violawake_data                                                       
d-----          5/6/2026   8:30 PM                wasm                                                                 
d-----         3/27/2026  11:55 PM                _training_corpus                                                     
-a----          5/7/2026  11:04 AM           3186 .codex_inv1.txt                                                      
-a----          5/7/2026  11:05 AM           4116 .codex_inv2.txt                                                      
-a----          5/7/2026  11:05 AM           2800 .codex_inv3.txt                                                      
-a----          5/7/2026  12:01 AM         474721 .codex_log.txt                                                       
-a----          5/7/2026  12:15 AM         159688 .codex_log_a.txt                                                     
-a----          5/7/2026   6:50 AM        3485686 .codex_log_alpha.txt                                                 
-a----          5/7/2026  12:19 AM         417870 .codex_log_b.txt                                                     
-a----          5/7/2026  12:17 AM         641895 .codex_log_c.txt                                                     
-a----          5/7/2026   8:02 AM        1315159 .codex_log_corpus.txt                                                
-a----          5/7/2026   6:41 AM         577026 .codex_log_delta.txt                                                 
-a----          5/7/2026  11:05 AM              0 .codex_log_inv1.txt                                                  
-a----          5/7/2026  11:05 AM              0 .codex_log_inv2.txt                                                  
-a----          5/7/2026  11:05 AM              0 .codex_log_inv3.txt                                                  
-a----          5/6/2026  11:51 PM           4764 .codex_prompt.txt                                                    
-a----          5/7/2026  12:06 AM           2101 .codex_prompt_a.txt                                                  
-a----          5/7/2026   6:29 AM           4510 .codex_prompt_alpha.txt                                              
-a----          5/7/2026  12:06 AM           2253 .codex_prompt_b.txt                                                  
-a----          5/7/2026  12:06 AM           3583 .codex_prompt_c.txt                                                  
-a----          5/7/2026   7:50 AM           4845 .codex_prompt_corpus.txt                                             
-a----          5/7/2026   6:29 AM           4243 .codex_prompt_delta.txt                                              
-a----          5/7/2026   6:49 AM          53248 .coverage                                                            
-a----          4/5/2026   7:16 AM            550 .dockerignore                                                        
-a----          4/5/2026   8:13 AM            383 .env                                                                 
-a----          5/7/2026   6:39 AM           2131 .env.production                                                      
-a----          5/7/2026  12:02 AM           1649 .gitignore                                                           
-a----          5/6/2026   9:06 PM          40151 .openapi_live.json                                                   
-a----         3/28/2026  12:30 AM            436 .pre-commit-config.yaml                                              
-a----         3/19/2026   8:48 AM          35466 .viola-nova-ww10-output.txt                                          
-a----          4/5/2026   5:02 AM          33898 ACCURACY_MISSION.md                                                  
-a----          4/5/2026   8:36 AM          27611 ADVERSARY_AUDIT.md                                                   
-a----         3/28/2026   6:05 PM          32097 BUILD_VS_BUY_AUDIT.md                                                
-a----          5/7/2026  12:04 AM           7068 CHANGELOG.md                                                         
-a----          5/6/2026  10:14 PM          12205 CLAUDE.md                                                            
-a----         3/28/2026   4:17 PM           7449 CONTRIBUTING.md                                                      
-a----          4/5/2026   8:36 AM          28114 diagnostic_embedding_analysis.py                                     
-a----          5/7/2026   7:57 AM           1882 docker-compose.production.yml                                        
-a----         3/28/2026   5:51 PM          14703 E2E_READINESS.md                                                     
-a----          5/6/2026   7:44 PM          20253 FUNCTIONAL_GAP_ANALYSIS.md                                           
-a----          5/6/2026   7:44 PM          30293 LAUNCH_READINESS.md                                                  
-a----         3/28/2026   8:25 AM           8295 LICENSE                                                              
-a----          4/5/2026   2:26 PM           9993 PROGRESS.md                                                          
-a----          5/7/2026   8:38 AM           7205 pyproject.toml                                                       
-a----         3/28/2026   9:01 AM              0 python                                                               
-a----         3/26/2026  12:05 PM            329 railway.json                                                         
-a----         3/27/2026  10:22 AM            734 railway.toml                                                         
-a----          5/6/2026   8:30 PM          50135 README.md                                                            
-a----          4/5/2026   2:23 PM           3517 RELEASE_NOTES.md                                                     
-a----          4/5/2026   2:23 PM           2621 SECURITY.md                                                          
-a----         3/26/2026  10:19 PM              0 test_de-DE-BerndNeural.mp3                                           
-a----         3/26/2026  10:19 PM              0 test_de-DE-ChristophNeural.mp3                                       
-a----         3/26/2026  10:19 PM              0 test_de-DE-ElkeNeural.mp3                                            
-a----         3/26/2026  10:19 PM              0 test_de-DE-GiselaNeural.mp3                                          
-a----         3/26/2026  10:19 PM              0 test_de-DE-KasperNeural.mp3                                          
-a----         3/26/2026  10:19 PM              0 test_de-DE-KlarissaNeural.mp3                                        
-a----         3/26/2026  10:19 PM              0 test_de-DE-KlausNeural.mp3                                           
-a----         3/26/2026  10:19 PM              0 test_de-DE-LouisaNeural.mp3                                          
-a----         3/26/2026  10:19 PM              0 test_de-DE-MajaNeural.mp3                                            
-a----         3/26/2026  10:19 PM              0 test_de-DE-RalfNeural.mp3                                            
-a----         3/26/2026  10:19 PM              0 test_de-DE-TanjaNeural.mp3                                           
-a----         3/26/2026  10:17 PM              0 test_en-AU-AnnetteNeural.mp3                                         
-a----         3/26/2026  10:17 PM              0 test_en-AU-CarlyNeural.mp3                                           
-a----         3/26/2026  10:17 PM              0 test_en-AU-DarrenNeural.mp3                                          
-a----         3/26/2026  10:17 PM              0 test_en-AU-DuncanNeural.mp3                                          
-a----         3/26/2026  10:17 PM              0 test_en-AU-ElsieNeural.mp3                                           
-a----         3/26/2026  10:17 PM              0 test_en-AU-FreyaNeural.mp3                                           
-a----         3/26/2026  10:17 PM              0 test_en-AU-JoanneNeural.mp3                                          
-a----         3/26/2026  10:17 PM              0 test_en-AU-KenNeural.mp3                                             
-a----         3/26/2026  10:17 PM              0 test_en-AU-KimNeural.mp3                                             
-a----         3/26/2026  10:17 PM              0 test_en-AU-NeilNeural.mp3                                            
-a----         3/26/2026  10:17 PM              0 test_en-AU-TimNeural.mp3                                             
-a----         3/26/2026  10:17 PM              0 test_en-AU-TinaNeural.mp3                                            
-a----         3/26/2026  10:17 PM              0 test_en-GB-AbbiNeural.mp3                                            
-a----         3/26/2026  10:17 PM              0 test_en-GB-AdaMultilingualNeural.mp3                                 
-a----         3/26/2026  10:17 PM              0 test_en-GB-AlfieNeural.mp3                                           
-a----         3/26/2026  10:17 PM              0 test_en-GB-BellaNeural.mp3                                           
-a----         3/26/2026  10:17 PM              0 test_en-GB-ElliotNeural.mp3                                          
-a----         3/26/2026  10:17 PM              0 test_en-GB-EthanNeural.mp3                                           
-a----         3/26/2026  10:17 PM              0 test_en-GB-HollieNeural.mp3                                          
-a----         3/26/2026  10:17 PM              0 test_en-GB-NoahNeural.mp3                                            
-a----         3/26/2026  10:17 PM              0 test_en-GB-OliverNeural.mp3                                          
-a----         3/26/2026  10:17 PM              0 test_en-GB-OliviaNeural.mp3                                          
-a----         3/26/2026  10:17 PM              0 test_en-GB-OllieMultilingualNeural.mp3                               
-a----         3/26/2026  10:17 PM              0 test_en-IN-AaravNeural.mp3                                           
-a----         3/26/2026  10:17 PM              0 test_en-IN-AartiIndicNeural.mp3                                      
-a----         3/26/2026  10:17 PM              0 test_en-IN-AartiNeural.mp3                                           
-a----         3/26/2026  10:17 PM              0 test_en-IN-AashiNeural.mp3                                           
-a----         3/26/2026  10:17 PM              0 test_en-IN-AnanyaNeural.mp3                                          
-a----         3/26/2026  10:17 PM              0 test_en-IN-ArjunIndicNeural.mp3                                      
-a----         3/26/2026  10:17 PM              0 test_en-IN-ArjunNeural.mp3                                           
-a----         3/26/2026  10:17 PM              0 test_en-IN-KavyaNeural.mp3                                           
-a----         3/26/2026  10:17 PM              0 test_en-IN-KunalNeural.mp3                                           
-a----         3/26/2026  10:17 PM              0 test_en-IN-NeerjaIndicNeural.mp3                                     
-a----         3/26/2026  10:17 PM              0 test_en-IN-PrabhatIndicNeural.mp3                                    
-a----         3/26/2026  10:17 PM              0 test_en-IN-RehaanNeural.mp3                                          
-a----         3/26/2026  10:18 PM              0 test_en-US-AdamMultilingualNeural.mp3                                
-a----         3/26/2026  10:18 PM              0 test_en-US-AlloyMultilingualNeural.mp3                               
-a----         3/26/2026  10:18 PM              0 test_en-US-AlloyTurboMultilingualNeural.mp3                          
-a----         3/26/2026  10:18 PM              0 test_en-US-AmandaMultilingualNeural.mp3                              
-a----         3/26/2026  10:18 PM              0 test_en-US-AmberNeural.mp3                                           
-a----         3/26/2026  10:18 PM              0 test_en-US-AshleyNeural.mp3                                          
-a----         3/26/2026  10:18 PM              0 test_en-US-BrandonMultilingualNeural.mp3                             
-a----         3/26/2026  10:18 PM              0 test_en-US-BrandonNeural.mp3                                         
-a----         3/26/2026  10:18 PM              0 test_en-US-ChristopherMultilingualNeural.mp3                         
-a----         3/26/2026  10:18 PM              0 test_en-US-CoraMultilingualNeural.mp3                                
-a----         3/26/2026  10:18 PM              0 test_en-US-CoraNeural.mp3                                            
-a----         3/26/2026  10:18 PM              0 test_en-US-DavisMultilingualNeural.mp3                               
-a----         3/26/2026  10:18 PM              0 test_en-US-DavisNeural.mp3                                           
-a----         3/26/2026  10:18 PM              0 test_en-US-DerekMultilingualNeural.mp3                               
-a----         3/26/2026  10:18 PM              0 test_en-US-DustinMultilingualNeural.mp3                              
-a----         3/26/2026  10:18 PM              0 test_en-US-EchoMultilingualNeural.mp3                                
-a----         3/26/2026  10:18 PM              0 test_en-US-EchoTurboMultilingualNeural.mp3                           
-a----         3/26/2026  10:18 PM              0 test_en-US-ElizabethNeural.mp3                                       
-a----         3/26/2026  10:18 PM              0 test_en-US-EvelynMultilingualNeural.mp3                              
-a----         3/26/2026  10:18 PM              0 test_en-US-FableMultilingualNeural.mp3                               
-a----         3/26/2026  10:18 PM              0 test_en-US-FableTurboMultilingualNeural.mp3                          
-a----         3/26/2026  10:18 PM              0 test_en-US-JacobNeural.mp3                                           
-a----         3/26/2026  10:18 PM              0 test_en-US-JaneNeural.mp3                                            
-a----         3/26/2026  10:18 PM              0 test_en-US-JasonNeural.mp3                                           
-a----         3/26/2026  10:18 PM              0 test_en-US-JennyMultilingualNeural.mp3                               
-a----         3/26/2026  10:18 PM              0 test_en-US-KaiNeural.mp3                                             
-a----         3/26/2026  10:18 PM              0 test_en-US-LewisMultilingualNeural.mp3                               
-a----         3/26/2026  10:18 PM              0 test_en-US-LolaMultilingualNeural.mp3                                
-a----         3/26/2026  10:18 PM              0 test_en-US-LunaNeural.mp3                                            
-a----         3/26/2026  10:18 PM              0 test_en-US-MonicaNeural.mp3                                          
-a----         3/26/2026  10:18 PM              0 test_en-US-NancyMultilingualNeural.mp3                               
-a----         3/26/2026  10:18 PM              0 test_en-US-NancyNeural.mp3                                           
-a----         3/26/2026  10:18 PM              0 test_en-US-NovaMultilingualNeural.mp3                                
-a----         3/26/2026  10:18 PM              0 test_en-US-NovaTurboMultilingualNeural.mp3                           
-a----         3/26/2026  10:18 PM              0 test_en-US-OnyxMultilingualNeural.mp3                                
-a----         3/26/2026  10:18 PM              0 test_en-US-OnyxTurboMultilingualNeural.mp3                           
-a----         3/26/2026  10:18 PM              0 test_en-US-PhoebeMultilingualNeural.mp3                              
-a----         3/26/2026  10:18 PM              0 test_en-US-RyanMultilingualNeural.mp3                                
-a----         3/26/2026  10:18 PM              0 test_en-US-SamuelMultilingualNeural.mp3                              
-a----         3/26/2026  10:18 PM              0 test_en-US-SaraNeural.mp3                                            
-a----         3/26/2026  10:18 PM              0 test_en-US-SerenaMultilingualNeural.mp3                              
-a----         3/26/2026  10:18 PM              0 test_en-US-ShimmerMultilingualNeural.mp3                             
-a----         3/26/2026  10:18 PM              0 test_en-US-ShimmerTurboMultilingualNeural.mp3                        
-a----         3/26/2026  10:18 PM              0 test_en-US-SteffanMultilingualNeural.mp3                             
-a----         3/26/2026  10:18 PM              0 test_en-US-TonyNeural.mp3                                            
-a----         3/26/2026  10:19 PM              0 test_es-ES-AbrilNeural.mp3                                           
-a----         3/26/2026  10:19 PM              0 test_es-ES-ArabellaMultilingualNeural.mp3                            
-a----         3/26/2026  10:19 PM              0 test_es-ES-ArnauNeural.mp3                                           
-a----         3/26/2026  10:19 PM              0 test_es-ES-DarioNeural.mp3                                           
-a----         3/26/2026  10:19 PM              0 test_es-ES-EliasNeural.mp3                                           
-a----         3/26/2026  10:19 PM              0 test_es-ES-EstrellaNeural.mp3                                        
-a----         3/26/2026  10:19 PM              0 test_es-ES-IreneNeural.mp3                                           
-a----         3/26/2026  10:19 PM              0 test_es-ES-IsidoraMultilingualNeural.mp3                             
-a----         3/26/2026  10:19 PM              0 test_es-ES-LaiaNeural.mp3                                            
-a----         3/26/2026  10:19 PM              0 test_es-ES-LiaNeural.mp3                                             
-a----         3/26/2026  10:19 PM              0 test_es-ES-NilNeural.mp3                                             
-a----         3/26/2026  10:19 PM              0 test_es-ES-SaulNeural.mp3                                            
-a----         3/26/2026  10:19 PM              0 test_es-ES-TeoNeural.mp3                                             
-a----         3/26/2026  10:19 PM              0 test_es-ES-TrianaNeural.mp3                                          
-a----         3/26/2026  10:19 PM              0 test_es-ES-TristanMultilingualNeural.mp3                             
-a----         3/26/2026  10:19 PM              0 test_es-ES-VeraNeural.mp3                                            
-a----         3/26/2026  10:19 PM              0 test_es-ES-XimenaMultilingualNeural.mp3                              
-a----         3/26/2026  10:19 PM              0 test_es-MX-BeatrizNeural.mp3                                         
-a----         3/26/2026  10:19 PM              0 test_es-MX-CandelaNeural.mp3                                         
-a----         3/26/2026  10:19 PM              0 test_es-MX-CarlotaNeural.mp3                                         
-a----         3/26/2026  10:19 PM              0 test_es-MX-CecilioNeural.mp3                                         
-a----         3/26/2026  10:19 PM              0 test_es-MX-DaliaMultilingualNeural.mp3                               
-a----         3/26/2026  10:19 PM              0 test_es-MX-GerardoNeural.mp3                                         
-a----         3/26/2026  10:19 PM              0 test_es-MX-JorgeMultilingualNeural.mp3                               
-a----         3/26/2026  10:19 PM              0 test_es-MX-LarissaNeural.mp3                                         
-a----         3/26/2026  10:19 PM              0 test_es-MX-LibertoNeural.mp3                                         
-a----         3/26/2026  10:19 PM              0 test_es-MX-LucianoNeural.mp3                                         
-a----         3/26/2026  10:19 PM              0 test_es-MX-MarinaNeural.mp3                                          
-a----         3/26/2026  10:19 PM              0 test_es-MX-NuriaNeural.mp3                                           
-a----         3/26/2026  10:19 PM              0 test_es-MX-PelayoNeural.mp3                                          
-a----         3/26/2026  10:19 PM              0 test_es-MX-RenataNeural.mp3                                          
-a----         3/26/2026  10:19 PM              0 test_es-MX-YagoNeural.mp3                                            
-a----         3/26/2026  10:19 PM              0 test_fi-FI-SelmaNeural.mp3                                           
-a----         3/26/2026  10:20 PM              0 test_fr-FR-AlainNeural.mp3                                           
-a----         3/26/2026  10:20 PM              0 test_fr-FR-BrigitteNeural.mp3                                        
-a----         3/26/2026  10:20 PM              0 test_fr-FR-CelesteNeural.mp3                                         
-a----         3/26/2026  10:20 PM              0 test_fr-FR-ClaudeNeural.mp3                                          
-a----         3/26/2026  10:20 PM              0 test_fr-FR-CoralieNeural.mp3                                         
-a----         3/26/2026  10:20 PM              0 test_fr-FR-JacquelineNeural.mp3                                      
-a----         3/26/2026  10:20 PM              0 test_fr-FR-JeromeNeural.mp3                                          
-a----         3/26/2026  10:20 PM              0 test_fr-FR-JosephineNeural.mp3                                       
-a----         3/26/2026  10:20 PM              0 test_fr-FR-LucienMultilingualNeural.mp3                              
-a----         3/26/2026  10:20 PM              0 test_fr-FR-MauriceNeural.mp3                                         
-a----         3/26/2026  10:20 PM              0 test_fr-FR-YvesNeural.mp3                                            
-a----         3/26/2026  10:20 PM              0 test_fr-FR-YvetteNeural.mp3                                          
-a----         3/26/2026  10:20 PM              0 test_it-IT-AlessioMultilingualNeural.mp3                             
-a----         3/26/2026  10:20 PM              0 test_it-IT-BenignoNeural.mp3                                         
-a----         3/26/2026  10:20 PM              0 test_it-IT-CalimeroNeural.mp3                                        
-a----         3/26/2026  10:20 PM              0 test_it-IT-CataldoNeural.mp3                                         
-a----         3/26/2026  10:20 PM              0 test_it-IT-FabiolaNeural.mp3                                         
-a----         3/26/2026  10:20 PM              0 test_it-IT-FiammaNeural.mp3                                          
-a----         3/26/2026  10:20 PM              0 test_it-IT-GianniNeural.mp3                                          
-a----         3/26/2026  10:20 PM              0 test_it-IT-ImeldaNeural.mp3                                          
-a----         3/26/2026  10:20 PM              0 test_it-IT-IrmaNeural.mp3                                            
-a----         3/26/2026  10:20 PM              0 test_it-IT-IsabellaMultilingualNeural.mp3                            
-a----         3/26/2026  10:20 PM              0 test_it-IT-LisandroNeural.mp3                                        
-a----         3/26/2026  10:20 PM              0 test_it-IT-MarcelloMultilingualNeural.mp3                            
-a----         3/26/2026  10:20 PM              0 test_it-IT-PalmiraNeural.mp3                                         
-a----         3/26/2026  10:20 PM              0 test_it-IT-PierinaNeural.mp3                                         
-a----         3/26/2026  10:20 PM              0 test_it-IT-RinaldoNeural.mp3                                         
-a----         3/26/2026  10:15 PM          14400 test_long.mp3                                                        
-a----         3/28/2026  12:05 AM            835 test_model.config.json                                               
-a----         3/28/2026  12:04 AM         102378 test_model.onnx                                                      
-a----         3/26/2026  10:20 PM              0 test_nb-NO-IselinNeural.mp3                                          
-a----         3/26/2026  10:20 PM              0 test_pl-PL-AgnieszkaNeural.mp3                                       
-a----         3/26/2026  10:20 PM              0 test_pt-BR-BrendaNeural.mp3                                          
-a----         3/26/2026  10:20 PM              0 test_pt-BR-DonatoNeural.mp3                                          
-a----         3/26/2026  10:20 PM              0 test_pt-BR-ElzaNeural.mp3                                            
-a----         3/26/2026  10:20 PM              0 test_pt-BR-FabioNeural.mp3                                           
-a----         3/26/2026  10:20 PM              0 test_pt-BR-GiovannaNeural.mp3                                        
-a----         3/26/2026  10:20 PM              0 test_pt-BR-HumbertoNeural.mp3                                        
-a----         3/26/2026  10:20 PM              0 test_pt-BR-JulioNeural.mp3                                           
-a----         3/26/2026  10:20 PM              0 test_pt-BR-LeilaNeural.mp3                                           
-a----         3/26/2026  10:20 PM              0 test_pt-BR-LeticiaNeural.mp3                                         
-a----         3/26/2026  10:20 PM              0 test_pt-BR-MacerioMultilingualNeural.mp3                             
-a----         3/26/2026  10:20 PM              0 test_pt-BR-ManuelaNeural.mp3                                         
-a----         3/26/2026  10:20 PM              0 test_pt-BR-NicolauNeural.mp3                                         
-a----         3/26/2026  10:20 PM              0 test_pt-BR-ValerioNeural.mp3                                         
-a----         3/26/2026  10:20 PM              0 test_pt-BR-YaraNeural.mp3                                            
-a----         3/26/2026  10:20 PM              0 test_pt-PT-FernandaNeural.mp3                                        
-a----         3/26/2026  10:15 PM           9936 test_short.mp3                                                       
-a----         3/26/2026  10:20 PM              0 test_sv-SE-HilleviNeural.mp3                                         
-a----         3/27/2026  10:27 AM          11422 _write_wake_detector.py                                              



 succeeded in 2654ms:
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\job_queue.db

exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "rg -n -C 12 \"AdaptiveMaxPool|class TemporalCNN|def forward|torch\\.onnx\\.export|dynamo|opset_version\" src/violawake_sdk/training/temporal_model.py" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "rg -n -C 6 \"torch\\.onnx\\.export|dynamo|opset_version\" src/violawake_sdk/tools/train.py" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "sqlite3 console/backend/data/job_queue.db \"SELECT id, created_at FROM jobs WHERE status='completed' ORDER BY id;\"" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'rg -n -C 4 "torch|torchaudio|onnx|onnxscript" pyproject.toml console/backend/requirements.txt' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'git show 54f20b4:console/backend/requirements.txt | Select-String -Pattern "torch"' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'git log --oneline --decorate -- console/backend/requirements.txt pyproject.toml' in J:\CLAUDE\PROJECTS\Wakeword
 succeeded in 428ms:
37-_TORCH_AVAILABLE = False
38-try:
39-    import torch
40-    import torch.nn as nn
41-
42-    _TORCH_AVAILABLE = True
43-except ImportError:
44-    pass
45-
46-
47-if _TORCH_AVAILABLE:
48-
49:    class TemporalCNN(nn.Module):
50-        """1D CNN over OWW embedding frames.
51-
52-        Applies 1D convolutions along the time axis to capture local temporal
53-        patterns (e.g., the phoneme sequence "vee-oh-lah"), followed by
54-        adaptive max pooling and a small MLP classifier.
55-
56-        Architecture:
57-            Conv1d(96, 64, k=3) -> BN -> ReLU -> Dropout
58:            Conv1d(64, 32, k=3) -> BN -> ReLU -> AdaptiveMaxPool(1)
59-            Linear(32, 16) -> ReLU -> Dropout -> Linear(16, 1) -> Sigmoid
60-
61-        Total params: ~12K (well under 500K target).
62-
63-        Args:
64-            embedding_dim: Dimension of each OWW embedding frame (default 96).
65-            seq_len: Expected sequence length (used for ONNX export; runtime
66-                accepts any length >= 3).
67-            dropout: Dropout rate (default 0.3).
68-        """
69-
70-        def __init__(
--
73-            seq_len: int = 9,
74-            dropout: float = 0.3,
75-        ) -> None:
76-            super().__init__()
77-            self.embedding_dim = embedding_dim
78-            self.seq_len = seq_len
79-
80-            # Conv layers operate on (batch, channels=embedding_dim, time=seq_len)
81-            self.conv1 = nn.Conv1d(embedding_dim, 64, kernel_size=3, padding=1)
82-            self.bn1 = nn.BatchNorm1d(64)
83-            self.conv2 = nn.Conv1d(64, 32, kernel_size=3, padding=1)
84-            self.bn2 = nn.BatchNorm1d(32)
85:            self.pool = nn.AdaptiveMaxPool1d(1)
86-            self.drop1 = nn.Dropout(dropout)
87-
88-            self.head = nn.Sequential(
89-                nn.Linear(32, 16),
90-                nn.ReLU(),
91-                nn.Dropout(dropout * 0.7),
92-                nn.Linear(16, 1),
93-                nn.Sigmoid(),
94-            )
95-
96:        def forward(self, x: torch.Tensor) -> torch.Tensor:
97-            """Forward pass.
98-
99-            Args:
100-                x: (batch, seq_len, embedding_dim) tensor of OWW embeddings.
101-
102-            Returns:
103-                (batch, 1) wake word probability.
104-            """
105-            # (batch, seq, emb) -> (batch, emb, seq) for Conv1d
106-            x = x.transpose(1, 2)
107-            x = self.drop1(torch.relu(self.bn1(self.conv1(x))))
108-            x = torch.relu(self.bn2(self.conv2(x)))
--
145-                batch_first=True,
146-                bidirectional=True,
147-            )
148-            self.drop = nn.Dropout(dropout)
149-            self.head = nn.Sequential(
150-                nn.Linear(hidden_dim * 2, 16),
151-                nn.ReLU(),
152-                nn.Dropout(dropout * 0.7),
153-                nn.Linear(16, 1),
154-                nn.Sigmoid(),
155-            )
156-
157:        def forward(self, x: torch.Tensor) -> torch.Tensor:
158-            """Forward pass.
159-
160-            Args:
161-                x: (batch, seq_len, embedding_dim) tensor of OWW embeddings.
162-
163-            Returns:
164-                (batch, 1) wake word probability.
165-            """
166-            # GRU output: (batch, seq_len, hidden*2), hidden: (2, batch, hidden)
167-            _, hidden = self.gru(x)
168-            # Concatenate forward and backward final hidden states
169-            combined = torch.cat([hidden[0], hidden[1]], dim=-1)  # (batch, hidden*2)
--
213-                batch_first=True,
214-            )
215-            self.gru_drop = nn.Dropout(dropout)
216-
217-            self.head = nn.Sequential(
218-                nn.Linear(gru_hidden, 16),
219-                nn.ReLU(),
220-                nn.Dropout(dropout * 0.7),
221-                nn.Linear(16, 1),
222-                nn.Sigmoid(),
223-            )
224-
225:        def forward(self, x: torch.Tensor) -> torch.Tensor:
226-            """Forward pass.
227-
228-            Args:
229-                x: (batch, seq_len, embedding_dim) tensor of OWW embeddings.
230-
231-            Returns:
232-                (batch, 1) wake word probability.
233-            """
234-            # Conv: (batch, seq, emb) -> (batch, emb, seq) -> conv -> (batch, ch, seq)
235-            conv_in = x.transpose(1, 2)
236-            conv_out = self.conv_drop(torch.relu(self.bn(self.conv(conv_in))))
237-            # Back to (batch, seq, ch) for GRU
--
240-            hidden = self.gru_drop(hidden.squeeze(0))  # (batch, gru_hidden)
241-            return self.head(hidden)
242-
243-    def count_parameters(model: nn.Module) -> int:
244-        """Count total trainable parameters in a model."""
245-        return sum(p.numel() for p in model.parameters() if p.requires_grad)
246-
247-    def export_temporal_onnx(
248-        model: nn.Module,
249-        output_path: str,
250-        seq_len: int = 9,
251-        embedding_dim: int = 96,
252:        opset_version: int = 11,
253-    ) -> None:
254-        """Export a temporal model to ONNX format.
255-
256-        Args:
257-            model: Trained temporal model (TemporalCNN, TemporalGRU, or TemporalConvGRU).
258-            output_path: Path to save the .onnx file.
259-            seq_len: Fixed sequence length for the exported model.
260-            embedding_dim: Embedding dimension (default 96).
261:            opset_version: ONNX opset version (default 11).
262-        """
263-        from pathlib import Path
264-
265-        model = model.cpu()
266-        model.eval()
267-        dummy_input = torch.zeros(1, seq_len, embedding_dim)
268-
269-        Path(output_path).parent.mkdir(parents=True, exist_ok=True)
270-
271:        torch.onnx.export(
272-            model,
273-            dummy_input,
274-            str(output_path),
275-            input_names=["embeddings"],
276-            output_names=["score"],
277-            dynamic_axes={
278-                "embeddings": {0: "batch"},
279-                "score": {0: "batch"},
280-            },
281:            opset_version=opset_version,
282-        )
283-
284-else:
285-    # Stubs when PyTorch is not available
286:    class TemporalCNN:  # type: ignore[no-redef]
287-        def __init__(self, *args, **kwargs):
288-            raise ImportError("PyTorch required. pip install 'violawake[training]'")
289-
290-    class TemporalGRU:  # type: ignore[no-redef]
291-        def __init__(self, *args, **kwargs):
292-            raise ImportError("PyTorch required. pip install 'violawake[training]'")
293-
294-    class TemporalConvGRU:  # type: ignore[no-redef]
295-        def __init__(self, *args, **kwargs):
296-            raise ImportError("PyTorch required. pip install 'violawake[training]'")
297-
298-    def count_parameters(model) -> int:

 succeeded in 441ms:
2147-        print(f"Duration: {training_duration:.1f}s")
2148-
2149-    # Export
2150-    output_path.parent.mkdir(parents=True, exist_ok=True)
2151-    model.eval()
2152-    dummy_input = torch.zeros(1, embedding_dim)
2153:    torch.onnx.export(
2154-        model,
2155-        dummy_input,
2156-        str(output_path),
2157-        input_names=["embedding"],
2158-        output_names=["score"],
2159-        dynamic_axes={"embedding": {0: "batch"}, "score": {0: "batch"}},
2160:        opset_version=11,
2161-    )
2162-
2163-    # Config
2164-    config = get_feature_config()
2165-    config.update(
2166-        {

 succeeded in 458ms:
console/backend/requirements.txt-22-sentry-sdk[fastapi]>=2.0
console/backend/requirements.txt-23-tomli>=2.0; python_version < "3.11"
console/backend/requirements.txt-24-boto3>=1.34
console/backend/requirements.txt-25-fast_mp3_augment
console/backend/requirements.txt:26:onnxscript
--
pyproject.toml-15-    "wake-word",
pyproject.toml-16-    "voice-assistant",
pyproject.toml-17-    "speech-recognition",
pyproject.toml-18-    "on-device",
pyproject.toml:19:    "onnx",
pyproject.toml-20-    "tts",
pyproject.toml-21-    "stt",
pyproject.toml-22-]
pyproject.toml-23-classifiers = [
--
pyproject.toml-37-# Core dependencies (inference-only: wake word + VAD)
pyproject.toml-38-# pyaudio, requests, and tqdm are optional — see [audio] and [download] extras
pyproject.toml-39-# openwakeword is optional — see [oww] extra (tflite-runtime has no Python 3.12+ Linux wheels)
pyproject.toml-40-dependencies = [
pyproject.toml:41:    "onnxruntime>=1.17",
pyproject.toml-42-    "numpy>=1.24",
pyproject.toml-43-    "scipy>=1.11",
pyproject.toml-44-    "pysbd>=0.3.4",
pyproject.toml-45-]
--
pyproject.toml-58-]
pyproject.toml-59-
pyproject.toml-60-# TTS: Kokoro-82M on-device TTS
pyproject.toml-61-tts = [
pyproject.toml:62:    "kokoro-onnx>=0.4",
pyproject.toml-63-    "sounddevice>=0.4",
pyproject.toml-64-]
pyproject.toml-65-
pyproject.toml-66-# STT: faster-whisper transcription
--
pyproject.toml-72-oww = [
pyproject.toml-73-    "openwakeword>=0.6",
pyproject.toml-74-]
pyproject.toml-75-
pyproject.toml:76:# TFLite: lightweight inference backend (alternative to onnxruntime)
pyproject.toml-77-tflite = [
pyproject.toml-78-    "tflite-runtime>=2.14.0",
pyproject.toml-79-]
pyproject.toml-80-
--
pyproject.toml-85-]
pyproject.toml-86-
pyproject.toml-87-# Training: model training pipeline
pyproject.toml-88-training = [
pyproject.toml:89:    "torch>=2.1",
pyproject.toml:90:    "torchaudio>=2.1",
pyproject.toml-91-    "openwakeword>=0.6",
pyproject.toml-92-    "audiomentations>=0.37",
pyproject.toml-93-    "librosa>=0.10",
pyproject.toml-94-    "soundfile>=0.12",
--
pyproject.toml-96-    "matplotlib>=3.8",
pyproject.toml-97-    "pandas>=2.1",
pyproject.toml-98-    "edge-tts>=6.1",
pyproject.toml-99-    "pydub>=0.25",
pyproject.toml:100:    "onnx>=1.15",
pyproject.toml:101:    # Required for ONNX export of the trained TemporalCNN — torch.onnx.export
pyproject.toml:102:    # uses onnxscript internally for newer opsets. Was missing from the
pyproject.toml-103-    # extra; surfaced as a runtime ModuleNotFoundError on first export.
pyproject.toml:104:    "onnxscript>=0.6",
pyproject.toml-105-    # Required for the augmentation step in _train_temporal_cnn (MP3
pyproject.toml-106-    # codec-based time-stretch + pitch-shift augmentation). Was missing.
pyproject.toml-107-    "fast_mp3_augment>=0.2",
pyproject.toml-108-]
--
pyproject.toml-111-docs = [
pyproject.toml-112-    "pdoc>=14.0",
pyproject.toml-113-]
pyproject.toml-114-
pyproject.toml:115:# Sample generation: TTS-based sample creation (no torch needed)
pyproject.toml-116-generate = [
pyproject.toml-117-    "edge-tts>=6.1",
pyproject.toml-118-    "pydub>=0.25",
pyproject.toml-119-    "soundfile>=0.12",
--
pyproject.toml-186-    "test_model.*",
pyproject.toml-187-    ".viola*",
pyproject.toml-188-    "*.mp3",
pyproject.toml-189-    "*.wav",
pyproject.toml:190:    "*.onnx",
pyproject.toml-191-]
pyproject.toml-192-
pyproject.toml-193-[tool.hatch.build.targets.wheel]
pyproject.toml-194-packages = ["src/violawake_sdk"]
--
pyproject.toml-236-strict = true
pyproject.toml-237-warn_return_any = false
pyproject.toml-238-warn_unused_configs = true
pyproject.toml-239-disallow_untyped_defs = true
pyproject.toml:240:# numpy/torch return types are complex; these codes are noisy in strict mode
pyproject.toml-241-disable_error_code = ["no-any-return", "type-var", "no-untyped-call"]
pyproject.toml-242-exclude = ["violawake_sdk/training/", "violawake_sdk/tools/"]
pyproject.toml-243-
pyproject.toml-244-[[tool.mypy.overrides]]
pyproject.toml-245-module = [
pyproject.toml-246-    "openwakeword.*",
pyproject.toml:247:    "onnxruntime.*",
pyproject.toml-248-    "pyaudio.*",
pyproject.toml-249-    "sounddevice.*",
pyproject.toml-250-    "soundfile.*",
pyproject.toml-251-    "faster_whisper.*",
pyproject.toml:252:    "kokoro_onnx.*",
pyproject.toml-253-    "webrtcvad.*",
pyproject.toml-254-    "requests.*",
pyproject.toml-255-    "tqdm.*",
pyproject.toml:256:    "torchaudio.*",
pyproject.toml:257:    "torch.*",
pyproject.toml-258-    "tensorflow.*",
pyproject.toml-259-    "scipy.*",
pyproject.toml-260-    "silero_vad.*",
pyproject.toml-261-    "pysbd.*",

 succeeded in 543ms:
49ffd9a Add corpus downloader CLI
9d27691 fix(deps): add onnxscript + fast_mp3_augment to [training] extra
acdd18f Fix edge TTS negative generation
196bfdd fix(training): four runtime bugs blocking the actual product
9f7e544 (tag: v0.2.3) release: v0.2.3
a545d72 Merge branch 'livetest/exhaustive-tests' into master
cb1ffca feat(security): post-launch hardening sprint
2a517d0 test: add live deployment smoke suite
e7186a7 fix: adversarial audit fixes — SDK hardening, dependency updates, evaluation pipeline
8161298 fix: 3-round adversarial audit — 8 P0s + 11 P1s across SDK, Console, docs
472f23f fix: 3 verification failures + encode documentation-is-product law
66cda2b docs: turn-key README — all 35 reverse-audit findings documented
6c48d31 docs: comprehensive API documentation for 42 undocumented capabilities
d7f7c8c fix: CI green — mypy, macOS runner, openwakeword deps, pytest-asyncio
7345832 fix: close/context managers, backbone pinning, Kokoro fallback, package shim
7ad1313 fix: pipeline equivalence, audit fixes, security hardening
b955a06 fix: Round 10 audit — sdist hygiene, exception contract, release prep
ab94bd8 fix: Round 8 audit — sdist bloat, async leak, pipeline cleanup, README accuracy
0e6fce8 fix: 7 round-5 adversary findings — wrong-rate rejection, sdist scope, compat class
bfbf47b fix: 3 more adversary findings — CHANGELOG gate count, oww_backbone visibility, dev deps
13c5a59 feat: ViolaWake Console — full SaaS platform for custom wake word training
0988f41 fix: add 'viola' wake word alias + WakewordDetector class with lazy loading
0988a71 feat: initial ViolaWake SDK project structure

 succeeded in 618ms:
2026-05-07T16:06:58.142571Z ERROR codex_core::tools::router: error=Exit code: 1
Wall time: 0.7 seconds
Output:
sqlite3 : The term 'sqlite3' is not recognized as the name of a cmdlet, function, script file, or operable program. 
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:2 char:1
+ sqlite3 console/backend/data/job_queue.db "SELECT id, created_at FROM ...
+ ~~~~~~~
    + CategoryInfo          : ObjectNotFound: (sqlite3:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
 

 exited 1 in 747ms:
sqlite3 : The term 'sqlite3' is not recognized as the name of a cmdlet, function, script file, or operable program. 
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:2 char:1
+ sqlite3 console/backend/data/job_queue.db "SELECT id, created_at FROM ...
+ ~~~~~~~
    + CategoryInfo          : ObjectNotFound: (sqlite3:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
 

codex
The TemporalCNN code confirms the pooling is `nn.AdaptiveMaxPool1d(1)` at the end of the 1D convolution stack, not a literal 2D layer in the SDK. Next I’m checking PyTorch’s installed export signature and doing an in-memory export probe so we can distinguish “model architecture regression” from “exporter behavior regression.”
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'docker exec wakeword-backend-1 python -c "import inspect, torch; print(inspect.signature(torch.onnx.export))"' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "docker exec wakeword-backend-1 python -c \"import torch, torchaudio; print('torch', torch.__version__); print('torchaudio', torchaudio.__version__)\"" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "docker exec wakeword-backend-1 python -c \"import sys; import onnx; import onnxscript; print('python', sys.version.split()[0]); print('onnx', onnx.__version__); print('onnxscript', onnxscript.__version__)\"" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "py -3 -c \"import sqlite3; con=sqlite3.connect(r'console/backend/data/job_queue.db'); cur=con.cursor(); print(cur.execute('select name from sqlite_master where type=\\'table\\' order by name').fetchall()); print(cur.execute('select id, created_at from jobs where status=\\'completed\\' order by id').fetchall())\"" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'git diff -- console/backend/requirements.txt pyproject.toml' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'git show 54f20b4:pyproject.toml | Select-String -Pattern "torch|torchaudio|onnx|onnxscript"' in J:\CLAUDE\PROJECTS\Wakeword
 succeeded in 352ms:
diff --git a/console/backend/requirements.txt b/console/backend/requirements.txt
index 14572f9..d2ce6c6 100644
--- a/console/backend/requirements.txt
+++ b/console/backend/requirements.txt
@@ -23,3 +23,4 @@ sentry-sdk[fastapi]>=2.0
 tomli>=2.0; python_version < "3.11"
 boto3>=1.34
 fast_mp3_augment
+onnxscript
warning: in the working copy of 'console/backend/requirements.txt', LF will be replaced by CRLF the next time Git touches it

 succeeded in 543ms:

    "onnx",
    "onnxruntime>=1.17",
    "kokoro-onnx>=0.4",
# TFLite: lightweight inference backend (alternative to onnxruntime)
    "torch>=2.1",
    "torchaudio>=2.1",
    "onnx>=1.15",
# Sample generation: TTS-based sample creation (no torch needed)
    "*.onnx",
# numpy/torch return types are complex; these codes are noisy in strict mode
    "onnxruntime.*",
    "kokoro_onnx.*",
    "torchaudio.*",
    "torch.*",



 succeeded in 733ms:
[('jobs',), ('sqlite_sequence',), ('user_circuit_breakers',)]
[(16, '2026-03-28T20:55:53.078831+00:00'), (17, '2026-03-28T20:56:15.118412+00:00'), (19, '2026-03-28T21:25:34.018595+00:00'), (20, '2026-03-28T21:26:00.088880+00:00'), (21, '2026-03-28T21:26:03.771233+00:00'), (22, '2026-03-28T21:28:33.083002+00:00'), (23, '2026-03-28T21:29:06.687568+00:00'), (24, '2026-03-28T21:31:38.974285+00:00'), (25, '2026-03-28T21:32:06.428065+00:00'), (26, '2026-03-28T21:36:28.711133+00:00'), (27, '2026-03-28T21:36:57.619347+00:00'), (28, '2026-03-28T21:37:55.244961+00:00'), (29, '2026-03-28T21:38:32.366321+00:00'), (30, '2026-03-28T21:55:41.693683+00:00'), (31, '2026-03-28T21:56:04.099932+00:00'), (32, '2026-03-29T00:03:12.563620+00:00'), (34, '2026-03-29T22:51:43.678962+00:00')]

 succeeded in 1247ms:
python 3.11.15
onnx 1.21.0
onnxscript 0.7.0

 succeeded in 2189ms:
(model: 'torch.nn.Module | torch.export.ExportedProgram | torch.jit.ScriptModule | torch.jit.ScriptFunction', args: 'tuple[Any, ...]' = (), f: 'str | os.PathLike | None' = None, *, kwargs: 'dict[str, Any] | None' = None, verbose: 'bool | None' = None, input_names: 'Sequence[str] | None' = None, output_names: 'Sequence[str] | None' = None, opset_version: 'int | None' = None, dynamo: 'bool' = True, external_data: 'bool' = True, dynamic_shapes: 'dict[str, Any] | tuple[Any, ...] | list[Any] | None' = None, custom_translation_table: 'dict[Callable, Callable] | None' = None, report: 'bool' = False, optimize: 'bool' = True, verify: 'bool' = False, profile: 'bool' = False, dump_exported_program: 'bool' = False, artifacts_dir: 'str | os.PathLike' = '.', export_params: 'bool' = True, keep_initializers_as_inputs: 'bool' = False, dynamic_axes: 'Mapping[str, Mapping[int, str]] | Mapping[str, Sequence[int]] | None' = None, training: '_C_onnx.TrainingMode' = <TrainingMode.EVAL: 0>, operator_export_type: '_C_onnx.OperatorExportTypes' = <OperatorExportTypes.ONNX: 0>, do_constant_folding: 'bool' = True, custom_opsets: 'Mapping[str, int] | None' = None, export_modules_as_functions: 'bool | Collection[type[torch.nn.Module]]' = False, autograd_inlining: 'bool' = True) -> 'ONNXProgram | None'

 succeeded in 2200ms:
torch 2.11.0+cu130
torchaudio 2.11.0+cu130

codex
The container is on `torch 2.11.0+cu130` and the export signature defaults `dynamo=True`, while the SDK call omits `dynamo=...`. The completed jobs in SQLite are all March 28-29, so I’m now checking whether those predate the dependency looseness/container rebuild that pulled the newer exporter.
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "py -3 -c \"import sqlite3; con=sqlite3.connect(r'console/backend/data/job_queue.db'); cur=con.cursor(); print(cur.execute('pragma table_info(jobs)').fetchall()); print(cur.execute('select id,status,created_at,updated_at,error from jobs order by id desc limit 12').fetchall())\"" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'git show --stat --oneline 54f20b4' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'git show --stat --oneline 9d27691' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'git show 9d27691 -- pyproject.toml console/backend/requirements.txt' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'git log --all --oneline --decorate -n 25' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "Get-ChildItem -Path J:\\CLAUDE\\PROJECTS -Directory | Where-Object { "'$_.Name -match '"'whisper|viola|Wakeword' } | Select-Object -ExpandProperty FullName" in J:\CLAUDE\PROJECTS\Wakeword
 succeeded in 438ms:
commit 9d276911001d3b7ef65106cb62925e1c483624a7
Author: ViolaSDK <viola-sdk@project.local>
Date:   Thu May 7 07:51:02 2026 -0500

    fix(deps): add onnxscript + fast_mp3_augment to [training] extra
    
    These were missing from pyproject.toml [training] but required by the
    training pipeline:
    - onnxscript: torch.onnx.export uses it for newer opsets — without it
      the export step at the end of training fails with ModuleNotFoundError
    - fast_mp3_augment: used in _train_temporal_cnn for MP3-codec-based
      time-stretch + pitch-shift augmentation
    
    Surfaced when driving the live training pipeline end-to-end. The fix
    belongs in the SDK's [training] extra, not in console/backend's
    requirements.txt — anyone doing 'pip install violawake[training]' on
    a fresh machine should get a working environment without dep-by-dep
    debugging.

diff --git a/pyproject.toml b/pyproject.toml
index e437145..d5af86b 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -98,6 +98,13 @@ training = [
     "edge-tts>=6.1",
     "pydub>=0.25",
     "onnx>=1.15",
+    # Required for ONNX export of the trained TemporalCNN — torch.onnx.export
+    # uses onnxscript internally for newer opsets. Was missing from the
+    # extra; surfaced as a runtime ModuleNotFoundError on first export.
+    "onnxscript>=0.6",
+    # Required for the augmentation step in _train_temporal_cnn (MP3
+    # codec-based time-stretch + pitch-shift augmentation). Was missing.
+    "fast_mp3_augment>=0.2",
 ]
 
 # Documentation: API reference generation

 succeeded in 444ms:
9d27691 fix(deps): add onnxscript + fast_mp3_augment to [training] extra
 pyproject.toml | 7 +++++++
 1 file changed, 7 insertions(+)

 succeeded in 453ms:
54f20b4 launch: deployment helper, updated Show HN draft, fix stale test refs
 docs/SHOW_HN_DRAFT.md    |  28 +++-
 scripts/deploy_launch.py | 328 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 349 insertions(+), 7 deletions(-)

 succeeded in 476ms:
9545987 (HEAD -> master, origin/master) fix(audio): try soundfile before torchaudio in load_audio
6de96f5 Document required training corpus mount
49ffd9a Add corpus downloader CLI
854acaf Add Edge TTS retry backoff
b45e03c Require corpus speech negatives in backend training
9d27691 fix(deps): add onnxscript + fast_mp3_augment to [training] extra
acdd18f Fix edge TTS negative generation
12e9a50 Add training pipeline latent bug audit
9cbb8e6 Fail fast on backend startup prerequisites
0c3923b Pin OpenWakeWord evaluation helpers to ONNX
196bfdd fix(training): four runtime bugs blocking the actual product
2320f2d ci: gate deploy-pages workflow behind manual dispatch
c6d87c3 docs(status): TIER 1-4 hardening pass complete
a561b4f fix(deploy): run alembic upgrade head in entrypoint + persist webhook idempotency
ee8f735 Fix trivial public page accessibility issues
9ced0a4 Add live accessibility audit report
3ed32ec Persist Stripe webhook idempotency
2565b14 Update legal pages for billing and email providers
7ef1c05 ci(deploy): GitHub Action to auto-deploy frontend to Pages on master push
9f7e544 (tag: v0.2.3) release: v0.2.3
06c878b feat(launch-prep): TIER 1-4 production hardening pass
c12b9ff Add security regression tests
96ebb19 docs(status): test-debt resolved (136 passed, 0 failed)
0c48227 Fix team invite route unit tests
8af98d7 Update job queue priority tests

2026-05-07T16:07:50.099632Z ERROR codex_core::tools::router: error=Exit code: 1
Wall time: 0.5 seconds
Output:
[(0, 'id', 'INTEGER', 0, None, 1), (1, 'user_id', 'INTEGER', 1, None, 0), (2, 'wake_word', 'TEXT', 1, None, 0), (3, 'status', 'TEXT', 1, None, 0), (4, 'created_at', 'TEXT', 1, None, 0), (5, 'started_at', 'TEXT', 0, None, 0), (6, 'completed_at', 'TEXT', 0, None, 0), (7, 'error', 'TEXT', 0, None, 0), (8, 'progress_pct', 'REAL', 1, '0', 0), (9, 'recording_ids', 'TEXT', 1, None, 0), (10, 'epochs', 'INTEGER', 1, '50', 0), (11, 'model_id', 'INTEGER', 0, None, 0), (12, 'd_prime', 'REAL', 0, None, 0), (13, 'priority', 'INTEGER', 1, '0', 0)]
Traceback (most recent call last):
  File "<string>", line 1, in <module>
    import sqlite3; con=sqlite3.connect(r'console/backend/data/job_queue.db'); cur=con.cursor(); print(cur.execute('pragma table_info(jobs)').fetchall()); print(cur.execute('select id,status,created_at,updated_at,error from jobs order by id desc limit 12').fetchall())
                                                                                                                                                                 ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sqlite3.OperationalError: no such column: updated_at

 exited 1 in 533ms:
[(0, 'id', 'INTEGER', 0, None, 1), (1, 'user_id', 'INTEGER', 1, None, 0), (2, 'wake_word', 'TEXT', 1, None, 0), (3, 'status', 'TEXT', 1, None, 0), (4, 'created_at', 'TEXT', 1, None, 0), (5, 'started_at', 'TEXT', 0, None, 0), (6, 'completed_at', 'TEXT', 0, None, 0), (7, 'error', 'TEXT', 0, None, 0), (8, 'progress_pct', 'REAL', 1, '0', 0), (9, 'recording_ids', 'TEXT', 1, None, 0), (10, 'epochs', 'INTEGER', 1, '50', 0), (11, 'model_id', 'INTEGER', 0, None, 0), (12, 'd_prime', 'REAL', 0, None, 0), (13, 'priority', 'INTEGER', 1, '0', 0)]
Traceback (most recent call last):
  File "<string>", line 1, in <module>
    import sqlite3; con=sqlite3.connect(r'console/backend/data/job_queue.db'); cur=con.cursor(); print(cur.execute('pragma table_info(jobs)').fetchall()); print(cur.execute('select id,status,created_at,updated_at,error from jobs order by id desc limit 12').fetchall())
                                                                                                                                                                 ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sqlite3.OperationalError: no such column: updated_at

 succeeded in 548ms:
J:\CLAUDE\PROJECTS\NOVVIOLA_fixed3_patched
J:\CLAUDE\PROJECTS\ViolaWakeStudio
J:\CLAUDE\PROJECTS\ViolaWebsite
J:\CLAUDE\PROJECTS\Wakeword

exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "py -3 -c \"import sqlite3; con=sqlite3.connect(r'console/backend/data/job_queue.db'); cur=con.cursor(); rows=cur.execute('select id,status,created_at,started_at,completed_at,error,progress_pct,model_id,d_prime from jobs order by id desc limit 15').fetchall(); [print(row) for row in rows]\"" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "py -3 -c \"import sqlite3; con=sqlite3.connect(r'console/backend/data/job_queue.db'); cur=con.cursor(); rows=cur.execute('select id, created_at, completed_at from jobs where status=\\'completed\\' order by id').fetchall(); print('count', len(rows)); [print(row) for row in rows]\"" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "Get-ChildItem -Path J:\\CLAUDE -Directory -Recurse -Filter \"*whisper*\" -ErrorAction SilentlyContinue | Select-Object -First 30 -ExpandProperty FullName" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'rg -n "torch|torchaudio|onnxscript|onnx" console/backend/requirements.txt' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "Get-ChildItem -Path J:\\PROJECTS -Directory -Recurse -Filter \"*whisper*\" -ErrorAction SilentlyContinue | Select-Object -First 30 -ExpandProperty FullName" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'git show 54f20b4:console/backend/requirements.txt' in J:\CLAUDE\PROJECTS\Wakeword
 succeeded in 1105ms:
26:onnxscript

 succeeded in 1316ms:
count 17
(16, '2026-03-28T20:55:53.078831+00:00', '2026-03-28T23:17:05.466411+00:00')
(17, '2026-03-28T20:56:15.118412+00:00', '2026-03-28T23:17:05.373959+00:00')
(19, '2026-03-28T21:25:34.018595+00:00', '2026-03-28T23:17:20.904154+00:00')
(20, '2026-03-28T21:26:00.088880+00:00', '2026-03-28T23:17:20.821948+00:00')
(21, '2026-03-28T21:26:03.771233+00:00', '2026-03-28T23:17:21.136832+00:00')
(22, '2026-03-28T21:28:33.083002+00:00', '2026-03-28T23:17:20.934164+00:00')
(23, '2026-03-28T21:29:06.687568+00:00', '2026-03-28T23:17:36.976447+00:00')
(24, '2026-03-28T21:31:38.974285+00:00', '2026-03-28T23:17:36.786008+00:00')
(25, '2026-03-28T21:32:06.428065+00:00', '2026-03-28T23:17:37.240602+00:00')
(26, '2026-03-28T21:36:28.711133+00:00', '2026-03-28T23:17:37.594875+00:00')
(27, '2026-03-28T21:36:57.619347+00:00', '2026-03-28T23:17:53.117919+00:00')
(28, '2026-03-28T21:37:55.244961+00:00', '2026-03-28T23:17:52.692051+00:00')
(29, '2026-03-28T21:38:32.366321+00:00', '2026-03-28T23:17:53.181430+00:00')
(30, '2026-03-28T21:55:41.693683+00:00', '2026-03-28T23:17:53.502608+00:00')
(31, '2026-03-28T21:56:04.099932+00:00', '2026-03-28T23:18:06.770173+00:00')
(32, '2026-03-29T00:03:12.563620+00:00', '2026-03-29T00:03:28.603074+00:00')
(34, '2026-03-29T22:51:43.678962+00:00', '2026-03-29T22:51:58.191290+00:00')

 succeeded in 1334ms:
fastapi>=0.110
slowapi>=0.1.9
uvicorn[standard]>=0.27
sqlalchemy>=2.0
aiosqlite>=0.19
# Optional: needed when VIOLAWAKE_DB_URL points to PostgreSQL, such as Railway.
asyncpg>=0.29
python-jose[cryptography]>=3.3
bcrypt>=4.0
python-multipart>=0.0.9
sse-starlette>=1.6
pydantic>=2.0
pydantic-settings>=2.0
email-validator>=2.0
httpx>=0.27
resend>=2.0
numpy>=1.24
scipy>=1.11
edge-tts>=6.1
stripe>=8.0.0
sentry-sdk[fastapi]>=2.0
tomli>=2.0; python_version < "3.11"
boto3>=1.34

 succeeded in 1347ms:
(37, 'pending', '2026-05-07T03:49:07.661403+00:00', None, None, None, 0.0, None, None)
(36, 'running', '2026-05-07T03:47:49.772369+00:00', '2026-05-07T03:49:07.657345+00:00', None, None, 2.0, None, None)
(35, 'running', '2026-04-05T13:51:55.249184+00:00', '2026-05-07T03:49:07.730275+00:00', None, None, 2.0, None, None)
(34, 'completed', '2026-03-29T22:51:43.678962+00:00', '2026-03-29T22:51:43.713267+00:00', '2026-03-29T22:51:58.191290+00:00', None, 100.0, 30, None)
(33, 'failed', '2026-03-29T22:03:06.829046+00:00', '2026-03-29T22:03:06.860697+00:00', '2026-03-29T22:03:06.921650+00:00', '[Errno 28] No space left on device', 0.0, None, None)
(32, 'completed', '2026-03-29T00:03:12.563620+00:00', '2026-03-29T00:03:12.588655+00:00', '2026-03-29T00:03:28.603074+00:00', None, 100.0, 29, None)
(31, 'completed', '2026-03-28T21:56:04.099932+00:00', '2026-03-28T23:17:52.790068+00:00', '2026-03-28T23:18:06.770173+00:00', None, 100.0, 28, None)
(30, 'completed', '2026-03-28T21:55:41.693683+00:00', '2026-03-28T23:17:37.643226+00:00', '2026-03-28T23:17:53.502608+00:00', None, 100.0, 27, None)
(29, 'completed', '2026-03-28T21:38:32.366321+00:00', '2026-03-28T23:17:37.320564+00:00', '2026-03-28T23:17:53.181430+00:00', None, 100.0, 26, None)
(28, 'completed', '2026-03-28T21:37:55.244961+00:00', '2026-03-28T23:17:37.038859+00:00', '2026-03-28T23:17:52.692051+00:00', None, 100.0, 24, None)
(27, 'completed', '2026-03-28T21:36:57.619347+00:00', '2026-03-28T23:17:36.889092+00:00', '2026-03-28T23:17:53.117919+00:00', None, 100.0, 25, None)
(26, 'completed', '2026-03-28T21:36:28.711133+00:00', '2026-03-28T23:17:21.213575+00:00', '2026-03-28T23:17:37.594875+00:00', None, 100.0, 23, None)
(25, 'completed', '2026-03-28T21:32:06.428065+00:00', '2026-03-28T23:17:21.033228+00:00', '2026-03-28T23:17:37.240602+00:00', None, 100.0, 22, None)
(24, 'completed', '2026-03-28T21:31:38.974285+00:00', '2026-03-28T23:17:20.960518+00:00', '2026-03-28T23:17:36.786008+00:00', None, 100.0, 20, None)
(23, 'completed', '2026-03-28T21:29:06.687568+00:00', '2026-03-28T23:17:20.957446+00:00', '2026-03-28T23:17:36.976447+00:00', None, 100.0, 21, None)

 succeeded in 8209ms:
J:\CLAUDE\PROJECTS\ALLSub\.venv\Lib\site-packages\faster_whisper
J:\CLAUDE\PROJECTS\ALLSub\.venv\Lib\site-packages\faster_whisper-1.2.1.dist-info
J:\CLAUDE\PROJECTS\ALLSub\.venv\Lib\site-packages\onnxruntime\transformers\models\whisper
J:\CLAUDE\PROJECTS\Wakeword\.mypy_cache\3.10\transformers\models\whisper

2026-05-07T16:08:40.024209Z ERROR codex_core::tools::router: error=Exit code: 124
Wall time: 30.1 seconds
Output:
command timed out after 30059 milliseconds
J:\PROJECTS\ALLSub\.venv\Lib\site-packages\faster_whisper
J:\PROJECTS\ALLSub\.venv\Lib\site-packages\faster_whisper-1.2.1.dist-info
J:\PROJECTS\ALLSub\.venv\Lib\site-packages\onnxruntime\transformers\models\whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\.mypy_cache\3.11\pipecat\services\whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\.mypy_cache\3.11\transformers\models\whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\.venv\Lib\site-packages\faster_whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\.venv\Lib\site-packages\faster_whisper-1.2.1.dist-info
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\.venv\Lib\site-packages\onnxruntime\transformers\models\whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\.venv\Lib\site-packages\pipecat\services\whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\.venv\Lib\site-packages\transformers\models\whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\build\clean-test\venv\Lib\site-packages\faster_whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\build\clean-test\venv\Lib\site-packages\faster_whisper-1.2.1.dist-info
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\build\clean-test\venv\Lib\site-packages\onnxruntime\transformers\models\whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\build\clean-test\venv\Lib\site-packages\pipecat\services\whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\build\clean-test\venv\Lib\site-packages\transformers\models\whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\build\dist\viola\python\Lib\site-packages\faster_whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\build\dist\viola\python\Lib\site-packages\faster_whisper-1.2.1.dist-info
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\build\dist\viola\python\Lib\site-packages\onnxruntime\transformers\models\whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\build\dist\viola\python\Lib\site-packages\pipecat\services\whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\data\raw_downloads\speech\asmr_whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\violawake_data\eval_real\positives\jihad_whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\violawake_data\eval_real\positives\sierra_whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\violawake_data\positives\real\jihad_whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\violawake_data\positives\real\sierra_whisper

 exited 124 in 30059ms:
J:\PROJECTS\ALLSub\.venv\Lib\site-packages\faster_whisper
J:\PROJECTS\ALLSub\.venv\Lib\site-packages\faster_whisper-1.2.1.dist-info
J:\PROJECTS\ALLSub\.venv\Lib\site-packages\onnxruntime\transformers\models\whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\.mypy_cache\3.11\pipecat\services\whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\.mypy_cache\3.11\transformers\models\whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\.venv\Lib\site-packages\faster_whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\.venv\Lib\site-packages\faster_whisper-1.2.1.dist-info
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\.venv\Lib\site-packages\onnxruntime\transformers\models\whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\.venv\Lib\site-packages\pipecat\services\whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\.venv\Lib\site-packages\transformers\models\whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\build\clean-test\venv\Lib\site-packages\faster_whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\build\clean-test\venv\Lib\site-packages\faster_whisper-1.2.1.dist-info
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\build\clean-test\venv\Lib\site-packages\onnxruntime\transformers\models\whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\build\clean-test\venv\Lib\site-packages\pipecat\services\whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\build\clean-test\venv\Lib\site-packages\transformers\models\whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\build\dist\viola\python\Lib\site-packages\faster_whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\build\dist\viola\python\Lib\site-packages\faster_whisper-1.2.1.dist-info
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\build\dist\viola\python\Lib\site-packages\onnxruntime\transformers\models\whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\build\dist\viola\python\Lib\site-packages\pipecat\services\whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\data\raw_downloads\speech\asmr_whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\violawake_data\eval_real\positives\jihad_whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\violawake_data\eval_real\positives\sierra_whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\violawake_data\positives\real\jihad_whisper
J:\PROJECTS\NOVVIOLA_fixed3_patched\NOVVIOLA\violawake_data\positives\real\sierra_whisper

exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "rg -n \"viola-whisper|viola_whisper|VIRTUAL_ENV|torch.__version__|2\\.4\\.|2\\.5\\.|2\\.10|2\\.11\" . -g \""'!*.mp3" -g "!*.wav" -g "!*.onnx" -g "!.git/**"' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "Get-ChildItem -Path J:\\ -Directory -Recurse -Filter \"viola-whisper\" -ErrorAction SilentlyContinue | Select-Object -First 20 -ExpandProperty FullName" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'git log -p -S "torch>=2.1" -- pyproject.toml' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "Get-ChildItem -Path C:\\Users\\jihad -Directory -Recurse -Filter \"viola-whisper\" -ErrorAction SilentlyContinue | Select-Object -First 20 -ExpandProperty FullName" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'git log -p -S "torchaudio>=2.1" -- pyproject.toml' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'git log -p -S "onnxscript" -- pyproject.toml console/backend/requirements.txt' in J:\CLAUDE\PROJECTS\Wakeword
 succeeded in 2419ms:
.\console\frontend\package.json:22:    "vite": "^5.2.11"
.\console\frontend\package-lock.json:21:        "vite": "^5.2.11"
.\console\frontend\package-lock.json:1215:      "version": "2.10.10",
.\console\frontend\package-lock.json:1216:      "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.10.tgz",
.\src\violawake_sdk\audio.py:66:    # 2.10+ requires torchcodec → FFmpeg shared libs, which aren't always
.\experiments\real_speech_eval.json:6176:          "score": 2.115964889526367e-06
.\experiments\feature_extractor_results.json:23:      "negative_mean": 2.1060097217559814,

 succeeded in 2820ms:
commit 0988a71598e083980e7082f82b04288b7ce6a946
Author: ViolaSDK <viola-sdk@project.local>
Date:   Tue Mar 17 20:04:17 2026 -0500

    feat: initial ViolaWake SDK project structure
    
    Bootstrap the standalone wake word / voice pipeline SDK extracted from
    the Viola production assistant. All work based on COMPETITIVE_AUDIT_REPORT.md,
    audit_viola_inventory.md, and audit_gap_analysis.md from the Viola repo.
    
    Structure:
    - README.md: full product README with quick start, benchmarks, platform matrix
    - CLAUDE.md: AI context and coding patterns
    - pyproject.toml: hatchling-based build, optional extras [tts,stt,vad,training,all,dev]
    - docs/PRD.md: comprehensive PRD with 7 features, acceptance criteria, specific numbers
    - docs/REGISTRY.md: doc routing table
    - docs/TEST_STRATEGY.md: 4-tier test strategy with coverage targets
    - docs/adr/ADR-001: ONNX Runtime for all inference (vs PyTorch, TorchScript, TensorRT)
    - docs/adr/ADR-002: OpenWakeWord embeddings as backbone (d-prime 15.10 vs 3.07 for CNN)
    - docs/adr/ADR-003: Python SDK first (not C library) — 3-month vs 18-month trade-off
    - docs/adr/ADR-004: Apache 2.0 open-core + proprietary training Console
    - docs/adr/ADR-005: PyPI for code + GitHub Releases for models (SHA-256 verified)
    - src/violawake_sdk/: WakeDetector, VADEngine, TTSEngine, STTEngine, VoicePipeline
    - tests/unit/: decision policy, VAD, model registry (no hardware, no model files)
    - tests/benchmarks/: latency benchmarks with regression check tooling
    - .github/workflows/ci.yml: lint + unit tests (3 OS × 3 Python versions) + integration
    - .github/workflows/release.yml: PyPI publish + GitHub Release with model artifacts
    
    Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

diff --git a/pyproject.toml b/pyproject.toml
new file mode 100644
index 0000000..8d70316
--- /dev/null
+++ b/pyproject.toml
@@ -0,0 +1,154 @@
+[build-system]
+requires = ["hatchling>=1.21"]
+build-backend = "hatchling.build"
+
+[project]
+name = "violawake"
+version = "0.1.0"
+description = "Open-source wake word detection SDK with training pipeline — privacy-first, on-device, Python-native"
+readme = "README.md"
+license = { file = "LICENSE" }
+authors = [
+    { name = "ViolaWake Contributors" },
+]
+keywords = [
+    "wake-word",
+    "voice-assistant",
+    "speech-recognition",
+    "on-device",
+    "onnx",
+    "tts",
+    "stt",
+]
+classifiers = [
+    "Development Status :: 3 - Alpha",
+    "Intended Audience :: Developers",
+    "License :: OSI Approved :: Apache Software License",
+    "Programming Language :: Python :: 3",
+    "Programming Language :: Python :: 3.10",
+    "Programming Language :: Python :: 3.11",
+    "Programming Language :: Python :: 3.12",
+    "Topic :: Multimedia :: Sound/Audio :: Speech",
+    "Topic :: Scientific/Engineering :: Artificial Intelligence",
+    "Operating System :: OS Independent",
+]
+requires-python = ">=3.10"
+
+# Core dependencies (wake word + VAD only)
+dependencies = [
+    "onnxruntime>=1.17",
+    "numpy>=1.24",
+    "pyaudio>=0.2.14",
+    "scipy>=1.11",
+    "requests>=2.31",
+    "tqdm>=4.66",
+]
+
+[project.optional-dependencies]
+# TTS: Kokoro-82M on-device TTS
+tts = [
+    "kokoro-onnx>=0.4",
+]
+
+# STT: faster-whisper transcription
+stt = [
+    "faster-whisper>=1.0",
+]
+
+# VAD: preferred VAD backends
+vad = [
+    "webrtcvad>=2.0.10",
+]
+
+# Training: model training pipeline
+training = [
+    "torch>=2.1",
+    "torchaudio>=2.1",
+    "librosa>=0.10",
+    "scikit-learn>=1.3",
+    "matplotlib>=3.8",
+    "pandas>=2.1",
+]
+
+# Full install
+all = [
+    "violawake[tts,stt,vad,training]",
+]
+
+# Dev / CI
+dev = [
+    "pytest>=8.0",
+    "pytest-cov>=4.1",
+    "pytest-benchmark>=4.0",
+    "ruff>=0.3",
+    "mypy>=1.8",
+    "pre-commit>=3.6",
+    "types-requests>=2.31",
+]
+
+[project.scripts]
+violawake-train = "violawake_sdk.tools.train:main"
+violawake-eval = "violawake_sdk.tools.evaluate:main"
+violawake-collect = "violawake_sdk.tools.collect_samples:main"
+violawake-download = "violawake_sdk.tools.download_model:main"
+
+[project.urls]
+Homepage = "https://github.com/youorg/violawake"
+Documentation = "https://violawake.readthedocs.io"
+Repository = "https://github.com/youorg/violawake"
+"Bug Tracker" = "https://github.com/youorg/violawake/issues"
+
+[tool.hatch.build.targets.wheel]
+packages = ["src/violawake_sdk"]
+
+[tool.pytest.ini_options]
+testpaths = ["tests"]
+addopts = "-v --cov=violawake_sdk --cov-report=term-missing"
+markers = [
+    "integration: requires model files (deselect with -m 'not integration')",
+    "benchmark: performance benchmark tests",
+    "hardware: requires microphone hardware",
+]
+
+[tool.ruff]
+target-version = "py310"
+line-length = 100
+src = ["src"]
+
+[tool.ruff.lint]
+select = [
+    "E",   # pycodestyle errors
+    "W",   # pycodestyle warnings
+    "F",   # pyflakes
+    "I",   # isort
+    "G",   # flake8-logging-format (no f-strings in logging)
+    "T20", # flake8-print (no print in production code)
+    "UP",  # pyupgrade
+    "B",   # flake8-bugbear
+    "SIM", # flake8-simplify
+    "TID", # flake8-tidy-imports
+]
+ignore = [
+    "E501", # line too long (handled by formatter)
+    "T201", # print() allowed in scripts/tools
+]
+per-file-ignores = { "tools/**" = ["T201"], "src/violawake_sdk/tools/**" = ["T201"] }
+
+[tool.mypy]
+python_version = "3.10"
+strict = true
+warn_return_any = true
+warn_unused_configs = true
+disallow_untyped_defs = true
+
+[tool.coverage.run]
+source = ["src/violawake_sdk"]
+omit = ["*/tests/*", "*/tools/*"]
+
+[tool.coverage.report]
+exclude_lines = [
+    "pragma: no cover",
+    "if TYPE_CHECKING:",
+    "raise NotImplementedError",
+    "if __name__ == .__main__.:",
+]

 succeeded in 2844ms:
commit 9d276911001d3b7ef65106cb62925e1c483624a7
Author: ViolaSDK <viola-sdk@project.local>
Date:   Thu May 7 07:51:02 2026 -0500

    fix(deps): add onnxscript + fast_mp3_augment to [training] extra
    
    These were missing from pyproject.toml [training] but required by the
    training pipeline:
    - onnxscript: torch.onnx.export uses it for newer opsets — without it
      the export step at the end of training fails with ModuleNotFoundError
    - fast_mp3_augment: used in _train_temporal_cnn for MP3-codec-based
      time-stretch + pitch-shift augmentation
    
    Surfaced when driving the live training pipeline end-to-end. The fix
    belongs in the SDK's [training] extra, not in console/backend's
    requirements.txt — anyone doing 'pip install violawake[training]' on
    a fresh machine should get a working environment without dep-by-dep
    debugging.

diff --git a/pyproject.toml b/pyproject.toml
index e437145..d5af86b 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -98,6 +98,13 @@ training = [
     "edge-tts>=6.1",
     "pydub>=0.25",
     "onnx>=1.15",
+    # Required for ONNX export of the trained TemporalCNN — torch.onnx.export
+    # uses onnxscript internally for newer opsets. Was missing from the
+    # extra; surfaced as a runtime ModuleNotFoundError on first export.
+    "onnxscript>=0.6",
+    # Required for the augmentation step in _train_temporal_cnn (MP3
+    # codec-based time-stretch + pitch-shift augmentation). Was missing.
+    "fast_mp3_augment>=0.2",
 ]
 
 # Documentation: API reference generation

 succeeded in 2942ms:
commit 0988a71598e083980e7082f82b04288b7ce6a946
Author: ViolaSDK <viola-sdk@project.local>
Date:   Tue Mar 17 20:04:17 2026 -0500

    feat: initial ViolaWake SDK project structure
    
    Bootstrap the standalone wake word / voice pipeline SDK extracted from
    the Viola production assistant. All work based on COMPETITIVE_AUDIT_REPORT.md,
    audit_viola_inventory.md, and audit_gap_analysis.md from the Viola repo.
    
    Structure:
    - README.md: full product README with quick start, benchmarks, platform matrix
    - CLAUDE.md: AI context and coding patterns
    - pyproject.toml: hatchling-based build, optional extras [tts,stt,vad,training,all,dev]
    - docs/PRD.md: comprehensive PRD with 7 features, acceptance criteria, specific numbers
    - docs/REGISTRY.md: doc routing table
    - docs/TEST_STRATEGY.md: 4-tier test strategy with coverage targets
    - docs/adr/ADR-001: ONNX Runtime for all inference (vs PyTorch, TorchScript, TensorRT)
    - docs/adr/ADR-002: OpenWakeWord embeddings as backbone (d-prime 15.10 vs 3.07 for CNN)
    - docs/adr/ADR-003: Python SDK first (not C library) — 3-month vs 18-month trade-off
    - docs/adr/ADR-004: Apache 2.0 open-core + proprietary training Console
    - docs/adr/ADR-005: PyPI for code + GitHub Releases for models (SHA-256 verified)
    - src/violawake_sdk/: WakeDetector, VADEngine, TTSEngine, STTEngine, VoicePipeline
    - tests/unit/: decision policy, VAD, model registry (no hardware, no model files)
    - tests/benchmarks/: latency benchmarks with regression check tooling
    - .github/workflows/ci.yml: lint + unit tests (3 OS × 3 Python versions) + integration
    - .github/workflows/release.yml: PyPI publish + GitHub Release with model artifacts
    
    Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

diff --git a/pyproject.toml b/pyproject.toml
new file mode 100644
index 0000000..8d70316
--- /dev/null
+++ b/pyproject.toml
@@ -0,0 +1,154 @@
+[build-system]
+requires = ["hatchling>=1.21"]
+build-backend = "hatchling.build"
+
+[project]
+name = "violawake"
+version = "0.1.0"
+description = "Open-source wake word detection SDK with training pipeline — privacy-first, on-device, Python-native"
+readme = "README.md"
+license = { file = "LICENSE" }
+authors = [
+    { name = "ViolaWake Contributors" },
+]
+keywords = [
+    "wake-word",
+    "voice-assistant",
+    "speech-recognition",
+    "on-device",
+    "onnx",
+    "tts",
+    "stt",
+]
+classifiers = [
+    "Development Status :: 3 - Alpha",
+    "Intended Audience :: Developers",
+    "License :: OSI Approved :: Apache Software License",
+    "Programming Language :: Python :: 3",
+    "Programming Language :: Python :: 3.10",
+    "Programming Language :: Python :: 3.11",
+    "Programming Language :: Python :: 3.12",
+    "Topic :: Multimedia :: Sound/Audio :: Speech",
+    "Topic :: Scientific/Engineering :: Artificial Intelligence",
+    "Operating System :: OS Independent",
+]
+requires-python = ">=3.10"
+
+# Core dependencies (wake word + VAD only)
+dependencies = [
+    "onnxruntime>=1.17",
+    "numpy>=1.24",
+    "pyaudio>=0.2.14",
+    "scipy>=1.11",
+    "requests>=2.31",
+    "tqdm>=4.66",
+]
+
+[project.optional-dependencies]
+# TTS: Kokoro-82M on-device TTS
+tts = [
+    "kokoro-onnx>=0.4",
+]
+
+# STT: faster-whisper transcription
+stt = [
+    "faster-whisper>=1.0",
+]
+
+# VAD: preferred VAD backends
+vad = [
+    "webrtcvad>=2.0.10",
+]
+
+# Training: model training pipeline
+training = [
+    "torch>=2.1",
+    "torchaudio>=2.1",
+    "librosa>=0.10",
+    "scikit-learn>=1.3",
+    "matplotlib>=3.8",
+    "pandas>=2.1",
+]
+
+# Full install
+all = [
+    "violawake[tts,stt,vad,training]",
+]
+
+# Dev / CI
+dev = [
+    "pytest>=8.0",
+    "pytest-cov>=4.1",
+    "pytest-benchmark>=4.0",
+    "ruff>=0.3",
+    "mypy>=1.8",
+    "pre-commit>=3.6",
+    "types-requests>=2.31",
+]
+
+[project.scripts]
+violawake-train = "violawake_sdk.tools.train:main"
+violawake-eval = "violawake_sdk.tools.evaluate:main"
+violawake-collect = "violawake_sdk.tools.collect_samples:main"
+violawake-download = "violawake_sdk.tools.download_model:main"
+
+[project.urls]
+Homepage = "https://github.com/youorg/violawake"
+Documentation = "https://violawake.readthedocs.io"
+Repository = "https://github.com/youorg/violawake"
+"Bug Tracker" = "https://github.com/youorg/violawake/issues"
+
+[tool.hatch.build.targets.wheel]
+packages = ["src/violawake_sdk"]
+
+[tool.pytest.ini_options]
+testpaths = ["tests"]
+addopts = "-v --cov=violawake_sdk --cov-report=term-missing"
+markers = [
+    "integration: requires model files (deselect with -m 'not integration')",
+    "benchmark: performance benchmark tests",
+    "hardware: requires microphone hardware",
+]
+
+[tool.ruff]
+target-version = "py310"
+line-length = 100
+src = ["src"]
+
+[tool.ruff.lint]
+select = [
+    "E",   # pycodestyle errors
+    "W",   # pycodestyle warnings
+    "F",   # pyflakes
+    "I",   # isort
+    "G",   # flake8-logging-format (no f-strings in logging)
+    "T20", # flake8-print (no print in production code)
+    "UP",  # pyupgrade
+    "B",   # flake8-bugbear
+    "SIM", # flake8-simplify
+    "TID", # flake8-tidy-imports
+]
+ignore = [
+    "E501", # line too long (handled by formatter)
+    "T201", # print() allowed in scripts/tools
+]
+per-file-ignores = { "tools/**" = ["T201"], "src/violawake_sdk/tools/**" = ["T201"] }
+
+[tool.mypy]
+python_version = "3.10"
+strict = true
+warn_return_any = true
+warn_unused_configs = true
+disallow_untyped_defs = true
+
+[tool.coverage.run]
+source = ["src/violawake_sdk"]
+omit = ["*/tests/*", "*/tools/*"]
+
+[tool.coverage.report]
+exclude_lines = [
+    "pragma: no cover",
+    "if TYPE_CHECKING:",
+    "raise NotImplementedError",
+    "if __name__ == .__main__.:",
+]

2026-05-07T16:09:26.284016Z ERROR codex_core::tools::router: error=Exit code: 124
Wall time: 30.1 seconds
Output:
command timed out after 30106 milliseconds
C:\Users\jihad\viola-whisper

 exited 124 in 30106ms:
C:\Users\jihad\viola-whisper

2026-05-07T16:09:56.219477Z ERROR codex_core::tools::router: error=Exit code: 124
Wall time: 60 seconds
Output:
command timed out after 60043 milliseconds
J:\viola-whisper

 exited 124 in 60043ms:
J:\viola-whisper

exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "Get-ChildItem -Force J:\\viola-whisper" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "Get-ChildItem -Force C:\\Users\\jihad\\viola-whisper" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "Get-ChildItem -Path J:\\viola-whisper -Recurse -Filter python.exe -ErrorAction SilentlyContinue | Select-Object -First 20 -ExpandProperty FullName" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "Get-ChildItem -Path C:\\Users\\jihad\\viola-whisper -Recurse -Filter python.exe -ErrorAction SilentlyContinue | Select-Object -First 20 -ExpandProperty FullName" in J:\CLAUDE\PROJECTS\Wakeword
 succeeded in 6112ms:


    Directory: J:\viola-whisper


Mode                 LastWriteTime         Length Name                                                                 
----                 -------------         ------ ----                                                                 
d-----          1/2/2026   1:11 PM                Include                                                              
d-----         8/19/2025   6:05 PM                Lib                                                                  
d-----          5/6/2026   7:44 PM                Scripts                                                              
d-----          3/1/2026  10:43 AM                share                                                                
-a----         8/19/2025   6:05 PM            313 pyvenv.cfg                                                           



 succeeded in 6637ms:


    Directory: C:\Users\jihad\viola-whisper


Mode                 LastWriteTime         Length Name                                                                 
----                 -------------         ------ ----                                                                 
d-----          1/2/2026   1:11 PM                Include                                                              
d-----         8/19/2025   6:05 PM                Lib                                                                  
d-----          5/6/2026   7:44 PM                Scripts                                                              
d-----          3/1/2026  10:43 AM                share                                                                
-a----         8/19/2025   6:05 PM            313 pyvenv.cfg                                                           



 succeeded in 12071ms:
J:\viola-whisper\Scripts\python.exe

 succeeded in 12078ms:
C:\Users\jihad\viola-whisper\Scripts\python.exe

exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "& 'J:\\viola-whisper\\Scripts\\python.exe' -c \"import sys; print('python', sys.version.split()[0]); import torch; print('torch', torch.__version__); import torchaudio; print('torchaudio', torchaudio.__version__)\"" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "& 'J:\\viola-whisper\\Scripts\\python.exe' -c \"import importlib.util; mods=['onnx','onnxscript']; [print(m, importlib.import_module(m).__version__ if importlib.util.find_spec(m) else 'MISSING') for m in mods]\"" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "& 'C:\\Users\\jihad\\viola-whisper\\Scripts\\python.exe' -c \"import sys; print('python', sys.version.split()[0]); import torch; print('torch', torch.__version__); import torchaudio; print('torchaudio', torchaudio.__version__)\"" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "& 'C:\\Users\\jihad\\viola-whisper\\Scripts\\python.exe' -c \"import importlib.util; mods=['onnx','onnxscript']; [print(m, importlib.import_module(m).__version__ if importlib.util.find_spec(m) else 'MISSING') for m in mods]\"" in J:\CLAUDE\PROJECTS\Wakeword
 succeeded in 4283ms:
onnx 1.20.0
onnxscript 0.6.2

 succeeded in 4392ms:
onnx 1.20.0
onnxscript 0.6.2

 succeeded in 10412ms:
python 3.11.9
torch 2.10.0+cu126
torchaudio 2.10.0+cu126

 succeeded in 10394ms:
python 3.11.9
torch 2.10.0+cu126
torchaudio 2.10.0+cu126

codex
Both `J:\viola-whisper` and `C:\Users\jihad\viola-whisper` currently report `torch 2.10.0+cu126`; the container is newer at `2.11.0+cu130`. I’m checking whether the architecture predates the March completed jobs and whether 2.10 vs 2.11 changes the exporter result in a memory-only probe.
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'git log --follow --oneline -- src/violawake_sdk/training/temporal_model.py' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'git log -S "AdaptiveMaxPool1d" --oneline -- src/violawake_sdk/training/temporal_model.py' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "Get-ChildItem -Path J:\\viola-whisper\\Lib\\site-packages -Directory -Filter \"torch-*.dist-info\" | Select-Object Name,LastWriteTime" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "& 'J:\\viola-whisper\\Scripts\\python.exe' -c \"import inspect, torch; print(inspect.signature(torch.onnx.export))\"" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "docker exec wakeword-backend-1 sh -lc \"python - <<'PY'
import pathlib, torch
print(torch.__file__)
p=pathlib.Path(torch.__file__).parents[1]
for d in p.glob('torch-*.dist-info'):
    print(d.name)
PY\"" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "docker exec wakeword-backend-1 sh -lc \"stat -c '%y %n' /usr/local/lib/python3.11/site-packages/torch-*.dist-info 2>/dev/null | head\"" in J:\CLAUDE\PROJECTS\Wakeword
 succeeded in 696ms:

Name                         LastWriteTime      
----                         -------------      
torch-2.10.0+cu126.dist-info 3/1/2026 1:58:43 AM



 succeeded in 739ms:
7345832 fix: close/context managers, backbone pinning, Kokoro fallback, package shim

 succeeded in 937ms:
2026-05-07 13:42:49.000000000 +0000 /usr/local/lib/python3.11/site-packages/torch-2.11.0.dist-info

 succeeded in 1512ms:
6d0714c fix: CI pipeline + 53 ruff violations + format compliance
7345832 fix: close/context managers, backbone pinning, Kokoro fallback, package shim

 succeeded in 3306ms:
/usr/local/lib/python3.11/site-packages/torch/__init__.py
torch-2.11.0.dist-info

 succeeded in 4548ms:
(model: 'torch.nn.Module | torch.export.ExportedProgram | torch.jit.ScriptModule | torch.jit.ScriptFunction', args: 'tuple[Any, ...]' = (), f: 'str | os.PathLike | None' = None, *, kwargs: 'dict[str, Any] | None' = None, verbose: 'bool | None' = None, input_names: 'Sequence[str] | None' = None, output_names: 'Sequence[str] | None' = None, opset_version: 'int | None' = None, dynamo: 'bool' = True, external_data: 'bool' = True, dynamic_shapes: 'dict[str, Any] | tuple[Any, ...] | list[Any] | None' = None, custom_translation_table: 'dict[Callable, Callable | Sequence[Callable]] | None' = None, report: 'bool' = False, optimize: 'bool' = True, verify: 'bool' = False, profile: 'bool' = False, dump_exported_program: 'bool' = False, artifacts_dir: 'str | os.PathLike' = '.', fallback: 'bool' = False, export_params: 'bool' = True, keep_initializers_as_inputs: 'bool' = False, dynamic_axes: 'Mapping[str, Mapping[int, str]] | Mapping[str, Sequence[int]] | None' = None, training: '_C_onnx.TrainingMode' = <TrainingMode.EVAL: 0>, operator_export_type: '_C_onnx.OperatorExportTypes' = <OperatorExportTypes.ONNX: 0>, do_constant_folding: 'bool' = True, custom_opsets: 'Mapping[str, int] | None' = None, export_modules_as_functions: 'bool | Collection[type[torch.nn.Module]]' = False, autograd_inlining: 'bool' = True) -> 'ONNXProgram | None'

exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'docker exec wakeword-backend-1 pwd' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'docker exec wakeword-backend-1 ls -la' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'docker exec wakeword-backend-1 sh -lc "find / -maxdepth 3 -type d -name violawake_sdk 2>/dev/null | head -20"' in J:\CLAUDE\PROJECTS\Wakeword
 succeeded in 890ms:
total 120
drwxr-xr-x 1 app  app   4096 May  7 13:46 .
drwxr-xr-x 1 root root  4096 May  7 13:46 ..
drwxr-xr-x 1 app  app   4096 Mar 26 04:27 .benchmarks
-rwxr-xr-x 1 app  app  53248 May  7 00:54 .coverage
-rwxr-xr-x 1 app  app    878 Mar 26 17:05 .env
-rwxr-xr-x 1 app  app   2291 Mar 29 02:17 .env.example
drwxr-xr-x 1 app  app   4096 Apr  5 13:51 __pycache__
drwxr-xr-x 1 app  app   4096 May  7 13:46 alembic
-rwxr-xr-x 1 app  app   1089 Mar 26 17:04 alembic.ini
drwxr-xr-x 1 app  app   4096 May  7 05:24 app
drwxrwxrwx 1 root root  4096 Mar 26 21:04 corpus
drwxr-xr-x 5 app  app   4096 May  7 16:11 data
-rwxr-xr-x 1 root root  1024 May  7 11:35 entrypoint.sh
drwxrwxrwx 1 root root  4096 Apr  5 12:23 negatives
-rwxr-xr-x 1 app  app    526 May  7 12:03 requirements.txt
-rwxr-xr-x 1 app  app    379 Apr  5 14:21 run.py
drwxr-xr-x 1 app  app   4096 Apr  5 09:50 scripts
drwxr-xr-x 1 app  app   4096 May  7 00:39 tests

 succeeded in 959ms:
/app

 succeeded in 1123ms:
/sdk/src/violawake_sdk

exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "docker exec wakeword-backend-1 sh -lc \"python - <<'PY'
import io, sys, torch
sys.path.insert(0, '/sdk/src')
from violawake_sdk.training.temporal_model import TemporalCNN
m = TemporalCNN().eval()
x = torch.zeros(1, 9, 96)
common = dict(input_names=['embeddings'], output_names=['score'], dynamic_axes={'embeddings': {0: 'batch'}, 'score': {0: 'batch'}}, opset_version=11)
for label, opts in [('default', {}), ('dynamo_false', {'dynamo': False})]:
    try:
        if opts.get('dynamo') is False:
            buf = io.BytesIO()
            torch.onnx.export(m, x, buf, **common, **opts)
            print(label, 'OK', 'bytes', len(buf.getvalue()))
        else:
            result = torch.onnx.export(m, x, None, **common, **opts)
            print(label, 'OK', type(result).__name__)
    except Exception as e:
        print(label, 'FAIL', type(e).__name__)
        for line in str(e).splitlines()[:8]:
            print(line)
PY\"" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "@'
import io, sys, torch
sys.path.insert(0, r'J:\\CLAUDE\\PROJECTS\\Wakeword\\src')
from violawake_sdk.training.temporal_model import TemporalCNN
m = TemporalCNN().eval()
x = torch.zeros(1, 9, 96)
common = dict(input_names=['embeddings'], output_names=['score'], dynamic_axes={'embeddings': {0: 'batch'}, 'score': {0: 'batch'}}, opset_version=11)
for label, opts in [('default', {}), ('dynamo_false', {'dynamo': False})]:
    try:
        if opts.get('dynamo') is False:
            buf = io.BytesIO()
            torch.onnx.export(m, x, buf, **common, **opts)
            print(label, 'OK', 'bytes', len(buf.getvalue()))
        else:
            result = torch.onnx.export(m, x, None, **common, **opts)
            print(label, 'OK', type(result).__name__)
    except Exception as e:
        print(label, 'FAIL', type(e).__name__)
        for line in str(e).splitlines()[:8]:
            print(line)
'@ | & 'J:\\viola-whisper\\Scripts\\python.exe' -" in J:\CLAUDE\PROJECTS\Wakeword
 succeeded in 9862ms:
[torch.onnx] Obtain model graph for `TemporalCNN([...]` with `torch.export.export(..., strict=False)`...
[torch.onnx] Obtain model graph for `TemporalCNN([...]` with `torch.export.export(..., strict=False)`... ✅
[torch.onnx] Run decompositions...
[torch.onnx] Run decompositions... ✅
[torch.onnx] Translate the graph into ONNX...
[torch.onnx] Translate the graph into ONNX... ❌
default FAIL ConversionError
Failed to convert the exported program to an ONNX model. [96mThis is step 3/3[0m of exporting the model to ONNX. Next steps:
- If there is a missing ONNX function, implement it and register it to the registry.
- If there is an internal error during ONNX conversion, debug the error and submit a PR to PyTorch.
- Create an error report with `torch.onnx.export(..., report=True)`, and save the ExportedProgram as a pt2 file. Create an issue in the PyTorch GitHub repository against the [96m*onnx*[0m component. Attach the error report and the pt2 model.

## Exception summary

<class 'torch.onnx._internal.exporter._errors.DispatchError'>: No ONNX function found for <OpOverload(op='aten.adaptive_max_pool2d', overload='default')>. Failure message: No decompositions registered for the real-valued input
dynamo_false OK bytes 102379
<stdin>:14: UserWarning: # 'dynamic_axes' is not recommended when dynamo=True, and may lead to 'torch._dynamo.exc.UserError: Constraints violated.' Supply the 'dynamic_shapes' argument instead if export is unsuccessful.
W0507 16:11:51.813000 42927 site-packages/torch/onnx/_internal/exporter/_compat.py:133] Setting ONNX exporter to use operator set version 18 because the requested opset_version 11 is a lower version than we have implementations for. Automatic version conversion will be performed, which may not be successful at converting to the requested version. If version conversion is unsuccessful, the opset version of the exported model will be kept at 18. Please consider setting opset_version >=18 to leverage latest ONNX features
W0507 16:11:52.876000 42927 site-packages/torch/onnx/_internal/exporter/_registration.py:110] torchvision is not installed. Skipping torchvision::nms
W0507 16:11:52.877000 42927 site-packages/torch/onnx/_internal/exporter/_registration.py:110] torchvision is not installed. Skipping torchvision::roi_align
W0507 16:11:52.877000 42927 site-packages/torch/onnx/_internal/exporter/_registration.py:110] torchvision is not installed. Skipping torchvision::roi_pool
/usr/local/lib/python3.11/copyreg.py:105: FutureWarning: `isinstance(treespec, LeafSpec)` is deprecated, use `isinstance(treespec, TreeSpec) and treespec.is_leaf()` instead.
  return cls.__new__(cls, *args)
<stdin>:11: DeprecationWarning: You are using the legacy TorchScript-based ONNX export. Starting in PyTorch 2.9, the new torch.export-based ONNX exporter has become the default. Learn more about the new export logic: https://docs.pytorch.org/docs/stable/onnx_export.html. For exporting control flow: https://pytorch.org/tutorials/beginner/onnx/export_control_flow_model_to_onnx_tutorial.html

 succeeded in 9869ms:
[torch.onnx] Obtain model graph for `TemporalCNN([...]` with `torch.export.export(..., strict=False)`...
[torch.onnx] default FAIL UnicodeEncodeError
'charmap' codec can't encode character '\u2705' in position 92: character maps to <undefined>
dynamo_false OK bytes 102379
<stdin>:14: UserWarning: # 'dynamic_axes' is not recommended when dynamo=True, and may lead to 'torch._dynamo.exc.UserError: Constraints violated.' Supply the 'dynamic_shapes' argument instead if export is unsuccessful.
W0507 11:11:54.097000 65828 Lib\site-packages\torch\onnx\_internal\exporter\_compat.py:125] Setting ONNX exporter to use operator set version 18 because the requested opset_version 11 is a lower version than we have implementations for. Automatic version conversion will be performed, which may not be successful at converting to the requested version. If version conversion is unsuccessful, the opset version of the exported model will be kept at 18. Please consider setting opset_version >=18 to leverage latest ONNX features
<stdin>:11: DeprecationWarning: You are using the legacy TorchScript-based ONNX export. Starting in PyTorch 2.9, the new torch.export-based ONNX exporter has become the default. Learn more about the new export logic: https://docs.pytorch.org/docs/stable/onnx_export.html. For exporting control flow: https://pytorch.org/tutorials/beginner/onnx/export_control_flow_model_to_onnx_tutorial.html

exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command '$env:PYTHONIOENCODING='"'utf-8'; @'
import io, sys, torch
sys.path.insert(0, r'J:\\CLAUDE\\PROJECTS\\Wakeword\\src')
from violawake_sdk.training.temporal_model import TemporalCNN
m = TemporalCNN().eval()
x = torch.zeros(1, 9, 96)
common = dict(input_names=['embeddings'], output_names=['score'], dynamic_axes={'embeddings': {0: 'batch'}, 'score': {0: 'batch'}}, opset_version=11)
for label, opts in [('default', {}), ('dynamo_false', {'dynamo': False})]:
    try:
        if opts.get('dynamo') is False:
            buf = io.BytesIO()
            torch.onnx.export(m, x, buf, **common, **opts)
            print(label, 'OK', 'bytes', len(buf.getvalue()))
        else:
            result = torch.onnx.export(m, x, None, **common, **opts)
            print(label, 'OK', type(result).__name__)
    except Exception as e:
        print(label, 'FAIL', type(e).__name__)
        for line in str(e).splitlines()[:10]:
            print(line)
'@ | & 'J:\\viola-whisper\\Scripts\\python.exe' -" in J:\CLAUDE\PROJECTS\Wakeword
 succeeded in 8254ms:
[torch.onnx] Obtain model graph for `TemporalCNN([...]` with `torch.export.export(..., strict=False)`...
[torch.onnx] Obtain model graph for `TemporalCNN([...]` with `torch.export.export(..., strict=False)`... ✅
[torch.onnx] Run decomposition...
[torch.onnx] Run decomposition... ✅
[torch.onnx] Translate the graph into ONNX...
[torch.onnx] Translate the graph into ONNX... ❌
default FAIL ConversionError
Failed to convert the exported program to an ONNX model. [96mThis is step 3/3[0m of exporting the model to ONNX. Next steps:
- If there is a missing ONNX function, implement it and register it to the registry.
- If there is an internal error during ONNX conversion, debug the error and submit a PR to PyTorch.
- Create an error report with `torch.onnx.export(..., report=True)`, and save the ExportedProgram as a pt2 file. Create an issue in the PyTorch GitHub repository against the [96m*onnx*[0m component. Attach the error report and the pt2 model.

## Exception summary

<class 'torch.onnx._internal.exporter._errors.DispatchError'>: No ONNX function found for <OpOverload(op='aten.adaptive_max_pool2d', overload='default')>. Failure message: No decompositions registered for the real-valued input
⬆️
<class 'torch.onnx._internal.exporter._errors.ConversionError'>: Error when translating node %adaptive_max_pool2d : [num_users=1] = call_function[target=torch.ops.aten.adaptive_max_pool2d.default](args = (%unsqueeze, [1, 1]), kwargs = {}). See the stack trace for more information.
dynamo_false OK bytes 102379
<stdin>:14: UserWarning: # 'dynamic_axes' is not recommended when dynamo=True, and may lead to 'torch._dynamo.exc.UserError: Constraints violated.' Supply the 'dynamic_shapes' argument instead if export is unsuccessful.
W0507 11:12:16.084000 79340 Lib\site-packages\torch\onnx\_internal\exporter\_compat.py:125] Setting ONNX exporter to use operator set version 18 because the requested opset_version 11 is a lower version than we have implementations for. Automatic version conversion will be performed, which may not be successful at converting to the requested version. If version conversion is unsuccessful, the opset version of the exported model will be kept at 18. Please consider setting opset_version >=18 to leverage latest ONNX features
C:\Users\jihad\AppData\Local\Programs\Python\Python311\Lib\copyreg.py:105: FutureWarning: `isinstance(treespec, LeafSpec)` is deprecated, use `isinstance(treespec, TreeSpec) and treespec.is_leaf()` instead.
  return cls.__new__(cls, *args)
<stdin>:11: DeprecationWarning: You are using the legacy TorchScript-based ONNX export. Starting in PyTorch 2.9, the new torch.export-based ONNX exporter has become the default. Learn more about the new export logic: https://docs.pytorch.org/docs/stable/onnx_export.html. For exporting control flow: https://pytorch.org/tutorials/beginner/onnx/export_control_flow_model_to_onnx_tutorial.html

exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'Get-ChildItem -Force console/backend/data' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'Get-ChildItem -Path console/backend/data -Recurse -File | Select-Object FullName,Length,LastWriteTime' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'Get-ChildItem -Path console/backend/data -Recurse -Filter "*.onnx" -File | Select-Object FullName,Length,LastWriteTime' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'rg -n "architecture|temporal|legacy|train_temporal|TemporalCNN|MLP|model_id|job_queue" console/backend/app src/violawake_sdk/tools src/violawake_sdk/training' in J:\CLAUDE\PROJECTS\Wakeword
 succeeded in 476ms:


    Directory: J:\CLAUDE\PROJECTS\Wakeword\console\backend\data


Mode                 LastWriteTime         Length Name                                                                 
----                 -------------         ------ ----                                                                 
d-----          5/7/2026   7:59 AM                models                                                               
d-----          5/7/2026   7:59 AM                recordings                                                           
d-----          5/6/2026  10:49 PM                tmp                                                                  
-a----         3/26/2026  11:03 AM              0 auth-test-1774540988789338000.db                                     
-a----         3/26/2026  11:03 AM              0 auth-test-inline.db                                                  
-a----         3/26/2026  11:00 AM          69632 auth-test-temp.db                                                    
-a----         3/26/2026  11:32 AM          69632 demo.db                                                              
-a----         3/26/2026  11:10 AM          69632 e2e_test.db                                                          
-a----          5/6/2026  10:49 PM          40960 job_queue.db                                                         
-a----          5/7/2026  11:09 AM          32768 job_queue.db-shm                                                     
-a----          5/7/2026  11:08 AM              0 job_queue.db-wal                                                     
-a----          5/7/2026   7:59 AM         696320 violawake.db                                                         



 succeeded in 921ms:

FullName                                                                                                    Length Last
                                                                                                                   Writ
                                                                                                                   eTim
                                                                                                                   e   
--------                                                                                                    ------ ----
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\1004\token_test.onnx                                    22 5...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\1045\token_test.onnx                                    22 5...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\1072\token_test.onnx                                    22 5...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\1099\token_test.onnx                                    22 5...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\1126\token_test.onnx                                    22 5...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\1153\token_test.onnx                                    22 5...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\154\goldentest_1774541533.onnx                       34010 3...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\245\traintest_16_1774739797.onnx                     34010 3...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\246\statustest_17_1774739797.onnx                    34010 3...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\33\goldentest_1774529250.onnx                        34010 3...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\335\traintest_19_1774739825.onnx                     34010 3...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\336\statustest_20_1774739825.onnx                    34010 3...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\339\token_test.onnx                                     22 3...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\346\statustest_21_1774739825.onnx                    34010 3...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\352\token_test.onnx                                     22 3...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\379\traintest_22_1774739825.onnx                     34010 3...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\380\statustest_23_1774739840.onnx                    34010 3...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\383\token_test.onnx                                     22 3...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\408\traintest_24_1774739840.onnx                     34010 3...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\409\statustest_25_1774739841.onnx                    34010 3...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\412\token_test.onnx                                     22 3...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\437\traintest_26_1774739841.onnx                     34010 3...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\438\statustest_27_1774739856.onnx                    34010 3...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\441\token_test.onnx                                     22 3...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\466\traintest_28_1774739857.onnx                     34010 3...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\467\statustest_29_1774739857.onnx                    34010 3...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\470\token_test.onnx                                     22 3...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\5\goldentest_1774511974.onnx                         34010 3...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\500\token_test.onnx                                     22 3...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\518\traintest_30_1774739857.onnx                     34010 3...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\519\statustest_31_1774739872.onnx                    34010 3...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\522\token_test.onnx                                     22 3...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\53\goldentest_1774534919.onnx                        34010 3...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\563\big chungus_32_1774742592.onnx                   34010 3...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\563\big_chungus_production.onnx                     102378 3...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\564\big chungus_34_1774824703.onnx                   34010 3...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\6\goldentest_1774499766.onnx                         34010 3...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\867\delete-test.onnx                                    16 5...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\881\delete-test.onnx                                    16 5...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\910\token_test.onnx                                     22 5...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\943\token_test.onnx                                     22 5...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\970\token_test.onnx                                     22 5...
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_job_35_uzlsu6kv\traintest_35_1775397115.onnx 102378 4...



 succeeded in 1230ms:
src/violawake_sdk/training\augment.py:297:    # Handle legacy aliases
src/violawake_sdk/training\evaluate.py:6:  - ``temporal_oww`` models with input shape ``(batch, seq_len, 96)``
src/violawake_sdk/training\evaluate.py:7:  - legacy mel/CNN models
src/violawake_sdk/training\evaluate.py:32:def _detect_architecture_from_input_shape(input_shape: list | tuple, input_name: str) -> str:
src/violawake_sdk/training\evaluate.py:41:        logger.info("Architecture detected from input shape %s: temporal_oww", input_shape)
src/violawake_sdk/training\evaluate.py:42:        return "temporal_oww"
src/violawake_sdk/training\evaluate.py:46:            "Architecture detected from input name %s with shape %s: temporal_oww",
src/violawake_sdk/training\evaluate.py:50:        return "temporal_oww"
src/violawake_sdk/training\evaluate.py:56:def _infer_temporal_seq_len(input_shape: list | tuple) -> int:
src/violawake_sdk/training\evaluate.py:57:    """Infer ``seq_len`` from a temporal OWW ONNX input shape."""
src/violawake_sdk/training\evaluate.py:64:def detect_architecture(model_path: Path, session) -> str:
src/violawake_sdk/training\evaluate.py:66:    Auto-detect model architecture from config or ONNX input shape.
src/violawake_sdk/training\evaluate.py:68:    Returns one of ``mlp_on_oww``, ``temporal_oww``, or ``cnn``.
src/violawake_sdk/training\evaluate.py:78:        arch = config.get("architecture", "")
src/violawake_sdk/training\evaluate.py:79:        if arch in ("mlp_on_oww", "temporal_oww", "temporal_cnn"):
src/violawake_sdk/training\evaluate.py:80:            result = "temporal_oww" if arch == "temporal_cnn" else arch
src/violawake_sdk/training\evaluate.py:88:    return _detect_architecture_from_input_shape(input_info.shape, input_info.name)
src/violawake_sdk/training\evaluate.py:258:            "openwakeword required for MLP-on-OWW evaluation. pip install openwakeword"
src/violawake_sdk/training\evaluate.py:292:    """Build a scorer for legacy mel/CNN models."""
src/violawake_sdk/training\evaluate.py:315:def _build_temporal_oww_scorer(session, input_name: str):
src/violawake_sdk/training\evaluate.py:316:    """Build a scorer for temporal OpenWakeWord embedding models."""
src/violawake_sdk/training\evaluate.py:321:            "openwakeword required for temporal OWW evaluation. pip install openwakeword"
src/violawake_sdk/training\evaluate.py:332:    seq_len = _infer_temporal_seq_len(session.get_inputs()[0].shape)
src/violawake_sdk/training\evaluate.py:334:    def _score_file_temporal(wav_path: Path) -> float | None:
src/violawake_sdk/training\evaluate.py:363:            logger.warning("Failed to score file (temporal OWW path): %s", wav_path, exc_info=True)
src/violawake_sdk/training\evaluate.py:366:    return _score_file_temporal
src/violawake_sdk/training\evaluate.py:380:    architecture = detect_architecture(model_path, session)
src/violawake_sdk/training\evaluate.py:381:    logger.info("Using scoring path: %s", architecture)
src/violawake_sdk/training\evaluate.py:383:    if architecture == "mlp_on_oww":
src/violawake_sdk/training\evaluate.py:384:        return architecture, _build_oww_scorer(session, input_name)
src/violawake_sdk/training\evaluate.py:385:    if architecture == "temporal_oww":
src/violawake_sdk/training\evaluate.py:386:        return architecture, _build_temporal_oww_scorer(session, input_name)
src/violawake_sdk/training\evaluate.py:387:    return architecture, _build_cnn_scorer(session, input_name)
src/violawake_sdk/training\evaluate.py:419:    architecture, score_file = build_model_scorer(model_path)
src/violawake_sdk/training\evaluate.py:489:        "architecture": architecture,
src/violawake_sdk/training\evaluate.py:512:        architecture,
src/violawake_sdk/training\temporal_model.py:2:Multi-frame temporal wake word model (J5).
src/violawake_sdk/training\temporal_model.py:5:this module provides models that operate on the full temporal sequence, preserving
src/violawake_sdk/training\temporal_model.py:6:frame ordering and temporal dynamics of the wake word utterance.
src/violawake_sdk/training\temporal_model.py:10:1. **TemporalCNN**: 1D convolution over the frame axis. Two conv layers with
src/violawake_sdk/training\temporal_model.py:12:   by adaptive pooling and a small MLP head. ~15K params.
src/violawake_sdk/training\temporal_model.py:15:   final hidden state through an MLP head. Captures directional temporal patterns.
src/violawake_sdk/training\temporal_model.py:19:   for sequence modeling, then MLP head. Best of both worlds. ~40K params.
src/violawake_sdk/training\temporal_model.py:29:    from violawake_sdk.training.temporal_model import TemporalCNN, TemporalGRU, TemporalConvGRU
src/violawake_sdk/training\temporal_model.py:31:    model = TemporalCNN(embedding_dim=96, seq_len=9)
src/violawake_sdk/training\temporal_model.py:49:    class TemporalCNN(nn.Module):
src/violawake_sdk/training\temporal_model.py:52:        Applies 1D convolutions along the time axis to capture local temporal
src/violawake_sdk/training\temporal_model.py:54:        adaptive max pooling and a small MLP classifier.
src/violawake_sdk/training\temporal_model.py:115:        Uses a small bidirectional GRU to capture temporal ordering of
src/violawake_sdk/training\temporal_model.py:174:        """Hybrid 1D CNN + GRU temporal model.
src/violawake_sdk/training\temporal_model.py:177:        feeds the sequence through a GRU for temporal modeling. This captures
src/violawake_sdk/training\temporal_model.py:178:        both local spectral transitions (conv) and longer-range temporal
src/violawake_sdk/training\temporal_model.py:247:    def export_temporal_onnx(
src/violawake_sdk/training\temporal_model.py:254:        """Export a temporal model to ONNX format.
src/violawake_sdk/training\temporal_model.py:257:            model: Trained temporal model (TemporalCNN, TemporalGRU, or TemporalConvGRU).
src/violawake_sdk/training\temporal_model.py:286:    class TemporalCNN:  # type: ignore[no-redef]
src/violawake_sdk/training\temporal_model.py:301:    def export_temporal_onnx(model, output_path, **kwargs) -> None:
src/violawake_sdk/tools\download_model.py:9:    violawake-download --model temporal_cnn     # Download a specific model
src/violawake_sdk/tools\download_model.py:100:        models_to_download = ["temporal_cnn"]
src/violawake_sdk/tools\download_model.py:101:        print("Downloading default wake word model (temporal_cnn)...")
src/violawake_sdk/tools\evaluate.py:5:  - architecture auto-detection from ONNX input shape
src/violawake_sdk/tools\evaluate.py:48:        help="Path to the ONNX model file (for example: temporal_cnn.onnx)",
src/violawake_sdk/tools\evaluate.py:120:    arch = results["architecture"]
src/violawake_sdk/tools\streaming_eval.py:13:        --model temporal_cnn --threshold 0.80
src/violawake_sdk/tools\streaming_eval.py:18:        --model temporal_cnn --threshold 0.80 --confirm 3
src/violawake_sdk/tools\streaming_eval.py:178:        default="temporal_cnn",
src/violawake_sdk/tools\streaming_eval.py:179:        help="Model name or path (default: temporal_cnn)",
src/violawake_sdk/tools\test_confusables.py:6:        --model models/temporal_cnn.onnx \
src/violawake_sdk/tools\train.py:6:Architecture: TemporalCNN classifier head on top of frozen OpenWakeWord (OWW)
src/violawake_sdk/tools\train.py:8:params). This is the same architecture as the production Viola model.
src/violawake_sdk/tools\train.py:43:    # Legacy MLP mode:
src/violawake_sdk/tools\train.py:48:      --architecture mlp
src/violawake_sdk/tools\train.py:75:# Set by _train_temporal_cnn() via its tmp_dir parameter.
src/violawake_sdk/tools\train.py:678:    generic speech negatives. This helper remains for legacy CLI experiments.
src/violawake_sdk/tools\train.py:739:# Positive augmentation and temporal embedding helpers
src/violawake_sdk/tools\train.py:834:def _extract_temporal_windows_from_audio(
src/violawake_sdk/tools\train.py:841:    """Extract temporal OWW embedding windows from in-memory audio arrays."""
src/violawake_sdk/tools\train.py:906:            f"  [{tag}] {len(audio_clips)} clips -> {len(all_embeddings)} temporal windows "
src/violawake_sdk/tools\train.py:918:def _extract_temporal_embeddings(
src/violawake_sdk/tools\train.py:924:    """Extract 9-frame temporal OWW embedding windows from audio files.
src/violawake_sdk/tools\train.py:927:    extraction method used to train the production temporal_cnn model.
src/violawake_sdk/tools\train.py:955:    embeddings, embedding_source_ids, tags = _extract_temporal_windows_from_audio(
src/violawake_sdk/tools\train.py:970:# MLP single-frame embedding extraction (legacy path)
src/violawake_sdk/tools\train.py:979:    """Extract mean-pooled OWW embeddings for legacy MLP architecture.
src/violawake_sdk/tools\train.py:1110:# Core training: TemporalCNN (production architecture)
src/violawake_sdk/tools\train.py:1114:def _train_temporal_cnn(
src/violawake_sdk/tools\train.py:1134:    """Train a TemporalCNN on 9-frame OWW embedding windows.
src/violawake_sdk/tools\train.py:1137:    - TemporalCNN(96, 9) architecture (~25K params)
src/violawake_sdk/tools\train.py:1159:        seq_len: Number of frames per temporal window.
src/violawake_sdk/tools\train.py:1187:    from violawake_sdk.training.temporal_model import (
src/violawake_sdk/tools\train.py:1188:        TemporalCNN,
src/violawake_sdk/tools\train.py:1190:        export_temporal_onnx,
src/violawake_sdk/tools\train.py:1267:    # -- Extract temporal embeddings -----------------------------------------
src/violawake_sdk/tools\train.py:1269:        print(f"\nStep 3: Extracting {seq_len}-frame temporal OWW embeddings...")
src/violawake_sdk/tools\train.py:1272:    pos_embs, pos_src, pos_tags = _extract_temporal_windows_from_audio(
src/violawake_sdk/tools\train.py:1301:            embs, srcs, tags = _extract_temporal_embeddings(
src/violawake_sdk/tools\train.py:1310:        all_neg_embs, all_neg_src, all_neg_tags = _extract_temporal_embeddings(
src/violawake_sdk/tools\train.py:1382:    # -- Build TemporalCNN ---------------------------------------------------
src/violawake_sdk/tools\train.py:1383:    model = TemporalCNN(embedding_dim=EMBEDDING_DIM, seq_len=seq_len)
src/violawake_sdk/tools\train.py:1388:        print(f"\nModel: TemporalCNN ({n_params:,} params)")
src/violawake_sdk/tools\train.py:1397:        print(f"\nTraining TemporalCNN for up to {epochs} epochs (patience={patience})...")
src/violawake_sdk/tools\train.py:1572:        export_temporal_onnx(model, str(output_path), seq_len=seq_len, embedding_dim=EMBEDDING_DIM)
src/violawake_sdk/tools\train.py:1598:            "architecture": "temporal_cnn",
src/violawake_sdk/tools\train.py:1599:            "model_class": "TemporalCNN",
src/violawake_sdk/tools\train.py:1686:        embs, source_indices, _ = _extract_temporal_embeddings(
src/violawake_sdk/tools\train.py:1831:# Legacy MLP training (kept for backward compatibility)
src/violawake_sdk/tools\train.py:1855:    """Legacy MLP training on mean-pooled OWW embeddings.
src/violawake_sdk/tools\train.py:1857:    Kept for backward compatibility with --architecture mlp.
src/violawake_sdk/tools\train.py:1858:    See _train_temporal_cnn for the production architecture.
src/violawake_sdk/tools\train.py:1976:            print(f"  Generating {n_negatives} synthetic negatives (legacy MLP mode)...")
src/violawake_sdk/tools\train.py:2026:        print(f"\nTraining MLP for up to {epochs} epochs (patience={patience})...")
src/violawake_sdk/tools\train.py:2167:            "architecture": "mlp_on_oww",
src/violawake_sdk/tools\train.py:2273:            "Default: TemporalCNN on 9-frame OWW embedding windows (production architecture).\n"
src/violawake_sdk/tools\train.py:2347:        "--architecture",
src/violawake_sdk/tools\train.py:2348:        choices=["temporal_cnn", "mlp"],
src/violawake_sdk/tools\train.py:2349:        default="temporal_cnn",
src/violawake_sdk/tools\train.py:2350:        help="Model architecture (default: temporal_cnn). "
src/violawake_sdk/tools\train.py:2351:        "'mlp' is the legacy single-frame architecture.",
src/violawake_sdk/tools\train.py:2377:        help="Negatives per positive (used in legacy MLP mode, default: 5)",
src/violawake_sdk/tools\train.py:2384:        help="Hidden dim for legacy MLP (default: 64)",
src/violawake_sdk/tools\train.py:2412:        print(f"Architecture:       {args.architecture}")
src/violawake_sdk/tools\train.py:2428:    # Legacy MLP path
src/violawake_sdk/tools\train.py:2430:    if args.architecture == "mlp":
src/violawake_sdk/tools\train.py:2432:            print("ERROR: --positives is required for MLP architecture.", file=sys.stderr)
src/violawake_sdk/tools\train.py:2435:            print("Using legacy MLP architecture (single-frame, mean-pooled embeddings).\n")
src/violawake_sdk/tools\train.py:2453:    # TemporalCNN path (production architecture)
src/violawake_sdk/tools\train.py:2691:    # -- Step 2-5: Train TemporalCNN ----------------------------------------
src/violawake_sdk/tools\train.py:2692:    _train_temporal_cnn(
src/violawake_sdk/tools\train.py:2751:                    "architecture": results["architecture"],
console/backend/app\health.py:16:from app.job_queue import get_job_queue
console/backend/app\health.py:91:        queue_snapshot = await get_job_queue().runtime_snapshot()
console/backend/app\job_queue.py:90:    model_id: int | None = None
console/backend/app\job_queue.py:151:        self._db_path = db_path or (settings.data_dir / "job_queue.db")
console/backend/app\job_queue.py:258:                        model_id,
console/backend/app\job_queue.py:304:                "model_id": None,
console/backend/app\job_queue.py:345:                "model_id": job.model_id,
console/backend/app\job_queue.py:543:                    model_id INTEGER,
console/backend/app\job_queue.py:695:                    "model_id": job.model_id,
console/backend/app\job_queue.py:746:            model_id = await self._create_model_record(
console/backend/app\job_queue.py:762:                model_id=model_id,
console/backend/app\job_queue.py:783:                    "model_id": model_id,
console/backend/app\job_queue.py:798:                        download_url = f"/models/{model_id}/download"
console/backend/app\job_queue.py:829:                    "model_id": current_job.model_id if current_job is not None else None,
console/backend/app\job_queue.py:858:                    "model_id": current_job.model_id if current_job is not None else None,
console/backend/app\job_queue.py:866:                source="job_queue",
console/backend/app\job_queue.py:969:                "model_id": event.get("model_id"),
console/backend/app\job_queue.py:991:        model_id: int | None = None,
console/backend/app\job_queue.py:1012:        if model_id is not None:
console/backend/app\job_queue.py:1013:            assignments.append("model_id = ?")
console/backend/app\job_queue.py:1014:            values.append(model_id)
console/backend/app\job_queue.py:1260:            model_id=int(row["model_id"]) if row["model_id"] is not None else None,
console/backend/app\job_queue.py:1275:_job_queue: JobQueue | None = None
console/backend/app\job_queue.py:1278:async def init_job_queue() -> JobQueue:
console/backend/app\job_queue.py:1280:    global _job_queue
console/backend/app\job_queue.py:1281:    if _job_queue is None:
console/backend/app\job_queue.py:1282:        _job_queue = JobQueue(max_concurrent=settings.max_concurrent_jobs)
console/backend/app\job_queue.py:1283:        await _job_queue.start()
console/backend/app\job_queue.py:1284:    return _job_queue
console/backend/app\job_queue.py:1287:def get_job_queue() -> JobQueue:
console/backend/app\job_queue.py:1289:    if _job_queue is None:
console/backend/app\job_queue.py:1291:    return _job_queue
console/backend/app\job_queue.py:1294:async def shutdown_job_queue() -> None:
console/backend/app\job_queue.py:1296:    global _job_queue
console/backend/app\job_queue.py:1297:    if _job_queue is None:
console/backend/app\job_queue.py:1299:    await _job_queue.shutdown()
console/backend/app\job_queue.py:1300:    _job_queue = None
console/backend/app\main.py:19:from app.job_queue import init_job_queue, shutdown_job_queue
console/backend/app\main.py:72:        await init_job_queue()
console/backend/app\main.py:101:        await shutdown_job_queue()
console/backend/app\models.py:92:    model_id: Mapped[int | None] = mapped_column(Integer, ForeignKey("trained_models.id"), nullable=True)
console/backend/app\retention.py:32:        from app.job_queue import JobStatus, get_job_queue
console/backend/app\retention.py:33:        queue = get_job_queue()
console/backend/app\schemas.py:116:    model_id: int | None = None
console/backend/app\schemas.py:130:    model_id: int | None = None
console/backend/app\schemas.py:157:    model_id: int | None = None
console/backend/app\services\training_service.py:103:            _train_temporal_cnn,
console/backend/app\services\training_service.py:272:            "message": "Corpus ready: %s pos, %s neg. Training TemporalCNN..." % (len(pos_files), total_neg),
console/backend/app\services\training_service.py:304:        _train_temporal_cnn(
console/backend/app\storage.py:50:    """Return the companion config identifier for a model key or legacy path."""
console/backend/app\storage.py:51:    legacy_path = _as_legacy_path(identifier)
console/backend/app\storage.py:52:    if legacy_path is not None:
console/backend/app\storage.py:53:        return str(legacy_path.with_suffix(".config.json"))
console/backend/app\storage.py:118:        legacy_path = _as_legacy_path(identifier)
console/backend/app\storage.py:119:        if legacy_path is not None:
console/backend/app\storage.py:120:            return _validate_legacy_path(legacy_path)
console/backend/app\storage.py:140:        legacy_path = _as_legacy_path(identifier)
console/backend/app\storage.py:141:        if legacy_path is not None:
console/backend/app\storage.py:142:            return _key_from_local_path(_validate_legacy_path(legacy_path))
console/backend/app\storage.py:248:def _as_legacy_path(identifier: str) -> Path | None:
console/backend/app\storage.py:249:    """Return a legacy absolute path identifier if one was provided."""
console/backend/app\storage.py:256:def _validate_legacy_path(path: Path) -> Path:
console/backend/app\storage.py:257:    """Ensure a legacy filesystem path is inside a managed storage root."""
console/backend/app\storage.py:270:    resolved = _validate_legacy_path(path)
console/backend/app\routes\auth.py:27:from app.job_queue import init_job_queue
console/backend/app\routes\auth.py:247:        model_id = result.scalar_one_or_none()
console/backend/app\routes\auth.py:248:        if model_id is None:
console/backend/app\routes\auth.py:254:        job = await (await init_job_queue()).get_job(body.resource_id)
console/backend/app\routes\auth.py:382:    queue = await init_job_queue()
console/backend/app\routes\jobs.py:11:from app.job_queue import Job, QueueFullError, TooManyPendingJobsError, init_job_queue
console/backend/app\routes\jobs.py:48:        model_id=job.model_id,
console/backend/app\routes\jobs.py:99:    queue = await init_job_queue()
console/backend/app\routes\jobs.py:125:    job = await (await init_job_queue()).get_job(job_id)
console/backend/app\routes\jobs.py:148:    jobs = await (await init_job_queue()).list_jobs(current_user.id)
console/backend/app\routes\jobs.py:157:    await (await init_job_queue()).resume_user(current_user.id)
console/backend/app\routes\jobs.py:166:    breaker = await (await init_job_queue()).get_circuit_breaker(current_user.id)
console/backend/app\routes\jobs.py:193:    cancelled = await (await init_job_queue()).cancel_job(job_id)
console/backend/app\routes\models.py:165:    model_id: int,
console/backend/app\routes\models.py:178:            expected_resource_id=model_id,
console/backend/app\routes\models.py:203:    model_id: int,
console/backend/app\routes\models.py:211:        select(TrainedModel).where(TrainedModel.id == model_id)
console/backend/app\routes\models.py:260:@router.get("/{model_id}/download")
console/backend/app\routes\models.py:262:    model_id: int,
console/backend/app\routes\models.py:272:    current_user = await _resolve_download_user(request, token, db, model_id=model_id)
console/backend/app\routes\models.py:274:    model = await _get_model_for_user(db, model_id, current_user.id)
console/backend/app\routes\models.py:294:@router.get("/{model_id}/config", response_model=ModelConfigResponse)
console/backend/app\routes\models.py:296:    model_id: int,
console/backend/app\routes\models.py:304:    model = await _get_model_for_user(db, model_id, current_user.id)
console/backend/app\routes\models.py:323:@router.get("/{model_id}/performance", response_model=ModelPerformanceResponse)
console/backend/app\routes\models.py:325:    model_id: int,
console/backend/app\routes\models.py:330:    model = await _get_model_for_user(db, model_id, current_user.id)
console/backend/app\routes\models.py:354:    "/{model_id}",
console/backend/app\routes\models.py:359:    model_id: int,
console/backend/app\routes\models.py:366:            TrainedModel.id == model_id,
console/backend/app\routes\teams.py:396:@router.post("/{team_id}/models/{model_id}/share", response_model=TrainedModelResponse)
console/backend/app\routes\teams.py:399:    model_id: int,
console/backend/app\routes\teams.py:411:            TrainedModel.id == model_id,
console/backend/app\routes\teams.py:421:    logger.info("User %s shared model %s with team %s", current_user.id, model_id, team_id)
console/backend/app\routes\training.py:1:"""Compatibility routes for legacy training endpoints."""
console/backend/app\routes\training.py:14:from app.job_queue import TooManySubscribersError, init_job_queue
console/backend/app\routes\training.py:35:def _legacy_status(status_value: str) -> str:
console/backend/app\routes\training.py:36:    """Map queue status names to the legacy training API values."""
console/backend/app\routes\training.py:64:        status=_legacy_status(job.status.value),
console/backend/app\routes\training.py:67:        model_id=job.model_id,
console/backend/app\routes\training.py:123:    queue_manager = await init_job_queue()
console/backend/app\routes\training.py:146:                        "status": _legacy_status(job.status.value),
console/backend/app\routes\training.py:153:                        "model_id": job.model_id,
console/backend/app\routes\training.py:178:                        event = {**event, "status": _legacy_status(str(event["status"]))}

 succeeded in 2243ms:

FullName                                                                                                        Length
--------                                                                                                        ------
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\auth-test-1774540988789338000.db                                    0
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\auth-test-inline.db                                                 0
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\auth-test-temp.db                                               69632
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\demo.db                                                         69632
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\e2e_test.db                                                     69632
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\job_queue.db                                                    40960
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\job_queue.db-shm                                                32768
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\job_queue.db-wal                                                    0
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\violawake.db                                                   696320
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\1004\token_test.onnx                                        22
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\1045\token_test.onnx                                        22
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\1072\token_test.onnx                                        22
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\1099\token_test.onnx                                        22
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\1126\token_test.onnx                                        22
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\1153\token_test.onnx                                        22
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\154\goldentest_1774541533.config.json                      754
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\154\goldentest_1774541533.onnx                           34010
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\245\traintest_16_1774739797.config.json                    806
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\245\traintest_16_1774739797.onnx                         34010
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\246\statustest_17_1774739797.config.json                   805
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\246\statustest_17_1774739797.onnx                        34010
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\33\goldentest_1774529250.config.json                       755
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\33\goldentest_1774529250.onnx                            34010
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\335\traintest_19_1774739825.config.json                    806
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\335\traintest_19_1774739825.onnx                         34010
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\336\statustest_20_1774739825.config.json                   806
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\336\statustest_20_1774739825.onnx                        34010
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\339\token_test.onnx                                         22
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\346\statustest_21_1774739825.config.json                   806
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\346\statustest_21_1774739825.onnx                        34010
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\352\token_test.onnx                                         22
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\379\traintest_22_1774739825.config.json                    806
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\379\traintest_22_1774739825.onnx                         34010
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\380\statustest_23_1774739840.config.json                   806
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\380\statustest_23_1774739840.onnx                        34010
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\383\token_test.onnx                                         22
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\408\traintest_24_1774739840.config.json                    806
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\408\traintest_24_1774739840.onnx                         34010
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\409\statustest_25_1774739841.config.json                   806
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\409\statustest_25_1774739841.onnx                        34010
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\412\token_test.onnx                                         22
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\437\traintest_26_1774739841.config.json                    806
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\437\traintest_26_1774739841.onnx                         34010
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\438\statustest_27_1774739856.config.json                   806
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\438\statustest_27_1774739856.onnx                        34010
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\441\token_test.onnx                                         22
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\466\traintest_28_1774739857.config.json                    806
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\466\traintest_28_1774739857.onnx                         34010
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\467\statustest_29_1774739857.config.json                   806
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\467\statustest_29_1774739857.onnx                        34010
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\470\token_test.onnx                                         22
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\5\goldentest_1774511974.config.json                        754
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\5\goldentest_1774511974.onnx                             34010
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\500\token_test.onnx                                         22
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\518\traintest_30_1774739857.config.json                    805
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\518\traintest_30_1774739857.onnx                         34010
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\519\statustest_31_1774739872.config.json                   807
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\519\statustest_31_1774739872.onnx                        34010
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\522\token_test.onnx                                         22
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\53\goldentest_1774534919.config.json                       754
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\53\goldentest_1774534919.onnx                            34010
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\563\big chungus_32_1774742592.config.json                  808
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\563\big chungus_32_1774742592.onnx                       34010
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\563\big_chungus_production.config.json                    1694
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\563\big_chungus_production.onnx                         102378
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\563\big_chungus_temporal_1774743406.config.json           1633
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\564\big chungus_34_1774824703.config.json                  809
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\564\big chungus_34_1774824703.onnx                       34010
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\6\goldentest_1774499766.config.json                        755
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\6\goldentest_1774499766.onnx                             34010
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\867\delete-test.config.json                                 17
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\867\delete-test.onnx                                        16
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\881\delete-test.config.json                                 17
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\881\delete-test.onnx                                        16
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\910\token_test.onnx                                         22
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\943\token_test.onnx                                         22
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\models\970\token_test.onnx                                         22
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\100\traintest\traintest_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\100\traintest\traintest_0002.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\100\traintest\traintest_0003.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\100\traintest\traintest_0004.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\100\traintest\traintest_0005.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\100\traintest\traintest_0006.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\100\traintest\traintest_0007.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\100\traintest\traintest_0008.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\100\traintest\traintest_0009.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\100\traintest\traintest_0010.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1000\batchtest\batchtest_0cd31037.wav                49644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1000\batchtest\batchtest_578efda5.wav                50284
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1000\batchtest\batchtest_57d1f42d.wav                50604
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1000\batchtest\batchtest_65fbcb68.wav                50924
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1000\batchtest\batchtest_a12fa975.wav                49964
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1000\batchtest\batchtest_a9c06e2c.wav                48684
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1000\batchtest\batchtest_c16a0dba.wav                49324
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1000\batchtest\batchtest_cdbec63b.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1000\batchtest\batchtest_d215dfb3.wav                49004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1000\batchtest\batchtest_dfdf2023.wav                48364
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1001\traintest\traintest_03017f75.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1001\traintest\traintest_385b7d3f.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1001\traintest\traintest_3dfbca62.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1001\traintest\traintest_3f6ba158.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1001\traintest\traintest_46f9ffd7.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1001\traintest\traintest_5b47a552.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1001\traintest\traintest_7c99e45b.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1001\traintest\traintest_c3c06486.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1001\traintest\traintest_d91ada89.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1001\traintest\traintest_ea90aa9a.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1002\statustest\statustest_0bb15625.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1002\statustest\statustest_0f5dc341.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1002\statustest\statustest_11bead68.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1002\statustest\statustest_214dea2d.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1002\statustest\statustest_55c1d886.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1002\statustest\statustest_8e7db2d2.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1002\statustest\statustest_a4243fe6.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1002\statustest\statustest_c2a45a6e.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1002\statustest\statustest_ca6024bb.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1002\statustest\statustest_e5f63345.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1008\floatnorm\floatnorm_ed2494d1.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\101\statustest\statustest_0001.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\101\statustest\statustest_0002.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\101\statustest\statustest_0003.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\101\statustest\statustest_0004.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\101\statustest\statustest_0005.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\101\statustest\statustest_0006.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\101\statustest\statustest_0007.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\101\statustest\statustest_0008.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\101\statustest\statustest_0009.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\101\statustest\statustest_0010.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1011\quota-free-ok\quota-free-ok_0119fc95.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1011\quota-free-ok\quota-free-ok_11305023.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1011\quota-free-ok\quota-free-ok_14620970.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1011\quota-free-ok\quota-free-ok_adb9ad9e.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1011\quota-free-ok\quota-free-ok_af714aa5.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1012\quota-free-limit\quota-free-limit_2de345ca.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1012\quota-free-limit\quota-free-limit_b24df263.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1012\quota-free-limit\quota-free-limit_baf132e1.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1012\quota-free-limit\quota-free-limit_ccc0b835.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1012\quota-free-limit\quota-free-limit_e8bca223.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1018\quota-free-ok\quota-free-ok_4345423d.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1018\quota-free-ok\quota-free-ok_91813366.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1018\quota-free-ok\quota-free-ok_b1facfa0.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1018\quota-free-ok\quota-free-ok_bdc59c8b.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1018\quota-free-ok\quota-free-ok_d68355ee.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1019\quota-free-limit\quota-free-limit_58e75778.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1019\quota-free-limit\quota-free-limit_6020fba7.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1019\quota-free-limit\quota-free-limit_82d87b44.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1019\quota-free-limit\quota-free-limit_a94efe8a.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1019\quota-free-limit\quota-free-limit_dba8cc27.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1025\quota-free-ok\quota-free-ok_547e57c7.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1025\quota-free-ok\quota-free-ok_6f9acf8e.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1025\quota-free-ok\quota-free-ok_9191ffcd.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1025\quota-free-ok\quota-free-ok_b0689ab8.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1025\quota-free-ok\quota-free-ok_fa55ecd1.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1026\quota-free-limit\quota-free-limit_369186be.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1026\quota-free-limit\quota-free-limit_55012d59.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1026\quota-free-limit\quota-free-limit_c042e233.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1026\quota-free-limit\quota-free-limit_e7221031.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1026\quota-free-limit\quota-free-limit_e8b719ad.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1039\testword\testword_5d3b85c9.wav                  48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1040\listtest\listtest_2f4853fd.wav                  48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1041\batchtest\batchtest_0b19cddd.wav                50604
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1041\batchtest\batchtest_1e9bfb04.wav                50284
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1041\batchtest\batchtest_1f6dc052.wav                49324
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1041\batchtest\batchtest_35c277d5.wav                49964
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1041\batchtest\batchtest_6f5ef24b.wav                50924
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1041\batchtest\batchtest_91cad0ea.wav                49004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1041\batchtest\batchtest_9e72d7a1.wav                48364
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1041\batchtest\batchtest_b3b2672f.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1041\batchtest\batchtest_bfdd8e8b.wav                48684
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1041\batchtest\batchtest_d31344bd.wav                49644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1042\traintest\traintest_1c39a7c7.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1042\traintest\traintest_22ca8c27.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1042\traintest\traintest_7904e27a.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1042\traintest\traintest_87141e3e.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1042\traintest\traintest_8b1e3f28.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1042\traintest\traintest_be56c902.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1042\traintest\traintest_c044b670.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1042\traintest\traintest_eb95a030.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1042\traintest\traintest_ec85d0a7.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1042\traintest\traintest_fa61faf4.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1043\statustest\statustest_31dd1009.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1043\statustest\statustest_3d3b9840.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1043\statustest\statustest_441b3212.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1043\statustest\statustest_4f774c7a.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1043\statustest\statustest_5c8629c0.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1043\statustest\statustest_7a5570d8.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1043\statustest\statustest_7d190e19.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1043\statustest\statustest_8c626d2a.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1043\statustest\statustest_d1bac409.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1043\statustest\statustest_f55fd853.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1049\floatnorm\floatnorm_b6b4a0c4.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1052\quota-free-ok\quota-free-ok_0f50ac90.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1052\quota-free-ok\quota-free-ok_41daf416.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1052\quota-free-ok\quota-free-ok_bae826a1.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1052\quota-free-ok\quota-free-ok_c4c98d1c.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1052\quota-free-ok\quota-free-ok_d797853b.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1053\quota-free-limit\quota-free-limit_0d1e9be0.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1053\quota-free-limit\quota-free-limit_6a0181b0.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1053\quota-free-limit\quota-free-limit_ea392fee.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1053\quota-free-limit\quota-free-limit_f2f142bc.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1053\quota-free-limit\quota-free-limit_f6b7f650.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1066\testword\testword_99a5cdf0.wav                  48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1067\listtest\listtest_f9816e50.wav                  48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1068\batchtest\batchtest_41f19776.wav                49004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1068\batchtest\batchtest_4ef7d922.wav                49324
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1068\batchtest\batchtest_62eb9071.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1068\batchtest\batchtest_948d603e.wav                49964
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1068\batchtest\batchtest_a2954be2.wav                49644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1068\batchtest\batchtest_a9ef4a4e.wav                50284
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1068\batchtest\batchtest_d2069e72.wav                48684
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1068\batchtest\batchtest_d861289d.wav                48364
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1068\batchtest\batchtest_f23384c9.wav                50924
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1068\batchtest\batchtest_fcae543a.wav                50604
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1069\traintest\traintest_1970c500.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1069\traintest\traintest_43bae0f5.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1069\traintest\traintest_4fbcb244.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1069\traintest\traintest_6c2e32de.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1069\traintest\traintest_6c6fd957.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1069\traintest\traintest_743cd4e5.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1069\traintest\traintest_aa99e1db.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1069\traintest\traintest_cbd3da4f.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1069\traintest\traintest_dd01ae2b.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1069\traintest\traintest_e63fd28a.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1070\statustest\statustest_0b12d49e.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1070\statustest\statustest_26b7cfab.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1070\statustest\statustest_27c06578.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1070\statustest\statustest_3504b164.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1070\statustest\statustest_494207b9.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1070\statustest\statustest_5a693840.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1070\statustest\statustest_7374ba3b.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1070\statustest\statustest_88a95551.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1070\statustest\statustest_b79314aa.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1070\statustest\statustest_d13a2ed0.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1076\floatnorm\floatnorm_f0e7d97d.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1079\quota-free-ok\quota-free-ok_0bce6d77.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1079\quota-free-ok\quota-free-ok_479c2cb7.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1079\quota-free-ok\quota-free-ok_686a689a.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1079\quota-free-ok\quota-free-ok_853f06fc.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1079\quota-free-ok\quota-free-ok_fb017288.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1080\quota-free-limit\quota-free-limit_53aa9144.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1080\quota-free-limit\quota-free-limit_7261365a.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1080\quota-free-limit\quota-free-limit_76e4c8fc.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1080\quota-free-limit\quota-free-limit_8bd9252b.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1080\quota-free-limit\quota-free-limit_ea9400e5.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1093\testword\testword_dd1ae91d.wav                  48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1094\listtest\listtest_b04c6aa6.wav                  48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1095\batchtest\batchtest_0f594965.wav                49004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1095\batchtest\batchtest_3014a80b.wav                48364
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1095\batchtest\batchtest_3383bd9d.wav                50284
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1095\batchtest\batchtest_5dd74119.wav                49644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1095\batchtest\batchtest_9e5a7c52.wav                49964
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1095\batchtest\batchtest_b5606a70.wav                49324
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1095\batchtest\batchtest_b948685e.wav                50604
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1095\batchtest\batchtest_bc7de6c4.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1095\batchtest\batchtest_c0f47274.wav                48684
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1095\batchtest\batchtest_c630935e.wav                50924
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1096\traintest\traintest_009c35d7.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1096\traintest\traintest_0143d863.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1096\traintest\traintest_1f7841e2.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1096\traintest\traintest_2467c452.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1096\traintest\traintest_3033ab00.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1096\traintest\traintest_38139f84.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1096\traintest\traintest_425cb0cf.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1096\traintest\traintest_46262a6c.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1096\traintest\traintest_926480fb.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1096\traintest\traintest_c721a25a.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1097\statustest\statustest_05eab2f3.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1097\statustest\statustest_0f5ad1d1.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1097\statustest\statustest_13b46409.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1097\statustest\statustest_1e2d6986.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1097\statustest\statustest_36dd132b.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1097\statustest\statustest_5d2e5c1f.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1097\statustest\statustest_6c0267a6.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1097\statustest\statustest_736719a4.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1097\statustest\statustest_9b2e5611.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1097\statustest\statustest_cfc8c99d.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\11\testword\testword_0001.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1103\floatnorm\floatnorm_992f062e.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1106\quota-free-ok\quota-free-ok_001f984c.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1106\quota-free-ok\quota-free-ok_01d7b7ef.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1106\quota-free-ok\quota-free-ok_2f2a7360.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1106\quota-free-ok\quota-free-ok_2f566962.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1106\quota-free-ok\quota-free-ok_c533c6e5.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1107\quota-free-limit\quota-free-limit_08bf8117.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1107\quota-free-limit\quota-free-limit_5441ac32.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1107\quota-free-limit\quota-free-limit_589a5935.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1107\quota-free-limit\quota-free-limit_6aa26148.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1107\quota-free-limit\quota-free-limit_8b1a0e3a.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1120\testword\testword_9ffb16c3.wav                  48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1121\listtest\listtest_e861c169.wav                  48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1122\batchtest\batchtest_1f020f6a.wav                49964
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1122\batchtest\batchtest_2605b1b7.wav                49644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1122\batchtest\batchtest_4853ade2.wav                48364
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1122\batchtest\batchtest_4fcd4a18.wav                48684
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1122\batchtest\batchtest_6a64e5c0.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1122\batchtest\batchtest_85b5c51e.wav                49324
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1122\batchtest\batchtest_c201eb82.wav                50924
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1122\batchtest\batchtest_c7cdbe80.wav                50604
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1122\batchtest\batchtest_ccdf088a.wav                49004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1122\batchtest\batchtest_dd07e215.wav                50284
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1123\traintest\traintest_0658732b.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1123\traintest\traintest_212e8a04.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1123\traintest\traintest_26fbe343.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1123\traintest\traintest_3d386c8d.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1123\traintest\traintest_5483bd1f.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1123\traintest\traintest_83edee19.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1123\traintest\traintest_8509e5bb.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1123\traintest\traintest_9ab06ccb.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1123\traintest\traintest_d6ce8838.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1123\traintest\traintest_e20f1bfb.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1124\statustest\statustest_0052656b.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1124\statustest\statustest_23cb434e.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1124\statustest\statustest_27b5cd3f.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1124\statustest\statustest_2e6cb69e.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1124\statustest\statustest_463a7728.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1124\statustest\statustest_8f751ff8.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1124\statustest\statustest_a8ea6c12.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1124\statustest\statustest_d70f2822.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1124\statustest\statustest_e9422328.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1124\statustest\statustest_fd56d5b9.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1130\floatnorm\floatnorm_caf36546.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1133\quota-free-ok\quota-free-ok_4565e998.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1133\quota-free-ok\quota-free-ok_84e0615c.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1133\quota-free-ok\quota-free-ok_ca42c8dd.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1133\quota-free-ok\quota-free-ok_d681d236.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1133\quota-free-ok\quota-free-ok_fb9d384d.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1134\quota-free-limit\quota-free-limit_27799a9f.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1134\quota-free-limit\quota-free-limit_67c2568f.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1134\quota-free-limit\quota-free-limit_9e769cad.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1134\quota-free-limit\quota-free-limit_cd44d93e.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1134\quota-free-limit\quota-free-limit_e27f9a09.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\114\testword\testword_0001.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1147\testword\testword_7e5c278a.wav                  48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1148\listtest\listtest_4320da8b.wav                  48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1149\batchtest\batchtest_35e99896.wav                49644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1149\batchtest\batchtest_4a338c5e.wav                50924
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1149\batchtest\batchtest_6b82c99a.wav                48684
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1149\batchtest\batchtest_87c60105.wav                48364
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1149\batchtest\batchtest_98fa31ba.wav                50284
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1149\batchtest\batchtest_afb67c46.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1149\batchtest\batchtest_d45eeb27.wav                50604
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1149\batchtest\batchtest_d80fc13c.wav                49964
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1149\batchtest\batchtest_dda51d0f.wav                49324
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1149\batchtest\batchtest_e2b6af35.wav                49004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\115\listtest\listtest_0001.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1150\traintest\traintest_11e7354f.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1150\traintest\traintest_1a9d891b.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1150\traintest\traintest_283a78c1.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1150\traintest\traintest_42456054.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1150\traintest\traintest_4257ecc8.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1150\traintest\traintest_5f9edb12.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1150\traintest\traintest_b98dff9c.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1150\traintest\traintest_c98133ad.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1150\traintest\traintest_e1555876.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1150\traintest\traintest_faad0e13.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1151\statustest\statustest_0d092904.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1151\statustest\statustest_1139c6f0.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1151\statustest\statustest_457f190f.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1151\statustest\statustest_48ba0b95.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1151\statustest\statustest_5aaee071.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1151\statustest\statustest_5f3d2a05.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1151\statustest\statustest_6c464491.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1151\statustest\statustest_b0ee1a92.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1151\statustest\statustest_b8add167.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1151\statustest\statustest_e2b0f76f.wav              48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1157\floatnorm\floatnorm_f3fdbba1.wav                48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\116\batchtest\batchtest_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\116\batchtest\batchtest_0002.wav                     48364
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\116\batchtest\batchtest_0003.wav                     48684
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\116\batchtest\batchtest_0004.wav                     49004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\116\batchtest\batchtest_0005.wav                     49324
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\116\batchtest\batchtest_0006.wav                     49644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\116\batchtest\batchtest_0007.wav                     49964
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\116\batchtest\batchtest_0008.wav                     50284
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\116\batchtest\batchtest_0009.wav                     50604
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\116\batchtest\batchtest_0010.wav                     50924
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1160\quota-free-ok\quota-free-ok_59528cc0.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1160\quota-free-ok\quota-free-ok_5ce58704.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1160\quota-free-ok\quota-free-ok_b8d0d092.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1160\quota-free-ok\quota-free-ok_dab74951.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1160\quota-free-ok\quota-free-ok_ede70773.wav        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1161\quota-free-limit\quota-free-limit_045c8577.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1161\quota-free-limit\quota-free-limit_0f6a99fe.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1161\quota-free-limit\quota-free-limit_8d293775.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1161\quota-free-limit\quota-free-limit_9c977608.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\1161\quota-free-limit\quota-free-limit_bdd31286.wav  32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\117\traintest\traintest_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\117\traintest\traintest_0002.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\117\traintest\traintest_0003.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\117\traintest\traintest_0004.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\117\traintest\traintest_0005.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\117\traintest\traintest_0006.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\117\traintest\traintest_0007.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\117\traintest\traintest_0008.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\117\traintest\traintest_0009.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\117\traintest\traintest_0010.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\118\statustest\statustest_0001.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\118\statustest\statustest_0002.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\118\statustest\statustest_0003.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\118\statustest\statustest_0004.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\118\statustest\statustest_0005.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\118\statustest\statustest_0006.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\118\statustest\statustest_0007.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\118\statustest\statustest_0008.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\118\statustest\statustest_0009.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\118\statustest\statustest_0010.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\12\listtest\listtest_0001.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\13\batchtest\batchtest_0001.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\13\batchtest\batchtest_0002.wav                      48364
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\13\batchtest\batchtest_0003.wav                      48684
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\13\batchtest\batchtest_0004.wav                      49004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\13\batchtest\batchtest_0005.wav                      49324
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\13\batchtest\batchtest_0006.wav                      49644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\13\batchtest\batchtest_0007.wav                      49964
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\13\batchtest\batchtest_0008.wav                      50284
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\13\batchtest\batchtest_0009.wav                      50604
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\13\batchtest\batchtest_0010.wav                      50924
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\131\testword\testword_0001.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\132\listtest\listtest_0001.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\133\batchtest\batchtest_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\133\batchtest\batchtest_0002.wav                     48364
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\133\batchtest\batchtest_0003.wav                     48684
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\133\batchtest\batchtest_0004.wav                     49004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\133\batchtest\batchtest_0005.wav                     49324
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\133\batchtest\batchtest_0006.wav                     49644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\133\batchtest\batchtest_0007.wav                     49964
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\133\batchtest\batchtest_0008.wav                     50284
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\133\batchtest\batchtest_0009.wav                     50604
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\133\batchtest\batchtest_0010.wav                     50924
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\134\traintest\traintest_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\134\traintest\traintest_0002.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\134\traintest\traintest_0003.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\134\traintest\traintest_0004.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\134\traintest\traintest_0005.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\134\traintest\traintest_0006.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\134\traintest\traintest_0007.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\134\traintest\traintest_0008.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\134\traintest\traintest_0009.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\134\traintest\traintest_0010.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\135\statustest\statustest_0001.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\135\statustest\statustest_0002.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\135\statustest\statustest_0003.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\135\statustest\statustest_0004.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\135\statustest\statustest_0005.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\135\statustest\statustest_0006.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\135\statustest\statustest_0007.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\135\statustest\statustest_0008.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\135\statustest\statustest_0009.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\135\statustest\statustest_0010.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\14\traintest\traintest_0001.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\14\traintest\traintest_0002.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\14\traintest\traintest_0003.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\14\traintest\traintest_0004.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\14\traintest\traintest_0005.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\14\traintest\traintest_0006.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\14\traintest\traintest_0007.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\14\traintest\traintest_0008.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\14\traintest\traintest_0009.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\14\traintest\traintest_0010.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\151\testword\testword_0001.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\152\testword\testword_0001.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\152\testword\testword_0002.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\152\testword\testword_0003.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\152\testword\testword_0004.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\152\testword\testword_0005.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\152\testword\testword_0006.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\152\testword\testword_0007.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\152\testword\testword_0008.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\152\testword\testword_0009.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\152\testword\testword_0010.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\153\listtest\listtest_0001.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\154\goldentest\goldentest_0001.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\154\goldentest\goldentest_0002.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\154\goldentest\goldentest_0003.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\154\goldentest\goldentest_0004.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\154\goldentest\goldentest_0005.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\154\goldentest\goldentest_0006.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\154\goldentest\goldentest_0007.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\154\goldentest\goldentest_0008.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\154\goldentest\goldentest_0009.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\154\goldentest\goldentest_0010.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\157\quota-free-ok\quota-free-ok_0001.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\157\quota-free-ok\quota-free-ok_0002.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\157\quota-free-ok\quota-free-ok_0003.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\157\quota-free-ok\quota-free-ok_0004.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\157\quota-free-ok\quota-free-ok_0005.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\158\quota-free-limit\quota-free-limit_0001.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\158\quota-free-limit\quota-free-limit_0002.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\158\quota-free-limit\quota-free-limit_0003.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\158\quota-free-limit\quota-free-limit_0004.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\158\quota-free-limit\quota-free-limit_0005.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\164\quota-free-ok\quota-free-ok_0001.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\164\quota-free-ok\quota-free-ok_0002.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\164\quota-free-ok\quota-free-ok_0003.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\164\quota-free-ok\quota-free-ok_0004.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\164\quota-free-ok\quota-free-ok_0005.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\165\quota-free-limit\quota-free-limit_0001.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\165\quota-free-limit\quota-free-limit_0002.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\165\quota-free-limit\quota-free-limit_0003.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\165\quota-free-limit\quota-free-limit_0004.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\165\quota-free-limit\quota-free-limit_0005.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\177\quota-free-ok\quota-free-ok_0001.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\177\quota-free-ok\quota-free-ok_0002.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\177\quota-free-ok\quota-free-ok_0003.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\177\quota-free-ok\quota-free-ok_0004.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\177\quota-free-ok\quota-free-ok_0005.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\178\quota-free-limit\quota-free-limit_0001.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\178\quota-free-limit\quota-free-limit_0002.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\178\quota-free-limit\quota-free-limit_0003.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\178\quota-free-limit\quota-free-limit_0004.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\178\quota-free-limit\quota-free-limit_0005.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\18\testword\testword_0001.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\185\quota-free-ok\quota-free-ok_0001.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\185\quota-free-ok\quota-free-ok_0002.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\185\quota-free-ok\quota-free-ok_0003.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\185\quota-free-ok\quota-free-ok_0004.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\185\quota-free-ok\quota-free-ok_0005.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\186\quota-free-limit\quota-free-limit_0001.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\186\quota-free-limit\quota-free-limit_0002.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\186\quota-free-limit\quota-free-limit_0003.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\186\quota-free-limit\quota-free-limit_0004.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\186\quota-free-limit\quota-free-limit_0005.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\19\listtest\listtest_0001.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\20\batchtest\batchtest_0001.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\20\batchtest\batchtest_0002.wav                      48364
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\20\batchtest\batchtest_0003.wav                      48684
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\20\batchtest\batchtest_0004.wav                      49004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\20\batchtest\batchtest_0005.wav                      49324
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\20\batchtest\batchtest_0006.wav                      49644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\20\batchtest\batchtest_0007.wav                      49964
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\20\batchtest\batchtest_0008.wav                      50284
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\20\batchtest\batchtest_0009.wav                      50604
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\20\batchtest\batchtest_0010.wav                      50924
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\20\testword\testword_0001.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\205\testword\testword_0001.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\206\listtest\listtest_0001.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\207\batchtest\batchtest_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\207\batchtest\batchtest_0002.wav                     48364
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\207\batchtest\batchtest_0003.wav                     48684
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\207\batchtest\batchtest_0004.wav                     49004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\207\batchtest\batchtest_0005.wav                     49324
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\207\batchtest\batchtest_0006.wav                     49644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\207\batchtest\batchtest_0007.wav                     49964
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\207\batchtest\batchtest_0008.wav                     50284
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\207\batchtest\batchtest_0009.wav                     50604
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\207\batchtest\batchtest_0010.wav                     50924
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\208\traintest\traintest_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\208\traintest\traintest_0002.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\208\traintest\traintest_0003.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\208\traintest\traintest_0004.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\208\traintest\traintest_0005.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\208\traintest\traintest_0006.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\208\traintest\traintest_0007.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\208\traintest\traintest_0008.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\208\traintest\traintest_0009.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\208\traintest\traintest_0010.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\209\statustest\statustest_0001.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\209\statustest\statustest_0002.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\209\statustest\statustest_0003.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\209\statustest\statustest_0004.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\209\statustest\statustest_0005.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\209\statustest\statustest_0006.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\209\statustest\statustest_0007.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\209\statustest\statustest_0008.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\209\statustest\statustest_0009.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\209\statustest\statustest_0010.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\21\listtest\listtest_0001.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\21\traintest\traintest_0001.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\21\traintest\traintest_0002.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\21\traintest\traintest_0003.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\21\traintest\traintest_0004.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\21\traintest\traintest_0005.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\21\traintest\traintest_0006.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\21\traintest\traintest_0007.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\21\traintest\traintest_0008.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\21\traintest\traintest_0009.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\21\traintest\traintest_0010.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\216\quota-free-ok\quota-free-ok_0001.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\216\quota-free-ok\quota-free-ok_0002.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\216\quota-free-ok\quota-free-ok_0003.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\216\quota-free-ok\quota-free-ok_0004.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\216\quota-free-ok\quota-free-ok_0005.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\217\quota-free-limit\quota-free-limit_0001.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\217\quota-free-limit\quota-free-limit_0002.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\217\quota-free-limit\quota-free-limit_0003.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\217\quota-free-limit\quota-free-limit_0004.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\217\quota-free-limit\quota-free-limit_0005.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\22\batchtest\batchtest_0001.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\22\batchtest\batchtest_0002.wav                      48364
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\22\batchtest\batchtest_0003.wav                      48684
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\22\batchtest\batchtest_0004.wav                      49004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\22\batchtest\batchtest_0005.wav                      49324
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\22\batchtest\batchtest_0006.wav                      49644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\22\batchtest\batchtest_0007.wav                      49964
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\22\batchtest\batchtest_0008.wav                      50284
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\22\batchtest\batchtest_0009.wav                      50604
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\22\batchtest\batchtest_0010.wav                      50924
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\22\statustest\statustest_0001.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\22\statustest\statustest_0002.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\22\statustest\statustest_0003.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\22\statustest\statustest_0004.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\22\statustest\statustest_0005.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\22\statustest\statustest_0006.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\22\statustest\statustest_0007.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\22\statustest\statustest_0008.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\22\statustest\statustest_0009.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\22\statustest\statustest_0010.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\224\quota-free-ok\quota-free-ok_0001.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\224\quota-free-ok\quota-free-ok_0002.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\224\quota-free-ok\quota-free-ok_0003.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\224\quota-free-ok\quota-free-ok_0004.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\224\quota-free-ok\quota-free-ok_0005.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\225\quota-free-limit\quota-free-limit_0001.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\225\quota-free-limit\quota-free-limit_0002.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\225\quota-free-limit\quota-free-limit_0003.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\225\quota-free-limit\quota-free-limit_0004.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\225\quota-free-limit\quota-free-limit_0005.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\23\traintest\traintest_0001.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\23\traintest\traintest_0002.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\23\traintest\traintest_0003.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\23\traintest\traintest_0004.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\23\traintest\traintest_0005.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\23\traintest\traintest_0006.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\23\traintest\traintest_0007.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\23\traintest\traintest_0008.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\23\traintest\traintest_0009.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\23\traintest\traintest_0010.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\24\statustest\statustest_0001.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\24\statustest\statustest_0002.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\24\statustest\statustest_0003.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\24\statustest\statustest_0004.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\24\statustest\statustest_0005.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\24\statustest\statustest_0006.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\24\statustest\statustest_0007.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\24\statustest\statustest_0008.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\24\statustest\statustest_0009.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\24\statustest\statustest_0010.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\242\testword\testword_0001.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\243\listtest\listtest_0001.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\244\batchtest\batchtest_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\244\batchtest\batchtest_0002.wav                     48364
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\244\batchtest\batchtest_0003.wav                     48684
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\244\batchtest\batchtest_0004.wav                     49004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\244\batchtest\batchtest_0005.wav                     49324
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\244\batchtest\batchtest_0006.wav                     49644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\244\batchtest\batchtest_0007.wav                     49964
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\244\batchtest\batchtest_0008.wav                     50284
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\244\batchtest\batchtest_0009.wav                     50604
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\244\batchtest\batchtest_0010.wav                     50924
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\245\traintest\traintest_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\245\traintest\traintest_0002.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\245\traintest\traintest_0003.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\245\traintest\traintest_0004.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\245\traintest\traintest_0005.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\245\traintest\traintest_0006.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\245\traintest\traintest_0007.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\245\traintest\traintest_0008.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\245\traintest\traintest_0009.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\245\traintest\traintest_0010.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\246\statustest\statustest_0001.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\246\statustest\statustest_0002.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\246\statustest\statustest_0003.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\246\statustest\statustest_0004.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\246\statustest\statustest_0005.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\246\statustest\statustest_0006.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\246\statustest\statustest_0007.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\246\statustest\statustest_0008.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\246\statustest\statustest_0009.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\246\statustest\statustest_0010.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\30\testword\testword_0001.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\303\quota-free-ok\quota-free-ok_0001.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\303\quota-free-ok\quota-free-ok_0002.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\303\quota-free-ok\quota-free-ok_0003.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\303\quota-free-ok\quota-free-ok_0004.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\303\quota-free-ok\quota-free-ok_0005.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\304\quota-free-limit\quota-free-limit_0001.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\304\quota-free-limit\quota-free-limit_0002.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\304\quota-free-limit\quota-free-limit_0003.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\304\quota-free-limit\quota-free-limit_0004.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\304\quota-free-limit\quota-free-limit_0005.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\31\testword\testword_0001.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\31\testword\testword_0002.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\31\testword\testword_0003.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\31\testword\testword_0004.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\31\testword\testword_0005.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\31\testword\testword_0006.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\31\testword\testword_0007.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\31\testword\testword_0008.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\31\testword\testword_0009.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\31\testword\testword_0010.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\317\testword\testword_0001.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\318\listtest\listtest_0001.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\319\batchtest\batchtest_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\319\batchtest\batchtest_0002.wav                     48364
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\319\batchtest\batchtest_0003.wav                     48684
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\319\batchtest\batchtest_0004.wav                     49004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\319\batchtest\batchtest_0005.wav                     49324
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\319\batchtest\batchtest_0006.wav                     49644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\319\batchtest\batchtest_0007.wav                     49964
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\319\batchtest\batchtest_0008.wav                     50284
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\319\batchtest\batchtest_0009.wav                     50604
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\319\batchtest\batchtest_0010.wav                     50924
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\32\listtest\listtest_0001.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\322\ratelimit-upload\ratelimit-upload_0001.wav       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\322\ratelimit-upload\ratelimit-upload_0002.wav       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\325\traintest\traintest_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\325\traintest\traintest_0002.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\325\traintest\traintest_0003.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\325\traintest\traintest_0004.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\325\traintest\traintest_0005.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\325\traintest\traintest_0006.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\325\traintest\traintest_0007.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\325\traintest\traintest_0008.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\325\traintest\traintest_0009.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\325\traintest\traintest_0010.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\33\goldentest\goldentest_0001.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\33\goldentest\goldentest_0002.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\33\goldentest\goldentest_0003.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\33\goldentest\goldentest_0004.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\33\goldentest\goldentest_0005.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\33\goldentest\goldentest_0006.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\33\goldentest\goldentest_0007.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\33\goldentest\goldentest_0008.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\33\goldentest\goldentest_0009.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\33\goldentest\goldentest_0010.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\331\testword\testword_0001.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\332\listtest\listtest_0001.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\333\batchtest\batchtest_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\333\batchtest\batchtest_0002.wav                     48364
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\333\batchtest\batchtest_0003.wav                     48684
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\333\batchtest\batchtest_0004.wav                     49004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\333\batchtest\batchtest_0005.wav                     49324
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\333\batchtest\batchtest_0006.wav                     49644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\333\batchtest\batchtest_0007.wav                     49964
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\333\batchtest\batchtest_0008.wav                     50284
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\333\batchtest\batchtest_0009.wav                     50604
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\333\batchtest\batchtest_0010.wav                     50924
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\334\ratelimit-upload\ratelimit-upload_0001.wav       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\334\ratelimit-upload\ratelimit-upload_0002.wav       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\335\traintest\traintest_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\335\traintest\traintest_0002.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\335\traintest\traintest_0003.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\335\traintest\traintest_0004.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\335\traintest\traintest_0005.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\335\traintest\traintest_0006.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\335\traintest\traintest_0007.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\335\traintest\traintest_0008.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\335\traintest\traintest_0009.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\335\traintest\traintest_0010.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\336\statustest\statustest_0001.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\336\statustest\statustest_0002.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\336\statustest\statustest_0003.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\336\statustest\statustest_0004.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\336\statustest\statustest_0005.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\336\statustest\statustest_0006.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\336\statustest\statustest_0007.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\336\statustest\statustest_0008.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\336\statustest\statustest_0009.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\336\statustest\statustest_0010.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\337\ratelimit-train\ratelimit-train_0001.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\337\ratelimit-train\ratelimit-train_0002.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\337\ratelimit-train\ratelimit-train_0003.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\337\ratelimit-train\ratelimit-train_0004.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\337\ratelimit-train\ratelimit-train_0005.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\343\floatnorm\floatnorm_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\346\statustest\statustest_0001.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\346\statustest\statustest_0002.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\346\statustest\statustest_0003.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\346\statustest\statustest_0004.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\346\statustest\statustest_0005.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\346\statustest\statustest_0006.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\346\statustest\statustest_0007.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\346\statustest\statustest_0008.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\346\statustest\statustest_0009.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\346\statustest\statustest_0010.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\347\quota-free-ok\quota-free-ok_0001.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\347\quota-free-ok\quota-free-ok_0002.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\347\quota-free-ok\quota-free-ok_0003.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\347\quota-free-ok\quota-free-ok_0004.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\347\quota-free-ok\quota-free-ok_0005.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\348\ratelimit-train\ratelimit-train_0001.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\348\ratelimit-train\ratelimit-train_0002.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\348\ratelimit-train\ratelimit-train_0003.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\348\ratelimit-train\ratelimit-train_0004.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\348\ratelimit-train\ratelimit-train_0005.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\349\quota-free-limit\quota-free-limit_0001.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\349\quota-free-limit\quota-free-limit_0002.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\349\quota-free-limit\quota-free-limit_0003.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\349\quota-free-limit\quota-free-limit_0004.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\349\quota-free-limit\quota-free-limit_0005.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\35\testword\testword_0001.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\358\floatnorm\floatnorm_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\36\listtest\listtest_0001.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\361\quota-free-ok\quota-free-ok_0001.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\361\quota-free-ok\quota-free-ok_0002.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\361\quota-free-ok\quota-free-ok_0003.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\361\quota-free-ok\quota-free-ok_0004.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\361\quota-free-ok\quota-free-ok_0005.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\362\quota-free-limit\quota-free-limit_0001.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\362\quota-free-limit\quota-free-limit_0002.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\362\quota-free-limit\quota-free-limit_0003.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\362\quota-free-limit\quota-free-limit_0004.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\362\quota-free-limit\quota-free-limit_0005.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\37\batchtest\batchtest_0001.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\37\batchtest\batchtest_0002.wav                      48364
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\37\batchtest\batchtest_0003.wav                      48684
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\37\batchtest\batchtest_0004.wav                      49004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\37\batchtest\batchtest_0005.wav                      49324
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\37\batchtest\batchtest_0006.wav                      49644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\37\batchtest\batchtest_0007.wav                      49964
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\37\batchtest\batchtest_0008.wav                      50284
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\37\batchtest\batchtest_0009.wav                      50604
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\37\batchtest\batchtest_0010.wav                      50924
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\375\testword\testword_0001.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\376\listtest\listtest_0001.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\377\batchtest\batchtest_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\377\batchtest\batchtest_0002.wav                     48364
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\377\batchtest\batchtest_0003.wav                     48684
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\377\batchtest\batchtest_0004.wav                     49004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\377\batchtest\batchtest_0005.wav                     49324
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\377\batchtest\batchtest_0006.wav                     49644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\377\batchtest\batchtest_0007.wav                     49964
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\377\batchtest\batchtest_0008.wav                     50284
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\377\batchtest\batchtest_0009.wav                     50604
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\377\batchtest\batchtest_0010.wav                     50924
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\378\ratelimit-upload\ratelimit-upload_0001.wav       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\378\ratelimit-upload\ratelimit-upload_0002.wav       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\379\traintest\traintest_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\379\traintest\traintest_0002.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\379\traintest\traintest_0003.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\379\traintest\traintest_0004.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\379\traintest\traintest_0005.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\379\traintest\traintest_0006.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\379\traintest\traintest_0007.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\379\traintest\traintest_0008.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\379\traintest\traintest_0009.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\379\traintest\traintest_0010.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\38\traintest\traintest_0001.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\38\traintest\traintest_0002.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\38\traintest\traintest_0003.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\38\traintest\traintest_0004.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\38\traintest\traintest_0005.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\38\traintest\traintest_0006.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\38\traintest\traintest_0007.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\38\traintest\traintest_0008.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\38\traintest\traintest_0009.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\38\traintest\traintest_0010.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\380\statustest\statustest_0001.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\380\statustest\statustest_0002.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\380\statustest\statustest_0003.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\380\statustest\statustest_0004.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\380\statustest\statustest_0005.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\380\statustest\statustest_0006.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\380\statustest\statustest_0007.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\380\statustest\statustest_0008.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\380\statustest\statustest_0009.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\380\statustest\statustest_0010.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\381\ratelimit-train\ratelimit-train_0001.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\381\ratelimit-train\ratelimit-train_0002.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\381\ratelimit-train\ratelimit-train_0003.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\381\ratelimit-train\ratelimit-train_0004.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\381\ratelimit-train\ratelimit-train_0005.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\387\floatnorm\floatnorm_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\39\statustest\statustest_0001.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\39\statustest\statustest_0002.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\39\statustest\statustest_0003.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\39\statustest\statustest_0004.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\39\statustest\statustest_0005.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\39\statustest\statustest_0006.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\39\statustest\statustest_0007.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\39\statustest\statustest_0008.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\39\statustest\statustest_0009.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\39\statustest\statustest_0010.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\390\quota-free-ok\quota-free-ok_0001.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\390\quota-free-ok\quota-free-ok_0002.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\390\quota-free-ok\quota-free-ok_0003.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\390\quota-free-ok\quota-free-ok_0004.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\390\quota-free-ok\quota-free-ok_0005.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\391\quota-free-limit\quota-free-limit_0001.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\391\quota-free-limit\quota-free-limit_0002.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\391\quota-free-limit\quota-free-limit_0003.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\391\quota-free-limit\quota-free-limit_0004.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\391\quota-free-limit\quota-free-limit_0005.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\4\listtest\listtest_0001.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\4\listtest\listtest_0002.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\4\testword\testword_0001.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\4\testword\testword_0002.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\4\testword\testword_0003.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\4\testword\testword_0004.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\4\testword\testword_0005.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\4\testword\testword_0006.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\4\testword\testword_0007.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\4\testword\testword_0008.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\4\testword\testword_0009.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\4\testword\testword_0010.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\4\testword\testword_0011.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\4\testword\testword_0012.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\4\testword\testword_0013.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\4\testword\testword_0014.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\4\testword\testword_0015.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\4\testword\testword_0016.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\4\testword\testword_0017.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\4\testword\testword_0018.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\4\testword\testword_0019.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\4\testword\testword_0020.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\4\testword\testword_0021.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\4\testword\testword_0022.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\404\testword\testword_0001.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\405\listtest\listtest_0001.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\406\batchtest\batchtest_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\406\batchtest\batchtest_0002.wav                     48364
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\406\batchtest\batchtest_0003.wav                     48684
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\406\batchtest\batchtest_0004.wav                     49004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\406\batchtest\batchtest_0005.wav                     49324
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\406\batchtest\batchtest_0006.wav                     49644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\406\batchtest\batchtest_0007.wav                     49964
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\406\batchtest\batchtest_0008.wav                     50284
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\406\batchtest\batchtest_0009.wav                     50604
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\406\batchtest\batchtest_0010.wav                     50924
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\407\ratelimit-upload\ratelimit-upload_0001.wav       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\407\ratelimit-upload\ratelimit-upload_0002.wav       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\408\traintest\traintest_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\408\traintest\traintest_0002.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\408\traintest\traintest_0003.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\408\traintest\traintest_0004.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\408\traintest\traintest_0005.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\408\traintest\traintest_0006.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\408\traintest\traintest_0007.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\408\traintest\traintest_0008.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\408\traintest\traintest_0009.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\408\traintest\traintest_0010.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\409\statustest\statustest_0001.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\409\statustest\statustest_0002.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\409\statustest\statustest_0003.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\409\statustest\statustest_0004.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\409\statustest\statustest_0005.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\409\statustest\statustest_0006.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\409\statustest\statustest_0007.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\409\statustest\statustest_0008.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\409\statustest\statustest_0009.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\409\statustest\statustest_0010.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\410\ratelimit-train\ratelimit-train_0001.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\410\ratelimit-train\ratelimit-train_0002.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\410\ratelimit-train\ratelimit-train_0003.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\410\ratelimit-train\ratelimit-train_0004.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\410\ratelimit-train\ratelimit-train_0005.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\416\floatnorm\floatnorm_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\419\quota-free-ok\quota-free-ok_0001.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\419\quota-free-ok\quota-free-ok_0002.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\419\quota-free-ok\quota-free-ok_0003.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\419\quota-free-ok\quota-free-ok_0004.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\419\quota-free-ok\quota-free-ok_0005.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\420\quota-free-limit\quota-free-limit_0001.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\420\quota-free-limit\quota-free-limit_0002.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\420\quota-free-limit\quota-free-limit_0003.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\420\quota-free-limit\quota-free-limit_0004.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\420\quota-free-limit\quota-free-limit_0005.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\433\testword\testword_0001.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\434\listtest\listtest_0001.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\435\batchtest\batchtest_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\435\batchtest\batchtest_0002.wav                     48364
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\435\batchtest\batchtest_0003.wav                     48684
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\435\batchtest\batchtest_0004.wav                     49004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\435\batchtest\batchtest_0005.wav                     49324
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\435\batchtest\batchtest_0006.wav                     49644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\435\batchtest\batchtest_0007.wav                     49964
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\435\batchtest\batchtest_0008.wav                     50284
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\435\batchtest\batchtest_0009.wav                     50604
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\435\batchtest\batchtest_0010.wav                     50924
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\436\ratelimit-upload\ratelimit-upload_0001.wav       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\436\ratelimit-upload\ratelimit-upload_0002.wav       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\437\traintest\traintest_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\437\traintest\traintest_0002.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\437\traintest\traintest_0003.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\437\traintest\traintest_0004.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\437\traintest\traintest_0005.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\437\traintest\traintest_0006.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\437\traintest\traintest_0007.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\437\traintest\traintest_0008.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\437\traintest\traintest_0009.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\437\traintest\traintest_0010.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\438\statustest\statustest_0001.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\438\statustest\statustest_0002.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\438\statustest\statustest_0003.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\438\statustest\statustest_0004.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\438\statustest\statustest_0005.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\438\statustest\statustest_0006.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\438\statustest\statustest_0007.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\438\statustest\statustest_0008.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\438\statustest\statustest_0009.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\438\statustest\statustest_0010.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\439\ratelimit-train\ratelimit-train_0001.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\439\ratelimit-train\ratelimit-train_0002.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\439\ratelimit-train\ratelimit-train_0003.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\439\ratelimit-train\ratelimit-train_0004.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\439\ratelimit-train\ratelimit-train_0005.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\445\floatnorm\floatnorm_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\448\quota-free-ok\quota-free-ok_0001.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\448\quota-free-ok\quota-free-ok_0002.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\448\quota-free-ok\quota-free-ok_0003.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\448\quota-free-ok\quota-free-ok_0004.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\448\quota-free-ok\quota-free-ok_0005.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\449\quota-free-limit\quota-free-limit_0001.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\449\quota-free-limit\quota-free-limit_0002.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\449\quota-free-limit\quota-free-limit_0003.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\449\quota-free-limit\quota-free-limit_0004.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\449\quota-free-limit\quota-free-limit_0005.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\462\testword\testword_0001.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\463\listtest\listtest_0001.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\464\batchtest\batchtest_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\464\batchtest\batchtest_0002.wav                     48364
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\464\batchtest\batchtest_0003.wav                     48684
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\464\batchtest\batchtest_0004.wav                     49004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\464\batchtest\batchtest_0005.wav                     49324
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\464\batchtest\batchtest_0006.wav                     49644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\464\batchtest\batchtest_0007.wav                     49964
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\464\batchtest\batchtest_0008.wav                     50284
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\464\batchtest\batchtest_0009.wav                     50604
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\464\batchtest\batchtest_0010.wav                     50924
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\465\ratelimit-upload\ratelimit-upload_0001.wav       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\465\ratelimit-upload\ratelimit-upload_0002.wav       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\466\traintest\traintest_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\466\traintest\traintest_0002.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\466\traintest\traintest_0003.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\466\traintest\traintest_0004.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\466\traintest\traintest_0005.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\466\traintest\traintest_0006.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\466\traintest\traintest_0007.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\466\traintest\traintest_0008.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\466\traintest\traintest_0009.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\466\traintest\traintest_0010.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\467\statustest\statustest_0001.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\467\statustest\statustest_0002.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\467\statustest\statustest_0003.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\467\statustest\statustest_0004.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\467\statustest\statustest_0005.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\467\statustest\statustest_0006.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\467\statustest\statustest_0007.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\467\statustest\statustest_0008.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\467\statustest\statustest_0009.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\467\statustest\statustest_0010.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\468\ratelimit-train\ratelimit-train_0001.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\468\ratelimit-train\ratelimit-train_0002.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\468\ratelimit-train\ratelimit-train_0003.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\468\ratelimit-train\ratelimit-train_0004.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\468\ratelimit-train\ratelimit-train_0005.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\474\floatnorm\floatnorm_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\477\quota-free-ok\quota-free-ok_0001.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\477\quota-free-ok\quota-free-ok_0002.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\477\quota-free-ok\quota-free-ok_0003.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\477\quota-free-ok\quota-free-ok_0004.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\477\quota-free-ok\quota-free-ok_0005.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\478\quota-free-limit\quota-free-limit_0001.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\478\quota-free-limit\quota-free-limit_0002.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\478\quota-free-limit\quota-free-limit_0003.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\478\quota-free-limit\quota-free-limit_0004.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\478\quota-free-limit\quota-free-limit_0005.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\490\delete-account\delete-account_0001.wav           48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\492\testword\testword_0001.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\493\listtest\listtest_0001.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\494\batchtest\batchtest_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\495\ratelimit-upload\ratelimit-upload_0001.wav       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\495\ratelimit-upload\ratelimit-upload_0002.wav       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\496\traintest\traintest_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\497\statustest\statustest_0001.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\498\ratelimit-train\ratelimit-train_0001.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\5\goldentest\goldentest_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\5\goldentest\goldentest_0002.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\5\goldentest\goldentest_0003.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\5\goldentest\goldentest_0004.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\5\goldentest\goldentest_0005.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\5\goldentest\goldentest_0006.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\5\goldentest\goldentest_0007.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\5\goldentest\goldentest_0008.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\5\goldentest\goldentest_0009.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\5\goldentest\goldentest_0010.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\5\listtest\listtest_0001.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\5\testword\testword_0001.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\5\testword\testword_0002.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\5\testword\testword_0003.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\5\testword\testword_0004.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\5\testword\testword_0005.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\5\testword\testword_0006.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\5\testword\testword_0007.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\5\testword\testword_0008.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\5\testword\testword_0009.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\5\testword\testword_0010.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\5\testword\testword_0011.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\50\testword\testword_0001.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\504\floatnorm\floatnorm_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\51\testword\testword_0001.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\51\testword\testword_0002.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\51\testword\testword_0003.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\51\testword\testword_0004.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\51\testword\testword_0005.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\51\testword\testword_0006.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\51\testword\testword_0007.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\51\testword\testword_0008.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\51\testword\testword_0009.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\51\testword\testword_0010.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\514\testword\testword_0001.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\515\listtest\listtest_0001.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\516\batchtest\batchtest_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\516\batchtest\batchtest_0002.wav                     48364
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\516\batchtest\batchtest_0003.wav                     48684
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\516\batchtest\batchtest_0004.wav                     49004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\516\batchtest\batchtest_0005.wav                     49324
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\516\batchtest\batchtest_0006.wav                     49644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\516\batchtest\batchtest_0007.wav                     49964
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\516\batchtest\batchtest_0008.wav                     50284
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\516\batchtest\batchtest_0009.wav                     50604
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\516\batchtest\batchtest_0010.wav                     50924
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\517\ratelimit-upload\ratelimit-upload_0001.wav       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\517\ratelimit-upload\ratelimit-upload_0002.wav       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\518\traintest\traintest_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\518\traintest\traintest_0002.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\518\traintest\traintest_0003.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\518\traintest\traintest_0004.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\518\traintest\traintest_0005.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\518\traintest\traintest_0006.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\518\traintest\traintest_0007.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\518\traintest\traintest_0008.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\518\traintest\traintest_0009.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\518\traintest\traintest_0010.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\519\statustest\statustest_0001.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\519\statustest\statustest_0002.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\519\statustest\statustest_0003.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\519\statustest\statustest_0004.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\519\statustest\statustest_0005.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\519\statustest\statustest_0006.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\519\statustest\statustest_0007.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\519\statustest\statustest_0008.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\519\statustest\statustest_0009.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\519\statustest\statustest_0010.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\52\listtest\listtest_0001.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\520\ratelimit-train\ratelimit-train_0001.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\520\ratelimit-train\ratelimit-train_0002.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\520\ratelimit-train\ratelimit-train_0003.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\520\ratelimit-train\ratelimit-train_0004.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\520\ratelimit-train\ratelimit-train_0005.wav         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\526\floatnorm\floatnorm_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\529\quota-free-ok\quota-free-ok_0001.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\529\quota-free-ok\quota-free-ok_0002.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\529\quota-free-ok\quota-free-ok_0003.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\529\quota-free-ok\quota-free-ok_0004.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\529\quota-free-ok\quota-free-ok_0005.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\53\goldentest\goldentest_0001.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\53\goldentest\goldentest_0002.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\53\goldentest\goldentest_0003.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\53\goldentest\goldentest_0004.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\53\goldentest\goldentest_0005.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\53\goldentest\goldentest_0006.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\53\goldentest\goldentest_0007.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\53\goldentest\goldentest_0008.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\53\goldentest\goldentest_0009.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\53\goldentest\goldentest_0010.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\530\quota-free-limit\quota-free-limit_0001.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\530\quota-free-limit\quota-free-limit_0002.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\530\quota-free-limit\quota-free-limit_0003.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\530\quota-free-limit\quota-free-limit_0004.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\530\quota-free-limit\quota-free-limit_0005.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\536\quota-free-ok\quota-free-ok_0001.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\536\quota-free-ok\quota-free-ok_0002.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\536\quota-free-ok\quota-free-ok_0003.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\536\quota-free-ok\quota-free-ok_0004.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\536\quota-free-ok\quota-free-ok_0005.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\537\quota-free-limit\quota-free-limit_0001.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\537\quota-free-limit\quota-free-limit_0002.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\537\quota-free-limit\quota-free-limit_0003.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\537\quota-free-limit\quota-free-limit_0004.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\537\quota-free-limit\quota-free-limit_0005.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\543\quota-free-ok\quota-free-ok_0001.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\543\quota-free-ok\quota-free-ok_0002.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\543\quota-free-ok\quota-free-ok_0003.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\543\quota-free-ok\quota-free-ok_0004.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\543\quota-free-ok\quota-free-ok_0005.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\544\quota-free-limit\quota-free-limit_0001.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\544\quota-free-limit\quota-free-limit_0002.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\544\quota-free-limit\quota-free-limit_0003.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\544\quota-free-limit\quota-free-limit_0004.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\544\quota-free-limit\quota-free-limit_0005.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\550\quota-free-ok\quota-free-ok_0001.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\550\quota-free-ok\quota-free-ok_0002.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\550\quota-free-ok\quota-free-ok_0003.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\550\quota-free-ok\quota-free-ok_0004.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\550\quota-free-ok\quota-free-ok_0005.wav             32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\551\quota-free-limit\quota-free-limit_0001.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\551\quota-free-limit\quota-free-limit_0002.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\551\quota-free-limit\quota-free-limit_0003.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\551\quota-free-limit\quota-free-limit_0004.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\551\quota-free-limit\quota-free-limit_0005.wav       32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\56\testword\testword_0001.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\563\big chungus\big chungus_0001.wav                 77320
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\563\big chungus\big chungus_0002.wav                 68404
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\563\big chungus\big chungus_0003.wav                 68404
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\563\big chungus\big chungus_0004.wav                 74348
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\563\big chungus\big chungus_0005.wav                 74348
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\563\big chungus\big chungus_0006.wav                 77320
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\563\big chungus\big chungus_0007.wav                 77320
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\563\big chungus\big chungus_0008.wav                 71376
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\563\big chungus\big chungus_0009.wav                 71376
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\563\big chungus\big chungus_0010.wav                 74348
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\564\big chungus\big chungus_0001.wav                 77320
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\564\big chungus\big chungus_0002.wav                 77320
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\564\big chungus\big chungus_0003.wav                 95152
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\564\big chungus\big chungus_0004.wav                 95152
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\564\big chungus\big chungus_0005.wav                 95152
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\564\big chungus\big chungus_0006.wav                 95152
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\564\big chungus\big chungus_0007.wav                 95152
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\564\big chungus\big chungus_0008.wav                 83264
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\564\big chungus\big chungus_0009.wav                 86236
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\564\big chungus\big chungus_0010.wav                 92180
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\564\big chungus\big chungus_0011.wav                 92180
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\564\big chungus\big chungus_0012.wav                 95152
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\564\big chungus\big chungus_0013.wav                 95152
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\564\big chungus\big chungus_0014.wav                 95152
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\564\big chungus\big chungus_0015.wav                 95152
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\564\big chungus\big chungus_0016.wav                 92180
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\564\big chungus\big chungus_0017.wav                 95152
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\564\big chungus\big chungus_0018.wav                 80292
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\564\big chungus\big chungus_0019.wav                 77320
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\564\big chungus\big chungus_0020.wav                 83264
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\57\listtest\listtest_0001.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\570\blocked\blocked_0001.wav                         48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\571\testword\testword_0001.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\572\listtest\listtest_0001.wav                       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\573\batchtest\batchtest_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\573\batchtest\batchtest_0002.wav                     48364
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\573\batchtest\batchtest_0003.wav                     48684
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\573\batchtest\batchtest_0004.wav                     49004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\573\batchtest\batchtest_0005.wav                     49324
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\573\batchtest\batchtest_0006.wav                     49644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\573\batchtest\batchtest_0007.wav                     49964
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\573\batchtest\batchtest_0008.wav                     50284
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\573\batchtest\batchtest_0009.wav                     50604
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\573\batchtest\batchtest_0010.wav                     50924
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\575\traintest\traintest_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\575\traintest\traintest_0002.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\575\traintest\traintest_0003.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\575\traintest\traintest_0004.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\575\traintest\traintest_0005.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\575\traintest\traintest_0006.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\575\traintest\traintest_0007.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\575\traintest\traintest_0008.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\575\traintest\traintest_0009.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\575\traintest\traintest_0010.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\58\batchtest\batchtest_0001.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\58\batchtest\batchtest_0002.wav                      48364
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\58\batchtest\batchtest_0003.wav                      48684
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\58\batchtest\batchtest_0004.wav                      49004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\58\batchtest\batchtest_0005.wav                      49324
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\58\batchtest\batchtest_0006.wav                      49644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\58\batchtest\batchtest_0007.wav                      49964
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\58\batchtest\batchtest_0008.wav                      50284
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\58\batchtest\batchtest_0009.wav                      50604
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\58\batchtest\batchtest_0010.wav                      50924
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\59\traintest\traintest_0001.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\59\traintest\traintest_0002.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\59\traintest\traintest_0003.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\59\traintest\traintest_0004.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\59\traintest\traintest_0005.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\59\traintest\traintest_0006.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\59\traintest\traintest_0007.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\59\traintest\traintest_0008.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\59\traintest\traintest_0009.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\59\traintest\traintest_0010.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\6\goldentest\goldentest_0001.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\6\goldentest\goldentest_0002.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\6\goldentest\goldentest_0003.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\6\goldentest\goldentest_0004.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\6\goldentest\goldentest_0005.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\6\goldentest\goldentest_0006.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\6\goldentest\goldentest_0007.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\6\goldentest\goldentest_0008.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\6\goldentest\goldentest_0009.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\6\goldentest\goldentest_0010.wav                     48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\60\statustest\statustest_0001.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\60\statustest\statustest_0002.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\60\statustest\statustest_0003.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\60\statustest\statustest_0004.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\60\statustest\statustest_0005.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\60\statustest\statustest_0006.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\60\statustest\statustest_0007.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\60\statustest\statustest_0008.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\60\statustest\statustest_0009.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\60\statustest\statustest_0010.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\61\testword\testword_0001.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\62\listtest\listtest_0001.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\63\batchtest\batchtest_0001.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\63\batchtest\batchtest_0002.wav                      48364
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\63\batchtest\batchtest_0003.wav                      48684
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\63\batchtest\batchtest_0004.wav                      49004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\63\batchtest\batchtest_0005.wav                      49324
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\63\batchtest\batchtest_0006.wav                      49644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\63\batchtest\batchtest_0007.wav                      49964
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\63\batchtest\batchtest_0008.wav                      50284
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\63\batchtest\batchtest_0009.wav                      50604
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\63\batchtest\batchtest_0010.wav                      50924
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\64\traintest\traintest_0001.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\64\traintest\traintest_0002.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\64\traintest\traintest_0003.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\64\traintest\traintest_0004.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\64\traintest\traintest_0005.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\64\traintest\traintest_0006.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\64\traintest\traintest_0007.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\64\traintest\traintest_0008.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\64\traintest\traintest_0009.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\64\traintest\traintest_0010.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\65\statustest\statustest_0001.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\65\statustest\statustest_0002.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\65\statustest\statustest_0003.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\65\statustest\statustest_0004.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\65\statustest\statustest_0005.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\65\statustest\statustest_0006.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\65\statustest\statustest_0007.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\65\statustest\statustest_0008.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\65\statustest\statustest_0009.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\65\statustest\statustest_0010.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\66\testword\testword_0001.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\67\listtest\listtest_0001.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\68\batchtest\batchtest_0001.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\68\batchtest\batchtest_0002.wav                      48364
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\68\batchtest\batchtest_0003.wav                      48684
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\68\batchtest\batchtest_0004.wav                      49004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\68\batchtest\batchtest_0005.wav                      49324
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\68\batchtest\batchtest_0006.wav                      49644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\68\batchtest\batchtest_0007.wav                      49964
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\68\batchtest\batchtest_0008.wav                      50284
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\68\batchtest\batchtest_0009.wav                      50604
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\68\batchtest\batchtest_0010.wav                      50924
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\69\traintest\traintest_0001.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\69\traintest\traintest_0002.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\69\traintest\traintest_0003.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\69\traintest\traintest_0004.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\69\traintest\traintest_0005.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\69\traintest\traintest_0006.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\69\traintest\traintest_0007.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\69\traintest\traintest_0008.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\69\traintest\traintest_0009.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\69\traintest\traintest_0010.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\70\statustest\statustest_0001.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\70\statustest\statustest_0002.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\70\statustest\statustest_0003.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\70\statustest\statustest_0004.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\70\statustest\statustest_0005.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\70\statustest\statustest_0006.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\70\statustest\statustest_0007.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\70\statustest\statustest_0008.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\70\statustest\statustest_0009.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\70\statustest\statustest_0010.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\79\testword\testword_0001.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\80\listtest\listtest_0001.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\81\batchtest\batchtest_0001.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\81\batchtest\batchtest_0002.wav                      48364
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\81\batchtest\batchtest_0003.wav                      48684
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\81\batchtest\batchtest_0004.wav                      49004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\81\batchtest\batchtest_0005.wav                      49324
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\81\batchtest\batchtest_0006.wav                      49644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\81\batchtest\batchtest_0007.wav                      49964
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\81\batchtest\batchtest_0008.wav                      50284
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\81\batchtest\batchtest_0009.wav                      50604
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\81\batchtest\batchtest_0010.wav                      50924
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\82\traintest\traintest_0001.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\82\traintest\traintest_0002.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\82\traintest\traintest_0003.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\82\traintest\traintest_0004.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\82\traintest\traintest_0005.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\82\traintest\traintest_0006.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\82\traintest\traintest_0007.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\82\traintest\traintest_0008.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\82\traintest\traintest_0009.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\82\traintest\traintest_0010.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\83\statustest\statustest_0001.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\83\statustest\statustest_0002.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\83\statustest\statustest_0003.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\83\statustest\statustest_0004.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\83\statustest\statustest_0005.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\83\statustest\statustest_0006.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\83\statustest\statustest_0007.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\83\statustest\statustest_0008.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\83\statustest\statustest_0009.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\83\statustest\statustest_0010.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\867\delete-account\delete-account_9345dac1.wav       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\869\testword\testword_27c8b656.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\870\listtest\listtest_6d2929c6.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\871\batchtest\batchtest_0fc99cd8.wav                 49644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\871\batchtest\batchtest_2716fc17.wav                 50284
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\871\batchtest\batchtest_446f2320.wav                 50604
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\871\batchtest\batchtest_521fabe3.wav                 48364
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\871\batchtest\batchtest_58b6a043.wav                 49324
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\871\batchtest\batchtest_6054b992.wav                 50924
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\871\batchtest\batchtest_63dcd7ef.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\871\batchtest\batchtest_dc3a4d7a.wav                 49964
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\871\batchtest\batchtest_e12cd40a.wav                 49004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\871\batchtest\batchtest_ef401eb3.wav                 48684
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\872\traintest\traintest_3379dfb9.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\872\traintest\traintest_51180ffd.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\872\traintest\traintest_5d00874d.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\872\traintest\traintest_6e911f32.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\872\traintest\traintest_74fb0b43.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\872\traintest\traintest_868ef44f.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\872\traintest\traintest_8b4063f4.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\872\traintest\traintest_9f4883cc.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\872\traintest\traintest_adf88d86.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\872\traintest\traintest_c5cca51b.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\88\jobsmoke\jobsmoke_0001.wav                        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\88\jobsmoke\jobsmoke_0002.wav                        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\88\jobsmoke\jobsmoke_0003.wav                        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\88\jobsmoke\jobsmoke_0004.wav                        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\88\jobsmoke\jobsmoke_0005.wav                        32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\881\delete-account\delete-account_d9a70c18.wav       48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\891\testword\testword_0ee3ee03.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\892\listtest\listtest_630fff47.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\893\batchtest\batchtest_0781ba6c.wav                 49004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\893\batchtest\batchtest_0dd38eca.wav                 49644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\893\batchtest\batchtest_1af31d26.wav                 49964
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\893\batchtest\batchtest_1d3ce88a.wav                 49324
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\893\batchtest\batchtest_5376420b.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\893\batchtest\batchtest_bcff28cd.wav                 50604
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\893\batchtest\batchtest_c55964f3.wav                 50924
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\893\batchtest\batchtest_d21cb57e.wav                 48684
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\893\batchtest\batchtest_ecf14a1c.wav                 48364
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\893\batchtest\batchtest_fdd94c9b.wav                 50284
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\894\traintest\traintest_157410eb.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\894\traintest\traintest_17c68837.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\894\traintest\traintest_1a1e2eae.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\894\traintest\traintest_1c096d13.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\894\traintest\traintest_8a563db6.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\894\traintest\traintest_937d8c32.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\894\traintest\traintest_977bc819.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\894\traintest\traintest_b98034bf.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\894\traintest\traintest_cd3f5e72.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\894\traintest\traintest_d04e7d14.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\904\testword\testword_dab6d090.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\905\listtest\listtest_fab64ce9.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\906\batchtest\batchtest_1aa1c4cd.wav                 48684
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\906\batchtest\batchtest_5a4bf316.wav                 49004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\906\batchtest\batchtest_6c45a097.wav                 49324
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\906\batchtest\batchtest_7febef74.wav                 49644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\906\batchtest\batchtest_910bd26b.wav                 49964
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\906\batchtest\batchtest_9ad4d849.wav                 48364
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\906\batchtest\batchtest_9b58958c.wav                 50284
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\906\batchtest\batchtest_acf5adce.wav                 50604
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\906\batchtest\batchtest_bf817725.wav                 50924
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\906\batchtest\batchtest_c03ff550.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\907\traintest\traintest_03a4f11b.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\907\traintest\traintest_55ba3a18.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\907\traintest\traintest_5bdad62a.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\907\traintest\traintest_68f73370.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\907\traintest\traintest_9be90382.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\907\traintest\traintest_9ea55671.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\907\traintest\traintest_c584bd05.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\907\traintest\traintest_ceb0ebcb.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\907\traintest\traintest_d9910016.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\907\traintest\traintest_f977928c.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\908\statustest\statustest_1ec32c6c.wav               48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\908\statustest\statustest_5054076e.wav               48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\908\statustest\statustest_53bdda42.wav               48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\908\statustest\statustest_5d8928f9.wav               48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\908\statustest\statustest_6bfe86b5.wav               48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\908\statustest\statustest_9c655a37.wav               48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\908\statustest\statustest_b0edbe66.wav               48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\908\statustest\statustest_b26b5144.wav               48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\908\statustest\statustest_b2830f49.wav               48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\908\statustest\statustest_c3f9abea.wav               48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\914\floatnorm\floatnorm_9252edb9.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\918\quota-free-ok\quota-free-ok_6a902dba.wav         32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\918\quota-free-ok\quota-free-ok_7df3be2e.wav         32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\918\quota-free-ok\quota-free-ok_8722aabf.wav         32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\918\quota-free-ok\quota-free-ok_c292f2cd.wav         32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\918\quota-free-ok\quota-free-ok_d3192126.wav         32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\919\quota-free-limit\quota-free-limit_63667f30.wav   32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\919\quota-free-limit\quota-free-limit_6d7a7779.wav   32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\919\quota-free-limit\quota-free-limit_9ff18e8a.wav   32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\919\quota-free-limit\quota-free-limit_c22333a1.wav   32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\919\quota-free-limit\quota-free-limit_f3b76408.wav   32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\923\quota-free-ok\quota-free-ok_1f786f21.wav         32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\923\quota-free-ok\quota-free-ok_2d817a65.wav         32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\923\quota-free-ok\quota-free-ok_88fb48aa.wav         32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\923\quota-free-ok\quota-free-ok_efb7b9a8.wav         32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\923\quota-free-ok\quota-free-ok_f165ad9b.wav         32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\924\quota-free-limit\quota-free-limit_2fc70cd4.wav   32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\924\quota-free-limit\quota-free-limit_358e2ecb.wav   32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\924\quota-free-limit\quota-free-limit_84395caa.wav   32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\924\quota-free-limit\quota-free-limit_84989a9b.wav   32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\924\quota-free-limit\quota-free-limit_b8aa21cb.wav   32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\937\testword\testword_9df0114a.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\938\listtest\listtest_6af0702c.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\939\batchtest\batchtest_01332946.wav                 49964
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\939\batchtest\batchtest_147c45f4.wav                 49324
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\939\batchtest\batchtest_15617007.wav                 50924
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\939\batchtest\batchtest_57a1e951.wav                 49644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\939\batchtest\batchtest_600e71e7.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\939\batchtest\batchtest_60f00940.wav                 50284
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\939\batchtest\batchtest_8c13db6b.wav                 50604
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\939\batchtest\batchtest_93399e1b.wav                 48364
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\939\batchtest\batchtest_c7fdee5b.wav                 48684
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\939\batchtest\batchtest_e24660db.wav                 49004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\940\traintest\traintest_19604fcc.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\940\traintest\traintest_24f957d4.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\940\traintest\traintest_3fa29fdf.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\940\traintest\traintest_4e6c7880.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\940\traintest\traintest_5b72921c.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\940\traintest\traintest_6f07ad7c.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\940\traintest\traintest_84201ea4.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\940\traintest\traintest_96beb884.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\940\traintest\traintest_a4433ad1.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\940\traintest\traintest_c90a6e83.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\941\statustest\statustest_12974ee5.wav               48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\941\statustest\statustest_14b618ae.wav               48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\941\statustest\statustest_21e5c64f.wav               48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\941\statustest\statustest_51213c61.wav               48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\941\statustest\statustest_5dd0a7ad.wav               48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\941\statustest\statustest_70586750.wav               48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\941\statustest\statustest_8cb5deae.wav               48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\941\statustest\statustest_a5ab8fce.wav               48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\941\statustest\statustest_b7f03116.wav               48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\941\statustest\statustest_caeb5509.wav               48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\947\floatnorm\floatnorm_ed82aee4.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\950\quota-free-ok\quota-free-ok_807c4e58.wav         32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\950\quota-free-ok\quota-free-ok_8733c5ee.wav         32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\950\quota-free-ok\quota-free-ok_96590b0b.wav         32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\950\quota-free-ok\quota-free-ok_c089b8e5.wav         32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\950\quota-free-ok\quota-free-ok_cd4c0b21.wav         32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\951\quota-free-limit\quota-free-limit_2ddf348b.wav   32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\951\quota-free-limit\quota-free-limit_65f8ab96.wav   32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\951\quota-free-limit\quota-free-limit_a7a7e627.wav   32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\951\quota-free-limit\quota-free-limit_adea2f7f.wav   32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\951\quota-free-limit\quota-free-limit_dfc9d53a.wav   32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\964\testword\testword_75ed4d4a.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\965\listtest\listtest_00fb8674.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\966\batchtest\batchtest_31a0a2fe.wav                 50284
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\966\batchtest\batchtest_451cf3a5.wav                 49964
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\966\batchtest\batchtest_6a2f1f92.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\966\batchtest\batchtest_6b4ea045.wav                 50924
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\966\batchtest\batchtest_9dc3efe0.wav                 50604
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\966\batchtest\batchtest_9f268fdb.wav                 49644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\966\batchtest\batchtest_bcb1976f.wav                 49004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\966\batchtest\batchtest_c7415541.wav                 48364
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\966\batchtest\batchtest_d5256b7a.wav                 48684
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\966\batchtest\batchtest_ef54bae8.wav                 49324
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\967\traintest\traintest_11fb55ac.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\967\traintest\traintest_1e428588.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\967\traintest\traintest_691de08b.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\967\traintest\traintest_808d686b.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\967\traintest\traintest_90887542.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\967\traintest\traintest_97e5acbc.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\967\traintest\traintest_a0f29802.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\967\traintest\traintest_b4abfeb4.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\967\traintest\traintest_ef9e5868.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\967\traintest\traintest_fd8875d7.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\968\statustest\statustest_25b9d9b4.wav               48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\968\statustest\statustest_28938105.wav               48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\968\statustest\statustest_31c1593d.wav               48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\968\statustest\statustest_3b20f6c2.wav               48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\968\statustest\statustest_67dcad09.wav               48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\968\statustest\statustest_7432c184.wav               48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\968\statustest\statustest_9867468d.wav               48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\968\statustest\statustest_b25e4855.wav               48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\968\statustest\statustest_d9721f2c.wav               48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\968\statustest\statustest_db528035.wav               48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\97\testword\testword_0001.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\974\floatnorm\floatnorm_0991fe80.wav                 48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\977\quota-free-ok\quota-free-ok_0c35f128.wav         32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\977\quota-free-ok\quota-free-ok_117a8e1b.wav         32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\977\quota-free-ok\quota-free-ok_411846ac.wav         32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\977\quota-free-ok\quota-free-ok_b967a4d9.wav         32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\977\quota-free-ok\quota-free-ok_fe6e28b4.wav         32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\978\quota-free-limit\quota-free-limit_45eb3b6f.wav   32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\978\quota-free-limit\quota-free-limit_9ba96c3e.wav   32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\978\quota-free-limit\quota-free-limit_a81d958b.wav   32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\978\quota-free-limit\quota-free-limit_aa18fbfd.wav   32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\978\quota-free-limit\quota-free-limit_d14ab245.wav   32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\98\listtest\listtest_0001.wav                        48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\984\quota-free-ok\quota-free-ok_0602a046.wav         32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\984\quota-free-ok\quota-free-ok_690e1add.wav         32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\984\quota-free-ok\quota-free-ok_8cd808bb.wav         32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\984\quota-free-ok\quota-free-ok_babffb73.wav         32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\984\quota-free-ok\quota-free-ok_f8f9575a.wav         32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\985\quota-free-limit\quota-free-limit_3c5ac3cb.wav   32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\985\quota-free-limit\quota-free-limit_4a9555d4.wav   32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\985\quota-free-limit\quota-free-limit_5f13e3b8.wav   32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\985\quota-free-limit\quota-free-limit_7e18f6d0.wav   32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\985\quota-free-limit\quota-free-limit_da8b4c15.wav   32044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\99\batchtest\batchtest_0001.wav                      48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\99\batchtest\batchtest_0002.wav                      48364
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\99\batchtest\batchtest_0003.wav                      48684
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\99\batchtest\batchtest_0004.wav                      49004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\99\batchtest\batchtest_0005.wav                      49324
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\99\batchtest\batchtest_0006.wav                      49644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\99\batchtest\batchtest_0007.wav                      49964
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\99\batchtest\batchtest_0008.wav                      50284
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\99\batchtest\batchtest_0009.wav                      50604
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\99\batchtest\batchtest_0010.wav                      50924
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\998\testword\testword_cbe0c9ce.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\recordings\999\listtest\listtest_183b39ac.wav                   48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_job_35_uzlsu6kv\traintest_35_1775397115.confi...   1769
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_job_35_uzlsu6kv\traintest_35_1775397115.onnx     102378
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_9m6y7f2n\tts_positives\tts_pos_00_0_en-US...  56876
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_9m6y7f2n\tts_positives\tts_pos_00_0_en-US...  56876
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_9m6y7f2n\tts_positives\tts_pos_00_0_en-US...  56876
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_9m6y7f2n\tts_positives\tts_pos_00_1_en-US...  66092
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_9m6y7f2n\tts_positives\tts_pos_00_1_en-US...  66092
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_9m6y7f2n\tts_positives\tts_pos_00_1_en-US...  66092
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_9m6y7f2n\tts_positives\tts_pos_00_2_en-US...  72236
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_9m6y7f2n\tts_positives\tts_pos_00_2_en-US...  72236
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_9m6y7f2n\tts_positives\tts_pos_00_2_en-US...  72236
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_9m6y7f2n\tts_positives\tts_pos_01_0_en-US...  57644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_9m6y7f2n\tts_positives\tts_pos_01_0_en-US...  57644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_9m6y7f2n\tts_positives\tts_pos_01_0_en-US...  57644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_00_0_en-US...  56876
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_00_0_en-US...  56876
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_00_0_en-US...  56876
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_00_1_en-US...  66092
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_00_1_en-US...  66092
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_00_1_en-US...  66092
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_00_2_en-US...  72236
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_00_2_en-US...  72236
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_00_2_en-US...  72236
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_01_0_en-US...  57644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_01_0_en-US...  57644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_01_0_en-US...  57644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_01_1_en-US...  63788
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_01_1_en-US...  63788
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_01_1_en-US...  63788
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_01_2_en-US...  69164
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_01_2_en-US...  69164
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_01_2_en-US...  69164
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_02_0_en-US...  58412
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_02_0_en-US...  58412
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_02_0_en-US...  58412
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_02_1_en-US...  66092
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_02_1_en-US...  66092
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_02_1_en-US...  66092
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_02_2_en-US...  73004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_02_2_en-US...  73004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_02_2_en-US...  73004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_03_0_en-US...  24620
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_03_0_en-US...  24620
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_03_0_en-US...  24620
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_03_1_en-US...  32130
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_03_1_en-US...  32130
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_03_1_en-US...  32130
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_03_2_en-US...  36908
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_03_2_en-US...  36908
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_03_2_en-US...  36908
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_04_0_en-US...  30764
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_04_0_en-US...  30764
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_04_0_en-US...  30764
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_04_1_en-US...  39640
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_04_1_en-US...  39640
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_04_1_en-US...  39640
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_04_2_en-US...  46466
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_04_2_en-US...  46466
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_04_2_en-US...  46466
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_05_0_en-US...  27352
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_05_0_en-US...  27352
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_a_m7xcds\tts_positives\tts_pos_05_0_en-US...  27352
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_00_0_en-US...  56876
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_00_0_en-US...  56876
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_00_0_en-US...  56876
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_00_1_en-US...  66092
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_00_1_en-US...  66092
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_00_1_en-US...  66092
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_00_2_en-US...  72236
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_00_2_en-US...  72236
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_00_2_en-US...  72236
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_01_0_en-US...  57644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_01_0_en-US...  57644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_01_0_en-US...  57644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_01_1_en-US...  63788
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_01_1_en-US...  63788
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_01_1_en-US...  63788
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_01_2_en-US...  69164
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_01_2_en-US...  69164
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_01_2_en-US...  69164
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_02_0_en-US...  58412
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_02_0_en-US...  58412
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_02_0_en-US...  58412
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_02_1_en-US...  66092
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_02_1_en-US...  66092
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_02_1_en-US...  66092
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_02_2_en-US...  73004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_02_2_en-US...  73004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_02_2_en-US...  73004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_03_0_en-US...  24620
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_03_0_en-US...  24620
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_03_0_en-US...  24620
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_03_1_en-US...  32130
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_03_1_en-US...  32130
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_03_1_en-US...  32130
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_03_2_en-US...  36908
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_03_2_en-US...  36908
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_03_2_en-US...  36908
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_04_0_en-US...  30764
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_04_0_en-US...  30764
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_04_0_en-US...  30764
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_04_1_en-US...  39640
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_04_1_en-US...  39640
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_04_1_en-US...  39640
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_04_2_en-US...  46466
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_04_2_en-US...  46466
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_04_2_en-US...  46466
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_05_0_en-US...  27352
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_05_0_en-US...  27352
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_05_0_en-US...  27352
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_05_1_en-US...  36908
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_05_1_en-US...  36908
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_05_1_en-US...  36908
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_05_2_en-US...  42370
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_05_2_en-US...  42370
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_05_2_en-US...  42370
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_06_0_en-US...  33496
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_06_0_en-US...  33496
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_06_0_en-US...  33496
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_06_1_en-US...  43736
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_06_1_en-US...  43736
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_06_1_en-US...  43736
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_06_2_en-US...  49880
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_06_2_en-US...  49880
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_06_2_en-US...  49880
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_07_0_en-US...  31448
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_07_0_en-US...  31448
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_07_0_en-US...  31448
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_07_1_en-US...  41688
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_07_1_en-US...  41688
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_07_1_en-US...  41688
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_07_2_en-US...  51244
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_07_2_en-US...  51244
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_ehod6bjz\tts_positives\tts_pos_07_2_en-US...  51244
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_f6995s3g\tts_positives\tts_pos_00_0_en-US...  56876
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_f6995s3g\tts_positives\tts_pos_00_0_en-US...  56876
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_f6995s3g\tts_positives\tts_pos_00_0_en-US...  56876
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_f6995s3g\tts_positives\tts_pos_00_1_en-US...  66092
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_f6995s3g\tts_positives\tts_pos_00_1_en-US...  66092
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_f6995s3g\tts_positives\tts_pos_00_1_en-US...  66092
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_f6995s3g\tts_positives\tts_pos_00_2_en-US...  72236
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_f6995s3g\tts_positives\tts_pos_00_2_en-US...  72236
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_f6995s3g\tts_positives\tts_pos_00_2_en-US...  72236
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_f6995s3g\tts_positives\tts_pos_01_0_en-US...  57644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_f6995s3g\tts_positives\tts_pos_01_0_en-US...  57644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_f6995s3g\tts_positives\tts_pos_01_0_en-US...  57644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_00_0_en-US...  56876
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_00_0_en-US...  56876
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_00_0_en-US...  56876
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_00_1_en-US...  66092
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_00_1_en-US...  66092
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_00_1_en-US...  66092
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_00_2_en-US...  72236
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_00_2_en-US...  72236
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_00_2_en-US...  72236
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_01_0_en-US...  57644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_01_0_en-US...  57644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_01_0_en-US...  57644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_01_1_en-US...  63788
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_01_1_en-US...  63788
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_01_1_en-US...  63788
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_01_2_en-US...  69164
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_01_2_en-US...  69164
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_01_2_en-US...  69164
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_02_0_en-US...  58412
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_02_0_en-US...  58412
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_02_0_en-US...  58412
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_02_1_en-US...  66092
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_02_1_en-US...  66092
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_02_1_en-US...  66092
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_02_2_en-US...  73004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_02_2_en-US...  73004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_02_2_en-US...  73004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_03_0_en-US...  24620
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_03_0_en-US...  24620
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_03_0_en-US...  24620
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_03_1_en-US...  32130
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_03_1_en-US...  32130
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_03_1_en-US...  32130
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_03_2_en-US...  36908
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_03_2_en-US...  36908
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_03_2_en-US...  36908
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_04_0_en-US...  30764
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_04_0_en-US...  30764
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_04_0_en-US...  30764
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_04_1_en-US...  39640
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_04_1_en-US...  39640
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_04_1_en-US...  39640
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_04_2_en-US...  46466
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_04_2_en-US...  46466
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_04_2_en-US...  46466
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_05_0_en-US...  27352
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_05_0_en-US...  27352
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_05_0_en-US...  27352
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_05_1_en-US...  36908
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_05_1_en-US...  36908
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_05_1_en-US...  36908
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_05_2_en-US...  42370
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_05_2_en-US...  42370
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_05_2_en-US...  42370
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_06_0_en-US...  33496
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_06_0_en-US...  33496
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_06_0_en-US...  33496
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_06_1_en-US...  43736
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_06_1_en-US...  43736
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_06_1_en-US...  43736
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_06_2_en-US...  49880
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_06_2_en-US...  49880
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_06_2_en-US...  49880
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_07_0_en-US...  31448
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_07_0_en-US...  31448
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_07_0_en-US...  31448
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_07_1_en-US...  41688
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_07_1_en-US...  41688
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_gt3at27p\tts_positives\tts_pos_07_1_en-US...  41688
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_kzrtpzxp\tts_positives\tts_pos_00_0_en-US...  55340
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_kzrtpzxp\tts_positives\tts_pos_00_0_en-US...  55340
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_kzrtpzxp\tts_positives\tts_pos_00_0_en-US...  55340
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_kzrtpzxp\tts_positives\tts_pos_00_1_en-US...  64556
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_kzrtpzxp\tts_positives\tts_pos_00_1_en-US...  64556
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_kzrtpzxp\tts_positives\tts_pos_00_1_en-US...  64556
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_kzrtpzxp\tts_positives\tts_pos_00_2_en-US...  70700
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_kzrtpzxp\tts_positives\tts_pos_00_2_en-US...  70700
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_kzrtpzxp\tts_positives\tts_pos_00_2_en-US...  70700
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_kzrtpzxp\tts_positives\tts_pos_01_0_en-US...  56108
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_kzrtpzxp\tts_positives\tts_pos_01_0_en-US...  56108
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_kzrtpzxp\tts_positives\tts_pos_01_0_en-US...  56108
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_kzrtpzxp\tts_positives\tts_pos_01_1_en-US...  62252
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_kzrtpzxp\tts_positives\tts_pos_01_1_en-US...  62252
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_kzrtpzxp\tts_positives\tts_pos_01_1_en-US...  62252
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_kzrtpzxp\tts_positives\tts_pos_01_2_en-US...  67628
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_kzrtpzxp\tts_positives\tts_pos_01_2_en-US...  67628
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_kzrtpzxp\tts_positives\tts_pos_01_2_en-US...  67628
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_kzrtpzxp\tts_positives\tts_pos_02_0_en-US...  56876
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_kzrtpzxp\tts_positives\tts_pos_02_0_en-US...  56876
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_kzrtpzxp\tts_positives\tts_pos_02_0_en-US...  56876
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_kzrtpzxp\tts_positives\tts_pos_02_1_en-US...  64556
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_kzrtpzxp\tts_positives\tts_pos_02_1_en-US...  64556
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_kzrtpzxp\tts_positives\tts_pos_02_1_en-US...  64556
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_kzrtpzxp\tts_positives\tts_pos_02_2_en-US...  71468
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_kzrtpzxp\tts_positives\tts_pos_02_2_en-US...  71468
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_kzrtpzxp\tts_positives\tts_pos_02_2_en-US...  71468
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_nosik1gg\tts_positives\tts_pos_00_0_en-US...  55340
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_nosik1gg\tts_positives\tts_pos_00_0_en-US...  55340
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_nosik1gg\tts_positives\tts_pos_00_0_en-US...  55340
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_nosik1gg\tts_positives\tts_pos_00_1_en-US...  64556
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_nosik1gg\tts_positives\tts_pos_00_1_en-US...  64556
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_nosik1gg\tts_positives\tts_pos_00_1_en-US...  64556
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_nosik1gg\tts_positives\tts_pos_00_2_en-US...  70700
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_nosik1gg\tts_positives\tts_pos_00_2_en-US...  70700
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_nosik1gg\tts_positives\tts_pos_00_2_en-US...  70700
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_nosik1gg\tts_positives\tts_pos_01_0_en-US...  56108
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_nosik1gg\tts_positives\tts_pos_01_0_en-US...  56108
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_nosik1gg\tts_positives\tts_pos_01_0_en-US...  56108
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_nosik1gg\tts_positives\tts_pos_01_1_en-US...  62252
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_nosik1gg\tts_positives\tts_pos_01_1_en-US...  62252
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_nosik1gg\tts_positives\tts_pos_01_1_en-US...  62252
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_nosik1gg\tts_positives\tts_pos_01_2_en-US...  67628
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_nosik1gg\tts_positives\tts_pos_01_2_en-US...  67628
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_nosik1gg\tts_positives\tts_pos_01_2_en-US...  67628
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_nosik1gg\tts_positives\tts_pos_02_0_en-US...  56876
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_nosik1gg\tts_positives\tts_pos_02_0_en-US...  56876
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_nosik1gg\tts_positives\tts_pos_02_0_en-US...  56876
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_nosik1gg\tts_positives\tts_pos_02_1_en-US...  64556
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_nosik1gg\tts_positives\tts_pos_02_1_en-US...  64556
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_nosik1gg\tts_positives\tts_pos_02_1_en-US...  64556
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_nosik1gg\tts_positives\tts_pos_02_2_en-US...  71468
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_nosik1gg\tts_positives\tts_pos_02_2_en-US...  71468
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_nosik1gg\tts_positives\tts_pos_02_2_en-US...  71468
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_00_0_en-US...  56876
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_00_0_en-US...  56876
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_00_0_en-US...  56876
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_00_1_en-US...  66092
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_00_1_en-US...  66092
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_00_1_en-US...  66092
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_00_2_en-US...  72236
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_00_2_en-US...  72236
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_00_2_en-US...  72236
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_01_0_en-US...  57644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_01_0_en-US...  57644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_01_0_en-US...  57644
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_01_1_en-US...  63788
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_01_1_en-US...  63788
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_01_1_en-US...  63788
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_01_2_en-US...  69164
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_01_2_en-US...  69164
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_01_2_en-US...  69164
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_02_0_en-US...  58412
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_02_0_en-US...  58412
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_02_0_en-US...  58412
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_02_1_en-US...  66092
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_02_1_en-US...  66092
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_02_1_en-US...  66092
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_02_2_en-US...  73004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_02_2_en-US...  73004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_02_2_en-US...  73004
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_03_0_en-US...  24620
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_03_0_en-US...  24620
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_03_0_en-US...  24620
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_03_1_en-US...  32130
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_03_1_en-US...  32130
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_03_1_en-US...  32130
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_03_2_en-US...  36908
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_03_2_en-US...  36908
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_03_2_en-US...  36908
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_04_0_en-US...  30764
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_04_0_en-US...  30764
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_04_0_en-US...  30764
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_04_1_en-US...  39640
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_04_1_en-US...  39640
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_04_1_en-US...  39640
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_04_2_en-US...  46466
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_04_2_en-US...  46466
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_04_2_en-US...  46466
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_05_0_en-US...  27352
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_05_0_en-US...  27352
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_05_0_en-US...  27352
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_05_1_en-US...  36908
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_05_1_en-US...  36908
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_05_1_en-US...  36908
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_05_2_en-US...  42370
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_05_2_en-US...  42370
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_05_2_en-US...  42370
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_06_0_en-US...  33496
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_06_0_en-US...  33496
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_06_0_en-US...  33496
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_06_1_en-US...  43736
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_06_1_en-US...  43736
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_06_1_en-US...  43736
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_06_2_en-US...  49880
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_06_2_en-US...  49880
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_06_2_en-US...  49880
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_07_0_en-US...  31448
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_07_0_en-US...  31448
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_07_0_en-US...  31448
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_07_1_en-US...  41688
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_07_1_en-US...  41688
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_07_1_en-US...  41688
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_07_2_en-US...  51244
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_07_2_en-US...  51244
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_07_2_en-US...  51244
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_08_0_en-US...  28034
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_08_0_en-US...  28034
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_08_0_en-US...  28034
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_08_1_en-US...  37592
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_08_1_en-US...  37592
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_08_1_en-US...  37592
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_08_2_en-US...  43736
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_08_2_en-US...  43736
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_08_2_en-US...  43736
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_09_0_en-US...  30082
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_09_0_en-US...  30082
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_09_0_en-US...  30082
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_09_1_en-US...  36908
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_09_1_en-US...  36908
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_09_1_en-US...  36908
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_09_2_en-US...  38274
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_09_2_en-US...  38274
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_09_2_en-US...  38274
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_10_0_en-US...  24620
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_10_0_en-US...  24620
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_10_0_en-US...  24620
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_10_1_en-US...  30764
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_10_1_en-US...  30764
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_10_1_en-US...  30764
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_10_2_en-US...  34178
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_10_2_en-US...  34178
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_10_2_en-US...  34178
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_11_0_en-US...  26668
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_11_0_en-US...  26668
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_neg_xq6umfh8\tts_positives\tts_pos_11_0_en-US...  26668
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_2h29b8zy\sample_0000.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_2h29b8zy\sample_0001.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_2h29b8zy\sample_0002.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_2h29b8zy\sample_0003.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_2h29b8zy\sample_0004.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_2h29b8zy\sample_0005.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_2h29b8zy\sample_0006.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_2h29b8zy\sample_0007.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_2h29b8zy\sample_0008.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_2h29b8zy\sample_0009.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_b0me9wc8\sample_0000.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_b0me9wc8\sample_0001.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_b0me9wc8\sample_0002.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_b0me9wc8\sample_0003.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_b0me9wc8\sample_0004.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_b0me9wc8\sample_0005.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_b0me9wc8\sample_0006.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_b0me9wc8\sample_0007.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_b0me9wc8\sample_0008.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_b0me9wc8\sample_0009.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_gw8h8306\sample_0000.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_gw8h8306\sample_0001.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_gw8h8306\sample_0002.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_gw8h8306\sample_0003.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_gw8h8306\sample_0004.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_gw8h8306\sample_0005.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_gw8h8306\sample_0006.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_gw8h8306\sample_0007.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_gw8h8306\sample_0008.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_gw8h8306\sample_0009.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_lh51xk8l\sample_0000.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_lh51xk8l\sample_0001.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_lh51xk8l\sample_0002.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_lh51xk8l\sample_0003.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_lh51xk8l\sample_0004.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_lh51xk8l\sample_0005.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_lh51xk8l\sample_0006.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_lh51xk8l\sample_0007.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_lh51xk8l\sample_0008.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_lh51xk8l\sample_0009.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_lvufghb3\sample_0000.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_lvufghb3\sample_0001.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_lvufghb3\sample_0002.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_lvufghb3\sample_0003.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_lvufghb3\sample_0004.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_lvufghb3\sample_0005.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_lvufghb3\sample_0006.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_lvufghb3\sample_0007.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_lvufghb3\sample_0008.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_lvufghb3\sample_0009.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_mhe83tz0\sample_0000.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_mhe83tz0\sample_0001.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_mhe83tz0\sample_0002.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_mhe83tz0\sample_0003.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_mhe83tz0\sample_0004.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_mhe83tz0\sample_0005.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_mhe83tz0\sample_0006.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_mhe83tz0\sample_0007.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_mhe83tz0\sample_0008.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_mhe83tz0\sample_0009.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_o597fmu7\sample_0000.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_o597fmu7\sample_0001.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_o597fmu7\sample_0002.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_o597fmu7\sample_0003.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_o597fmu7\sample_0004.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_o597fmu7\sample_0005.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_o597fmu7\sample_0006.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_o597fmu7\sample_0007.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_o597fmu7\sample_0008.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_o597fmu7\sample_0009.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_v4lkecx1\sample_0000.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_v4lkecx1\sample_0001.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_v4lkecx1\sample_0002.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_v4lkecx1\sample_0003.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_v4lkecx1\sample_0004.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_v4lkecx1\sample_0005.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_v4lkecx1\sample_0006.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_v4lkecx1\sample_0007.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_v4lkecx1\sample_0008.wav                    48044
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_train_v4lkecx1\sample_0009.wav                    48044



codex
The successful March job artifacts are 34,010-byte ONNX files, while known TemporalCNN artifacts in the same data tree are about 102,378 bytes. That points to the 17 completed queue jobs being legacy MLP exports, not proof that TemporalCNN export ever succeeded through the current SDK path; I’m confirming from the model DB/configs.
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "py -3 -c \"import sqlite3; con=sqlite3.connect(r'console/backend/data/violawake.db'); cur=con.cursor(); print(cur.execute('select name from sqlite_master where type=\\'table\\' order by name').fetchall()); print(cur.execute('pragma table_info(trained_models)').fetchall())\"" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "py -3 -c \"import sqlite3; con=sqlite3.connect(r'console/backend/data/violawake.db'); cur=con.cursor(); rows=cur.execute('select id, wake_word, created_at, model_path, config_path, d_prime from trained_models where id in (20,21,22,23,24,25,26,27,28,29,30) order by id').fetchall(); [print(row) for row in rows]\"" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "Get-Content -Raw 'console/backend/data/models/245/traintest_16_1774739797.config.json'" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "Get-Content -Raw 'console/backend/data/models/563/big_chungus_production.config.json'" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "Get-Content -Raw 'console/backend/data/models/563/big_chungus_temporal_1774743406.config.json'" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'Get-ChildItem -Path console/backend/data/tmp -Recurse -Filter "*.config.json" -File | Sort-Object LastWriteTime -Descending | Select-Object -First 20 FullName,Length,LastWriteTime' in J:\CLAUDE\PROJECTS\Wakeword
 succeeded in 506ms:
{
  "feature_type": "mel_pcen",
  "n_mels": 40,
  "n_fft": 512,
  "hop_length": 160,
  "win_length": 400,
  "f_min": 60,
  "f_max": 7800,
  "sample_rate": 16000,
  "clip_samples": 24000,
  "use_pcen": true,
  "pcen_gain": 0.98,
  "pcen_bias": 2.0,
  "pcen_power": 0.5,
  "pcen_time_constant": 0.06,
  "pcen_eps": 1e-06,
  "architecture": "temporal_cnn",
  "model_class": "TemporalCNN",
  "embedding_dim": 96,
  "seq_len": 9,
  "n_params": 25409,
  "n_pos_samples": 1397,
  "n_neg_samples": 6095,
  "augmented": true,
  "epochs_trained": 65,
  "best_epoch": 50,
  "best_val_loss": 0.007264349202159792,
  "ema_val_loss": 0.007780309426986302,
  "averaging_method": "raw",
  "ema_decay": 0.999,
  "batch_size": 64,
  "lr": 0.001,
  "patience": 15,
  "training_duration_s": 181.02,
  "wake_word": "big chungus",
  "deployment_threshold": 0.8,
  "quality_grade": "C",
  "quality_gate": {
    "grade": "C",
    "deployment_threshold": 0.8,
    "speech_fp_rate": 0.0,
    "speech_sample_count": 50,
    "confusable_fp_rate": 0.0,
    "confusable_sample_count": 20,
    "silence_max_score": 0.45188039541244507,
    "silence_window_count": 1
  },
  "quality_gate_blocked_export": false,
  "neg_corpus_breakdown": {
    "neg_confusable_r1": 180,
    "neg_confusable_r2": 96,
    "neg_speech": 303,
    "neg_librispeech": 2000,
    "neg_musan_speech": 426,
    "neg_musan_music": 660,
    "neg_musan_noise": 930,
    "neg_silence": 1500
  },
  "corpus_found": true,
  "oww_mel_sha256": "ba2b0e0f8b7b875369a2c89cb13360ff53bac436f2895cced9f479fa65eb176f",
  "oww_emb_sha256": "70d164290c1d095d1d4ee149bc5e00543250a7316b59f31d056cff7bd3075c1f"
}

 succeeded in 513ms:
{
  "feature_type": "mel_pcen",
  "n_mels": 40,
  "n_fft": 512,
  "hop_length": 160,
  "win_length": 400,
  "f_min": 60,
  "f_max": 7800,
  "sample_rate": 16000,
  "clip_samples": 24000,
  "use_pcen": true,
  "pcen_gain": 0.98,
  "pcen_bias": 2.0,
  "pcen_power": 0.5,
  "pcen_time_constant": 0.06,
  "pcen_eps": 1e-06,
  "architecture": "temporal_cnn",
  "model_class": "TemporalCNN",
  "embedding_dim": 96,
  "seq_len": 9,
  "n_params": 25409,
  "n_pos_samples": 110,
  "n_neg_samples": 4379,
  "augmented": true,
  "epochs_trained": 43,
  "best_epoch": 28,
  "best_val_loss": 0.0007635852870104524,
  "ema_val_loss": 0.0007864485771278851,
  "averaging_method": "raw",
  "ema_decay": 0.999,
  "batch_size": 64,
  "lr": 0.001,
  "patience": 15,
  "training_duration_s": 134.52,
  "wake_word": "big chungus",
  "deployment_threshold": 0.8,
  "quality_grade": "F",
  "quality_gate": {
    "grade": "F",
    "deployment_threshold": 0.8,
    "speech_fp_rate": 0.0,
    "speech_sample_count": 50,
    "confusable_fp_rate": 0.0,
    "confusable_sample_count": 20,
    "silence_max_score": 0.7999595403671265,
    "silence_window_count": 1
  },
  "quality_gate_blocked_export": true,
  "neg_corpus_breakdown": {
    "neg_confusable": 60,
    "neg_speech": 303,
    "neg_librispeech": 2000,
    "neg_musan_speech": 426,
    "neg_musan_music": 660,
    "neg_musan_noise": 930
  },
  "corpus_found": true,
  "oww_mel_sha256": "ba2b0e0f8b7b875369a2c89cb13360ff53bac436f2895cced9f479fa65eb176f",
  "oww_emb_sha256": "70d164290c1d095d1d4ee149bc5e00543250a7316b59f31d056cff7bd3075c1f"
}

 succeeded in 523ms:
{
  "feature_type": "mel_pcen",
  "n_mels": 40,
  "n_fft": 512,
  "hop_length": 160,
  "win_length": 400,
  "f_min": 60,
  "f_max": 7800,
  "sample_rate": 16000,
  "clip_samples": 24000,
  "use_pcen": true,
  "pcen_gain": 0.98,
  "pcen_bias": 2.0,
  "pcen_power": 0.5,
  "pcen_time_constant": 0.06,
  "pcen_eps": 1e-06,
  "architecture": "mlp_on_oww",
  "embedding_dim": 96,
  "hidden_dim": 64,
  "n_pos_samples": 110,
  "n_neg_samples": 550,
  "augmented": true,
  "epochs": 5,
  "best_epoch": 5,
  "best_val_loss": 5.866062419954687e-05,
  "training_duration_s": 27.42,
  "averaging_method": "raw",
  "oww_mel_sha256": "ba2b0e0f8b7b875369a2c89cb13360ff53bac436f2895cced9f479fa65eb176f",
  "oww_emb_sha256": "70d164290c1d095d1d4ee149bc5e00543250a7316b59f31d056cff7bd3075c1f"
}

 succeeded in 582ms:
[('processed_stripe_events',), ('recordings',), ('subscriptions',), ('team_members',), ('teams',), ('trained_models',), ('training_jobs',), ('usage_records',), ('users',)]
[(0, 'id', 'INTEGER', 1, None, 1), (1, 'user_id', 'INTEGER', 1, None, 0), (2, 'wake_word', 'VARCHAR(100)', 1, None, 0), (3, 'file_path', 'VARCHAR(1024)', 1, None, 0), (4, 'config_json', 'TEXT', 0, None, 0), (5, 'd_prime', 'FLOAT', 0, None, 0), (6, 'size_bytes', 'INTEGER', 1, None, 0), (7, 'created_at', 'DATETIME', 1, None, 0), (8, 'team_id', 'INTEGER', 0, None, 0)]

 succeeded in 586ms:

FullName                                                                                                           Leng
                                                                                                                     th
--------                                                                                                           ----
J:\CLAUDE\PROJECTS\Wakeword\console\backend\data\tmp\violawake_job_35_uzlsu6kv\traintest_35_1775397115.config.json 1769



2026-05-07T16:12:46.981702Z ERROR codex_core::tools::router: error=Exit code: 1
Wall time: 0.6 seconds
Output:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
    import sqlite3; con=sqlite3.connect(r'console/backend/data/violawake.db'); cur=con.cursor(); rows=cur.execute('select id, wake_word, created_at, model_path, config_path, d_prime from trained_models where id in (20,21,22,23,24,25,26,27,28,29,30) order by id').fetchall(); [print(row) for row in rows]
                                                                                                      ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sqlite3.OperationalError: no such column: model_path

 exited 1 in 624ms:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
    import sqlite3; con=sqlite3.connect(r'console/backend/data/violawake.db'); cur=con.cursor(); rows=cur.execute('select id, wake_word, created_at, model_path, config_path, d_prime from trained_models where id in (20,21,22,23,24,25,26,27,28,29,30) order by id').fetchall(); [print(row) for row in rows]
                                                                                                      ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sqlite3.OperationalError: no such column: model_path

exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "py -3 -c \"import sqlite3; con=sqlite3.connect(r'console/backend/data/violawake.db'); cur=con.cursor(); rows=cur.execute('select id, wake_word, created_at, file_path, size_bytes, substr(config_json,1,120) from trained_models where id in (20,21,22,23,24,25,26,27,28,29,30,563,564) order by id').fetchall(); [print(row) for row in rows]\"" in J:\CLAUDE\PROJECTS\Wakeword
 succeeded in 424ms:
(20, 'traintest', '2026-03-28 23:17:36.776176', 'models/408/traintest_24_1774739840.onnx', 34010, '{"feature_type": "mel_pcen", "n_mels": 40, "n_fft": 512, "hop_length": 160, "win_length": 400, "f_min": 60, "f_max": 780')
(21, 'statustest', '2026-03-28 23:17:36.942544', 'models/380/statustest_23_1774739840.onnx', 34010, '{"feature_type": "mel_pcen", "n_mels": 40, "n_fft": 512, "hop_length": 160, "win_length": 400, "f_min": 60, "f_max": 780')
(22, 'statustest', '2026-03-28 23:17:37.231282', 'models/409/statustest_25_1774739841.onnx', 34010, '{"feature_type": "mel_pcen", "n_mels": 40, "n_fft": 512, "hop_length": 160, "win_length": 400, "f_min": 60, "f_max": 780')
(23, 'traintest', '2026-03-28 23:17:37.586302', 'models/437/traintest_26_1774739841.onnx', 34010, '{"feature_type": "mel_pcen", "n_mels": 40, "n_fft": 512, "hop_length": 160, "win_length": 400, "f_min": 60, "f_max": 780')
(24, 'traintest', '2026-03-28 23:17:52.682519', 'models/466/traintest_28_1774739857.onnx', 34010, '{"feature_type": "mel_pcen", "n_mels": 40, "n_fft": 512, "hop_length": 160, "win_length": 400, "f_min": 60, "f_max": 780')
(25, 'statustest', '2026-03-28 23:17:53.108200', 'models/438/statustest_27_1774739856.onnx', 34010, '{"feature_type": "mel_pcen", "n_mels": 40, "n_fft": 512, "hop_length": 160, "win_length": 400, "f_min": 60, "f_max": 780')
(26, 'statustest', '2026-03-28 23:17:53.171221', 'models/467/statustest_29_1774739857.onnx', 34010, '{"feature_type": "mel_pcen", "n_mels": 40, "n_fft": 512, "hop_length": 160, "win_length": 400, "f_min": 60, "f_max": 780')
(27, 'traintest', '2026-03-28 23:17:53.493260', 'models/518/traintest_30_1774739857.onnx', 34010, '{"feature_type": "mel_pcen", "n_mels": 40, "n_fft": 512, "hop_length": 160, "win_length": 400, "f_min": 60, "f_max": 780')
(28, 'statustest', '2026-03-28 23:18:06.760051', 'models/519/statustest_31_1774739872.onnx', 34010, '{"feature_type": "mel_pcen", "n_mels": 40, "n_fft": 512, "hop_length": 160, "win_length": 400, "f_min": 60, "f_max": 780')
(29, 'big chungus', '2026-03-29 00:03:28.595075', 'models/563/big chungus_32_1774742592.onnx', 34010, '{"feature_type": "mel_pcen", "n_mels": 40, "n_fft": 512, "hop_length": 160, "win_length": 400, "f_min": 60, "f_max": 780')
(30, 'big chungus', '2026-03-29 22:51:58.183076', 'models/564/big chungus_34_1774824703.onnx', 34010, '{"feature_type": "mel_pcen", "n_mels": 40, "n_fft": 512, "hop_length": 160, "win_length": 400, "f_min": 60, "f_max": 780')

exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "py -3 -c \"import sqlite3,json; jq=sqlite3.connect(r'console/backend/data/job_queue.db'); v=sqlite3.connect(r'console/backend/data/violawake.db'); jobs=jq.execute('select id,model_id from jobs where status=\\'completed\\' order by id').fetchall(); print('job_id model_id arch size path');
for jid, mid in jobs:
    row=v.execute('select file_path,size_bytes,config_json from trained_models where id=?',(mid,)).fetchone()
    if row:
        path,size,cfg=row; arch=json.loads(cfg or '{}').get('architecture'); print(jid, mid, arch, size, path)
    else:
        print(jid, mid, 'NO_MODEL_ROW')\"" in J:\CLAUDE\PROJECTS\Wakeword
 succeeded in 293ms:
job_id model_id arch size path
16 15 mlp_on_oww 34010 models/245/traintest_16_1774739797.onnx
17 13 mlp_on_oww 34010 models/246/statustest_17_1774739797.onnx
19 17 mlp_on_oww 34010 models/335/traintest_19_1774739825.onnx
20 16 mlp_on_oww 34010 models/336/statustest_20_1774739825.onnx
21 19 mlp_on_oww 34010 models/346/statustest_21_1774739825.onnx
22 18 mlp_on_oww 34010 models/379/traintest_22_1774739825.onnx
23 21 mlp_on_oww 34010 models/380/statustest_23_1774739840.onnx
24 20 mlp_on_oww 34010 models/408/traintest_24_1774739840.onnx
25 22 mlp_on_oww 34010 models/409/statustest_25_1774739841.onnx
26 23 mlp_on_oww 34010 models/437/traintest_26_1774739841.onnx
27 25 mlp_on_oww 34010 models/438/statustest_27_1774739856.onnx
28 24 mlp_on_oww 34010 models/466/traintest_28_1774739857.onnx
29 26 mlp_on_oww 34010 models/467/statustest_29_1774739857.onnx
30 27 mlp_on_oww 34010 models/518/traintest_30_1774739857.onnx
31 28 mlp_on_oww 34010 models/519/statustest_31_1774739872.onnx
32 29 mlp_on_oww 34010 models/563/big chungus_32_1774742592.onnx
34 30 mlp_on_oww 34010 models/564/big chungus_34_1774824703.onnx

codex
One correction from the DB evidence: the 17 completed queue jobs in the local `job_queue.db` all map to `architecture: mlp_on_oww`, so they did not exercise `TemporalCNN` or adaptive pooling at all. Since you mentioned job 49 and this local DB tops out lower, I’m checking the live container DB separately before finalizing.
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "docker exec wakeword-backend-1 python -c \"import sqlite3; con=sqlite3.connect('/app/data/job_queue.db'); cur=con.cursor(); print(cur.execute('select id,status,created_at,started_at,completed_at,error,progress_pct,model_id from jobs order by id desc limit 20').fetchall())\"" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "docker exec wakeword-backend-1 python -c \"import sqlite3; con=sqlite3.connect('/app/data/job_queue.db'); cur=con.cursor(); rows=cur.execute('select id, created_at, completed_at, model_id from jobs where status=\\'completed\\' order by id').fetchall(); print('count', len(rows)); [print(row) for row in rows]\"" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "docker exec wakeword-backend-1 python -c \"import sqlite3; con=sqlite3.connect('/app/data/violawake.db'); cur=con.cursor(); print(cur.execute('select id,wake_word,created_at,file_path,size_bytes,substr(config_json,1,120) from trained_models order by id desc limit 20').fetchall())\"" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "docker exec wakeword-backend-1 sh -lc \"find /app/data -maxdepth 4 -type f \\( -name '*.onnx' -o -name '*.config.json' \\) -printf '%TY-%Tm-%Td %TH:%TM %s %p\\n' | sort | tail -40\"" in J:\CLAUDE\PROJECTS\Wakeword
 succeeded in 452ms:
[(49, 'failed', '2026-05-07T14:25:40.207868+00:00', '2026-05-07T14:46:41.807761+00:00', '2026-05-07T15:14:50.022310+00:00', "Failed to convert the exported program to an ONNX model. \x1b[96mThis is step 3/3\x1b[0m of exporting the model to ONNX. Next steps:\n- If there is a missing ONNX function, implement it and register it to the registry.\n- If there is an internal error during ONNX conversion, debug the error and submit a PR to PyTorch.\n- Create an error report with `torch.onnx.export(..., report=True)`, and save the ExportedProgram as a pt2 file. Create an issue in the PyTorch GitHub repository against the \x1b[96m*onnx*\x1b[0m component. Attach the error report and the pt2 model.\n\n## Exception summary\n\n<class 'torch.onnx._internal.exporter._errors.DispatchError'>: No ONNX function found for <OpOverload(op='aten.adaptive_max_pool2d', overload='default')>. Failure message: No decompositions registered for the real-valued input\n⬆️\n<class 'torch.onnx._internal.exporter._errors.ConversionError'>: Error when translating node %adaptive_max_pool2d : [num_users=1] = call_function[target=torch.ops.aten.adaptive_max_pool2d.default](args = (%unsqueeze, [1, 1]), kwargs = {}). See the stack trace for more information.\n\n(Refer to the full stack trace above for more information.)", 67.38, None), (48, 'cancelled', '2026-05-07T14:07:25.666739+00:00', '2026-05-07T14:24:18.559165+00:00', None, None, 8.0, None), (47, 'cancelled', '2026-05-07T13:47:00.407168+00:00', None, None, None, 0.0, None), (46, 'cancelled', '2026-05-07T13:11:06.570616+00:00', None, None, None, 0.0, None), (45, 'cancelled', '2026-05-07T12:41:25.009687+00:00', None, None, None, 0.0, None), (44, 'cancelled', '2026-05-07T12:20:36.271995+00:00', None, None, None, 0.0, None), (43, 'cancelled', '2026-05-07T12:13:15.059514+00:00', '2026-05-07T14:07:09.127554+00:00', None, None, 8.0, None), (42, 'cancelled', '2026-05-07T12:03:52.393073+00:00', '2026-05-07T14:07:09.125041+00:00', None, None, 8.0, None), (41, 'failed', '2026-05-07T11:48:47.958263+00:00', '2026-05-07T11:48:47.979732+00:00', '2026-05-07T12:03:16.291227+00:00', "No module named 'onnxscript'", 44.0, None), (40, 'failed', '2026-05-07T11:24:44.642466+00:00', '2026-05-07T11:24:44.659199+00:00', '2026-05-07T11:35:33.364286+00:00', 'Model failed the quality gate with grade F; ONNX export was blocked. See /app/data/tmp/violawake_job_40_mrurvqqm/viola_e2e_1778153080_40_1778153084.config.json for quality metrics.', 57.81, None), (39, 'failed', '2026-05-07T11:08:45.017859+00:00', '2026-05-07T11:08:45.408780+00:00', '2026-05-07T11:23:09.901933+00:00', 'Model failed the quality gate with grade F; ONNX export was blocked. See /app/data/tmp/violawake_job_39_anni5_aw/viola_e2e_1778152122_39_1778152125.config.json for quality metrics.', 27.0, None), (38, 'failed', '2026-05-07T10:53:25.978935+00:00', '2026-05-07T10:53:25.998851+00:00', '2026-05-07T10:58:02.749714+00:00', '<built-in method CreateWrapperFromFile of PyCapsule object at 0x7df0bc81de00> returned a result with an exception set', 8.0, None), (37, 'failed', '2026-05-07T10:47:10.293149+00:00', '2026-05-07T10:47:10.311138+00:00', '2026-05-07T10:51:59.032440+00:00', "Could not open '/usr/local/lib/python3.11/site-packages/openwakeword/resources/models/alexa_v0.1.tflite'.", 8.0, None), (36, 'failed', '2026-05-07T10:41:20.939733+00:00', '2026-05-07T10:41:20.962651+00:00', '2026-05-07T10:46:21.912922+00:00', "No module named 'fast_mp3_augment'", 8.0, None), (35, 'failed', '2026-05-07T10:31:46.853951+00:00', '2026-05-07T10:31:46.924899+00:00', '2026-05-07T10:37:57.805664+00:00', 'Only 0 negative files generated. edge-tts may not be installed or network unavailable.', 4.0, None), (34, 'completed', '2026-03-29T22:51:43.678962+00:00', '2026-03-29T22:51:43.713267+00:00', '2026-03-29T22:51:58.191290+00:00', None, 100.0, 30), (33, 'failed', '2026-03-29T22:03:06.829046+00:00', '2026-03-29T22:03:06.860697+00:00', '2026-03-29T22:03:06.921650+00:00', '[Errno 28] No space left on device', 0.0, None), (32, 'completed', '2026-03-29T00:03:12.563620+00:00', '2026-03-29T00:03:12.588655+00:00', '2026-03-29T00:03:28.603074+00:00', None, 100.0, 29), (31, 'completed', '2026-03-28T21:56:04.099932+00:00', '2026-03-28T23:17:52.790068+00:00', '2026-03-28T23:18:06.770173+00:00', None, 100.0, 28), (30, 'completed', '2026-03-28T21:55:41.693683+00:00', '2026-03-28T23:17:37.643226+00:00', '2026-03-28T23:17:53.502608+00:00', None, 100.0, 27)]

 succeeded in 472ms:
count 17
(16, '2026-03-28T20:55:53.078831+00:00', '2026-03-28T23:17:05.466411+00:00', 15)
(17, '2026-03-28T20:56:15.118412+00:00', '2026-03-28T23:17:05.373959+00:00', 13)
(19, '2026-03-28T21:25:34.018595+00:00', '2026-03-28T23:17:20.904154+00:00', 17)
(20, '2026-03-28T21:26:00.088880+00:00', '2026-03-28T23:17:20.821948+00:00', 16)
(21, '2026-03-28T21:26:03.771233+00:00', '2026-03-28T23:17:21.136832+00:00', 19)
(22, '2026-03-28T21:28:33.083002+00:00', '2026-03-28T23:17:20.934164+00:00', 18)
(23, '2026-03-28T21:29:06.687568+00:00', '2026-03-28T23:17:36.976447+00:00', 21)
(24, '2026-03-28T21:31:38.974285+00:00', '2026-03-28T23:17:36.786008+00:00', 20)
(25, '2026-03-28T21:32:06.428065+00:00', '2026-03-28T23:17:37.240602+00:00', 22)
(26, '2026-03-28T21:36:28.711133+00:00', '2026-03-28T23:17:37.594875+00:00', 23)
(27, '2026-03-28T21:36:57.619347+00:00', '2026-03-28T23:17:53.117919+00:00', 25)
(28, '2026-03-28T21:37:55.244961+00:00', '2026-03-28T23:17:52.692051+00:00', 24)
(29, '2026-03-28T21:38:32.366321+00:00', '2026-03-28T23:17:53.181430+00:00', 26)
(30, '2026-03-28T21:55:41.693683+00:00', '2026-03-28T23:17:53.502608+00:00', 27)
(31, '2026-03-28T21:56:04.099932+00:00', '2026-03-28T23:18:06.770173+00:00', 28)
(32, '2026-03-29T00:03:12.563620+00:00', '2026-03-29T00:03:28.603074+00:00', 29)
(34, '2026-03-29T22:51:43.678962+00:00', '2026-03-29T22:51:58.191290+00:00', 30)

 succeeded in 808ms:
[(30, 'big chungus', '2026-03-29 22:51:58.183076', 'models/564/big chungus_34_1774824703.onnx', 34010, '{"feature_type": "mel_pcen", "n_mels": 40, "n_fft": 512, "hop_length": 160, "win_length": 400, "f_min": 60, "f_max": 780'), (29, 'big chungus', '2026-03-29 00:03:28.595075', 'models/563/big chungus_32_1774742592.onnx', 34010, '{"feature_type": "mel_pcen", "n_mels": 40, "n_fft": 512, "hop_length": 160, "win_length": 400, "f_min": 60, "f_max": 780'), (28, 'statustest', '2026-03-28 23:18:06.760051', 'models/519/statustest_31_1774739872.onnx', 34010, '{"feature_type": "mel_pcen", "n_mels": 40, "n_fft": 512, "hop_length": 160, "win_length": 400, "f_min": 60, "f_max": 780'), (27, 'traintest', '2026-03-28 23:17:53.493260', 'models/518/traintest_30_1774739857.onnx', 34010, '{"feature_type": "mel_pcen", "n_mels": 40, "n_fft": 512, "hop_length": 160, "win_length": 400, "f_min": 60, "f_max": 780'), (26, 'statustest', '2026-03-28 23:17:53.171221', 'models/467/statustest_29_1774739857.onnx', 34010, '{"feature_type": "mel_pcen", "n_mels": 40, "n_fft": 512, "hop_length": 160, "win_length": 400, "f_min": 60, "f_max": 780'), (25, 'statustest', '2026-03-28 23:17:53.108200', 'models/438/statustest_27_1774739856.onnx', 34010, '{"feature_type": "mel_pcen", "n_mels": 40, "n_fft": 512, "hop_length": 160, "win_length": 400, "f_min": 60, "f_max": 780'), (24, 'traintest', '2026-03-28 23:17:52.682519', 'models/466/traintest_28_1774739857.onnx', 34010, '{"feature_type": "mel_pcen", "n_mels": 40, "n_fft": 512, "hop_length": 160, "win_length": 400, "f_min": 60, "f_max": 780'), (23, 'traintest', '2026-03-28 23:17:37.586302', 'models/437/traintest_26_1774739841.onnx', 34010, '{"feature_type": "mel_pcen", "n_mels": 40, "n_fft": 512, "hop_length": 160, "win_length": 400, "f_min": 60, "f_max": 780'), (22, 'statustest', '2026-03-28 23:17:37.231282', 'models/409/statustest_25_1774739841.onnx', 34010, '{"feature_type": "mel_pcen", "n_mels": 40, "n_fft": 512, "hop_length": 160, "win_length": 400, "f_min": 60, "f_max": 780'), (21, 'statustest', '2026-03-28 23:17:36.942544', 'models/380/statustest_23_1774739840.onnx', 34010, '{"feature_type": "mel_pcen", "n_mels": 40, "n_fft": 512, "hop_length": 160, "win_length": 400, "f_min": 60, "f_max": 780'), (20, 'traintest', '2026-03-28 23:17:36.776176', 'models/408/traintest_24_1774739840.onnx', 34010, '{"feature_type": "mel_pcen", "n_mels": 40, "n_fft": 512, "hop_length": 160, "win_length": 400, "f_min": 60, "f_max": 780'), (19, 'statustest', '2026-03-28 23:17:21.120144', 'models/346/statustest_21_1774739825.onnx', 34010, '{"feature_type": "mel_pcen", "n_mels": 40, "n_fft": 512, "hop_length": 160, "win_length": 400, "f_min": 60, "f_max": 780'), (18, 'traintest', '2026-03-28 23:17:20.922875', 'models/379/traintest_22_1774739825.onnx', 34010, '{"feature_type": "mel_pcen", "n_mels": 40, "n_fft": 512, "hop_length": 160, "win_length": 400, "f_min": 60, "f_max": 780'), (17, 'traintest', '2026-03-28 23:17:20.895028', 'models/335/traintest_19_1774739825.onnx', 34010, '{"feature_type": "mel_pcen", "n_mels": 40, "n_fft": 512, "hop_length": 160, "win_length": 400, "f_min": 60, "f_max": 780'), (16, 'statustest', '2026-03-28 23:17:20.809170', 'models/336/statustest_20_1774739825.onnx', 34010, '{"feature_type": "mel_pcen", "n_mels": 40, "n_fft": 512, "hop_length": 160, "win_length": 400, "f_min": 60, "f_max": 780'), (15, 'traintest', '2026-03-28 23:17:05.457196', 'models/245/traintest_16_1774739797.onnx', 34010, '{"feature_type": "mel_pcen", "n_mels": 40, "n_fft": 512, "hop_length": 160, "win_length": 400, "f_min": 60, "f_max": 780'), (14, 'statustest', '2026-03-28 23:17:05.372446', 'models/246/statustest_17_1774739797.onnx', 34010, '{"feature_type": "mel_pcen", "n_mels": 40, "n_fft": 512, "hop_length": 160, "win_length": 400, "f_min": 60, "f_max": 780'), (13, 'statustest', '2026-03-28 23:17:05.363549', 'models/246/statustest_17_1774739797.onnx', 34010, '{"feature_type": "mel_pcen", "n_mels": 40, "n_fft": 512, "hop_length": 160, "win_length": 400, "f_min": 60, "f_max": 780'), (12, 'token-test', '2026-03-28T21:56:05.129993+00:00', 'models/522/token_test.onnx', 22, None), (11, 'token-test', '2026-03-28T21:52:47.445797+00:00', 'models/500/token_test.onnx', 22, None)]

 succeeded in 951ms:
2026-03-28 21:38 22 /app/data/models/470/token_test.onnx
2026-03-28 21:52 22 /app/data/models/500/token_test.onnx
2026-03-28 21:56 22 /app/data/models/522/token_test.onnx
2026-03-28 23:17 34010 /app/data/models/245/traintest_16_1774739797.onnx
2026-03-28 23:17 34010 /app/data/models/246/statustest_17_1774739797.onnx
2026-03-28 23:17 34010 /app/data/models/335/traintest_19_1774739825.onnx
2026-03-28 23:17 34010 /app/data/models/336/statustest_20_1774739825.onnx
2026-03-28 23:17 34010 /app/data/models/346/statustest_21_1774739825.onnx
2026-03-28 23:17 34010 /app/data/models/379/traintest_22_1774739825.onnx
2026-03-28 23:17 34010 /app/data/models/380/statustest_23_1774739840.onnx
2026-03-28 23:17 34010 /app/data/models/408/traintest_24_1774739840.onnx
2026-03-28 23:17 34010 /app/data/models/409/statustest_25_1774739841.onnx
2026-03-28 23:17 34010 /app/data/models/437/traintest_26_1774739841.onnx
2026-03-28 23:17 34010 /app/data/models/438/statustest_27_1774739856.onnx
2026-03-28 23:17 34010 /app/data/models/466/traintest_28_1774739857.onnx
2026-03-28 23:17 34010 /app/data/models/467/statustest_29_1774739857.onnx
2026-03-28 23:17 34010 /app/data/models/518/traintest_30_1774739857.onnx
2026-03-28 23:17 805 /app/data/models/246/statustest_17_1774739797.config.json
2026-03-28 23:17 805 /app/data/models/518/traintest_30_1774739857.config.json
2026-03-28 23:17 806 /app/data/models/245/traintest_16_1774739797.config.json
2026-03-28 23:17 806 /app/data/models/335/traintest_19_1774739825.config.json
2026-03-28 23:17 806 /app/data/models/336/statustest_20_1774739825.config.json
2026-03-28 23:17 806 /app/data/models/346/statustest_21_1774739825.config.json
2026-03-28 23:17 806 /app/data/models/379/traintest_22_1774739825.config.json
2026-03-28 23:17 806 /app/data/models/380/statustest_23_1774739840.config.json
2026-03-28 23:17 806 /app/data/models/408/traintest_24_1774739840.config.json
2026-03-28 23:17 806 /app/data/models/409/statustest_25_1774739841.config.json
2026-03-28 23:17 806 /app/data/models/437/traintest_26_1774739841.config.json
2026-03-28 23:17 806 /app/data/models/438/statustest_27_1774739856.config.json
2026-03-28 23:17 806 /app/data/models/466/traintest_28_1774739857.config.json
2026-03-28 23:17 806 /app/data/models/467/statustest_29_1774739857.config.json
2026-03-28 23:18 34010 /app/data/models/519/statustest_31_1774739872.onnx
2026-03-28 23:18 807 /app/data/models/519/statustest_31_1774739872.config.json
2026-03-29 00:03 34010 /app/data/models/563/big chungus_32_1774742592.onnx
2026-03-29 00:03 808 /app/data/models/563/big chungus_32_1774742592.config.json
2026-03-29 00:24 1633 /app/data/models/563/big_chungus_temporal_1774743406.config.json
2026-03-29 01:37 102378 /app/data/models/563/big_chungus_production.onnx
2026-03-29 01:37 1694 /app/data/models/563/big_chungus_production.config.json
2026-03-29 22:51 34010 /app/data/models/564/big chungus_34_1774824703.onnx
2026-03-29 22:51 809 /app/data/models/564/big chungus_34_1774824703.config.json

exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "rg -n \"pip install|violawake\\[training\\]|training\\]|requirements|torch|torchaudio|onnxscript|fast_mp3\" Dockerfile docker-compose.yml docker-compose.production.yml console -g \"*Dockerfile*\" -g \"*.txt\" -g \"*.yml\" -g \"*.yaml\" -g \"*.sh\"" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'docker exec wakeword-backend-1 sh -lc "cat /app/requirements.txt"' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "docker exec wakeword-backend-1 sh -lc \"python - <<'PY'
import importlib.metadata as md
for d in ['violawake','torch','torchaudio','onnxscript','fast_mp3_augment']:
    try:
        print(d, md.version(d))
    except Exception as e:
        print(d, 'MISSING')
PY\"" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "Get-ChildItem -Path J:\\viola-whisper\\Lib\\site-packages -Directory -Filter \"onnxscript-*.dist-info\" | Select-Object Name,LastWriteTime" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "Get-ChildItem -Path J:\\viola-whisper\\Lib\\site-packages -Directory -Filter \"torchaudio-*.dist-info\" | Select-Object Name,LastWriteTime" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "Get-ChildItem -Path J:\\viola-whisper\\Lib\\site-packages -Directory -Filter \"onnx-*.dist-info\" | Select-Object Name,LastWriteTime" in J:\CLAUDE\PROJECTS\Wakeword
2026-05-07T16:13:35.938363Z ERROR codex_core::tools::router: error=Exit code: 1
Wall time: 0.4 seconds
Output:
console\Dockerfile.backend:11:COPY console/backend/requirements.txt .
console\Dockerfile.backend:12:RUN pip install --no-cache-dir --upgrade pip hatchling && \
console\Dockerfile.backend:13:    pip install --no-cache-dir -r requirements.txt
console\Dockerfile.backend:20:RUN pip install --no-cache-dir "/sdk[training]"
console\backend\requirements.txt:25:fast_mp3_augment
console\backend\requirements.txt:26:onnxscript
rg: Dockerfile: The system cannot find the file specified. (os error 2)
rg: docker-compose.yml: The system cannot find the file specified. (os error 2)

 exited 1 in 373ms:
console\Dockerfile.backend:11:COPY console/backend/requirements.txt .
console\Dockerfile.backend:12:RUN pip install --no-cache-dir --upgrade pip hatchling && \
console\Dockerfile.backend:13:    pip install --no-cache-dir -r requirements.txt
console\Dockerfile.backend:20:RUN pip install --no-cache-dir "/sdk[training]"
console\backend\requirements.txt:25:fast_mp3_augment
console\backend\requirements.txt:26:onnxscript
rg: Dockerfile: The system cannot find the file specified. (os error 2)
rg: docker-compose.yml: The system cannot find the file specified. (os error 2)

 succeeded in 497ms:

Name                              LastWriteTime      
----                              -------------      
torchaudio-2.10.0+cu126.dist-info 3/1/2026 1:58:52 AM



 succeeded in 505ms:

Name                       LastWriteTime       
----                       -------------       
onnxscript-0.6.2.dist-info 3/2/2026 11:59:19 AM



 succeeded in 548ms:
fastapi>=0.110
slowapi>=0.1.9
uvicorn[standard]>=0.27
sqlalchemy>=2.0
alembic>=1.13
aiosqlite>=0.19
# Optional: needed when VIOLAWAKE_DB_URL points to PostgreSQL, such as Railway.
asyncpg>=0.29
PyJWT[crypto]>=2.8
bcrypt>=4.0
python-multipart>=0.0.9
sse-starlette>=1.6
pydantic>=2.0
pydantic-settings>=2.0
email-validator>=2.0
httpx>=0.27
resend>=2.0
numpy>=1.24
scipy>=1.11
edge-tts>=6.1
stripe>=8.0.0
sentry-sdk[fastapi]>=2.0
tomli>=2.0; python_version < "3.11"
boto3>=1.34
fast_mp3_augment
onnxscript

 succeeded in 525ms:

Name                  LastWriteTime      
----                  -------------      
onnx-1.20.0.dist-info 1/2/2026 1:11:52 PM



 succeeded in 605ms:
violawake 0.2.3
torch 2.11.0
torchaudio 2.11.0
onnxscript 0.7.0
fast_mp3_augment 0.2.0

exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "rg -n -C 4 \"pip install|/sdk\\[training\\]|requirements\" console/Dockerfile.backend" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'git log --oneline -- console/Dockerfile.backend console/backend/requirements.txt pyproject.toml' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'git show 54f20b4:console/Dockerfile.backend | Select-String -Pattern "pip install|requirements|training|sdk" -Context 2,2' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'git show 54f20b4:console/backend/requirements.txt | Select-String -Pattern "fast_mp3|onnxscript|torch|torchaudio"' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'git show 54f20b4:pyproject.toml | Select-String -Pattern "torch|torchaudio|onnxscript|fast_mp3|onnx" -Context 2,2' in J:\CLAUDE\PROJECTS\Wakeword
 succeeded in 399ms:
7-    portaudio19-dev curl gosu \
8-    && rm -rf /var/lib/apt/lists/*
9-
10-# Install Python deps + upgrade build tools
11:COPY console/backend/requirements.txt .
12:RUN pip install --no-cache-dir --upgrade pip hatchling && \
13:    pip install --no-cache-dir -r requirements.txt
14-
15-# Install ViolaWake SDK
16-COPY pyproject.toml /sdk/
17-COPY README.md /sdk/
18-COPY LICENSE /sdk/
19-COPY src/ /sdk/src/
20:RUN pip install --no-cache-dir "/sdk[training]"
21-
22-# Copy backend code
23-COPY console/backend/ .
24-

 succeeded in 479ms:
49ffd9a Add corpus downloader CLI
9d27691 fix(deps): add onnxscript + fast_mp3_augment to [training] extra
acdd18f Fix edge TTS negative generation
196bfdd fix(training): four runtime bugs blocking the actual product
9f7e544 release: v0.2.3
a545d72 Merge branch 'livetest/exhaustive-tests' into master
cb1ffca feat(security): post-launch hardening sprint
2a517d0 test: add live deployment smoke suite
e7186a7 fix: adversarial audit fixes — SDK hardening, dependency updates, evaluation pipeline
8161298 fix: 3-round adversarial audit — 8 P0s + 11 P1s across SDK, Console, docs
472f23f fix: 3 verification failures + encode documentation-is-product law
66cda2b docs: turn-key README — all 35 reverse-audit findings documented
6c48d31 docs: comprehensive API documentation for 42 undocumented capabilities
d7f7c8c fix: CI green — mypy, macOS runner, openwakeword deps, pytest-asyncio
7345832 fix: close/context managers, backbone pinning, Kokoro fallback, package shim
7ad1313 fix: pipeline equivalence, audit fixes, security hardening
b955a06 fix: Round 10 audit — sdist hygiene, exception contract, release prep
ab94bd8 fix: Round 8 audit — sdist bloat, async leak, pipeline cleanup, README accuracy
0e6fce8 fix: 7 round-5 adversary findings — wrong-rate rejection, sdist scope, compat class
bfbf47b fix: 3 more adversary findings — CHANGELOG gate count, oww_backbone visibility, dev deps
13c5a59 feat: ViolaWake Console — full SaaS platform for custom wake word training
0988f41 fix: add 'viola' wake word alias + WakewordDetector class with lazy loading
0988a71 feat: initial ViolaWake SDK project structure

 succeeded in 538ms:
 succeeded in 559ms:

  
  # Install Python deps
> COPY console/backend/requirements.txt .
> RUN pip install --no-cache-dir -r requirements.txt
  
> # Install ViolaWake SDK
> COPY pyproject.toml /sdk/
> COPY README.md /sdk/
> COPY src/ /sdk/src/
> RUN pip install --no-cache-dir -e "/sdk[training]"
  
  # Copy backend code



 succeeded in 568ms:

      "speech-recognition",
      "on-device",
>     "onnx",
      "tts",
      "stt",
  # openwakeword is optional — see [oww] extra (tflite-runtime has no Python 3.12+ Linux wheels)
  dependencies = [
>     "onnxruntime>=1.17",
      "numpy>=1.24",
      "scipy>=1.11",
  # TTS: Kokoro-82M on-device TTS
  tts = [
>     "kokoro-onnx>=0.4",
      "sounddevice>=0.4",
  ]
  ]
  
> # TFLite: lightweight inference backend (alternative to onnxruntime)
  tflite = [
      "tflite-runtime>=2.14.0",
  # Training: model training pipeline
  training = [
>     "torch>=2.1",
>     "torchaudio>=2.1",
      "openwakeword>=0.6",
      "audiomentations>=0.37",
      "edge-tts>=6.1",
      "pydub>=0.25",
>     "onnx>=1.15",
  ]
  
  ]
  
> # Sample generation: TTS-based sample creation (no torch needed)
  generate = [
      "edge-tts>=6.1",
      "*.mp3",
      "*.wav",
>     "*.onnx",
  ]
  
  warn_unused_configs = true
  disallow_untyped_defs = true
> # numpy/torch return types are complex; these codes are noisy in strict mode
  disable_error_code = ["no-any-return", "type-var", "no-untyped-call"]
  exclude = ["violawake_sdk/training/", "violawake_sdk/tools/"]
  module = [
      "openwakeword.*",
>     "onnxruntime.*",
      "pyaudio.*",
      "sounddevice.*",
      "soundfile.*",
      "faster_whisper.*",
>     "kokoro_onnx.*",
      "webrtcvad.*",
      "requests.*",
      "tqdm.*",
>     "torchaudio.*",
>     "torch.*",
      "tensorflow.*",
      "scipy.*",



exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'git show -s --format="%h %ci %s" 7345832' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'git show -s --format="%h %ci %s" 196bfdd 9d27691 49ffd9a 9545987' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "rg -n \"self\\.pool|AdaptiveMaxPool1d|x = self\\.pool|export_temporal_onnx|torch\\.onnx\\.export|opset_version=opset_version\" src/violawake_sdk/training/temporal_model.py" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "rg -n \"_train_temporal_cnn|export_temporal_onnx|architecture|default=\\\"temporal_cnn\\\"|torch\\.onnx\\.export\" src/violawake_sdk/tools/train.py console/backend/app/services/training_service.py" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "py -3 -c \"import sqlite3,json; jq=sqlite3.connect(r'console/backend/data/job_queue.db'); v=sqlite3.connect(r'console/backend/data/violawake.db'); jobs=jq.execute('select id,model_id,created_at,completed_at from jobs where status=\\'completed\\' order by id').fetchall(); print('count',len(jobs));
for jid,mid,created,completed in jobs:
 row=v.execute('select size_bytes,config_json from trained_models where id=?',(mid,)).fetchone(); arch=json.loads(row[1] or '{}').get('architecture') if row else None; print(jid,created,completed,mid,arch,row[0] if row else None)\"" in J:\CLAUDE\PROJECTS\Wakeword
2026-05-07T16:14:23.259903Z ERROR codex_core::tools::router: error=Exit code: 1
Wall time: 0.3 seconds
Output:
rg: regex parse error:
    (?:_train_temporal_cnn|export_temporal_onnx|architecture|default=\)
    ^
error: unclosed group

 exited 1 in 293ms:
rg: regex parse error:
    (?:_train_temporal_cnn|export_temporal_onnx|architecture|default=\)
    ^
error: unclosed group

 succeeded in 298ms:
85:            self.pool = nn.AdaptiveMaxPool1d(1)
109:            x = self.pool(x).squeeze(-1)  # (batch, 32)
247:    def export_temporal_onnx(
271:        torch.onnx.export(
281:            opset_version=opset_version,
301:    def export_temporal_onnx(model, output_path, **kwargs) -> None:

 succeeded in 331ms:
7345832 2026-03-28 13:17:15 -0500 fix: close/context managers, backbone pinning, Kokoro fallback, package shim

 succeeded in 350ms:
196bfdd 2026-05-07 06:28:41 -0500 fix(training): four runtime bugs blocking the actual product
9d27691 2026-05-07 07:51:02 -0500 fix(deps): add onnxscript + fast_mp3_augment to [training] extra
49ffd9a 2026-05-07 08:00:59 -0500 Add corpus downloader CLI
9545987 2026-05-07 09:07:07 -0500 fix(audio): try soundfile before torchaudio in load_audio

 succeeded in 411ms:
count 17
16 2026-03-28T20:55:53.078831+00:00 2026-03-28T23:17:05.466411+00:00 15 mlp_on_oww 34010
17 2026-03-28T20:56:15.118412+00:00 2026-03-28T23:17:05.373959+00:00 13 mlp_on_oww 34010
19 2026-03-28T21:25:34.018595+00:00 2026-03-28T23:17:20.904154+00:00 17 mlp_on_oww 34010
20 2026-03-28T21:26:00.088880+00:00 2026-03-28T23:17:20.821948+00:00 16 mlp_on_oww 34010
21 2026-03-28T21:26:03.771233+00:00 2026-03-28T23:17:21.136832+00:00 19 mlp_on_oww 34010
22 2026-03-28T21:28:33.083002+00:00 2026-03-28T23:17:20.934164+00:00 18 mlp_on_oww 34010
23 2026-03-28T21:29:06.687568+00:00 2026-03-28T23:17:36.976447+00:00 21 mlp_on_oww 34010
24 2026-03-28T21:31:38.974285+00:00 2026-03-28T23:17:36.786008+00:00 20 mlp_on_oww 34010
25 2026-03-28T21:32:06.428065+00:00 2026-03-28T23:17:37.240602+00:00 22 mlp_on_oww 34010
26 2026-03-28T21:36:28.711133+00:00 2026-03-28T23:17:37.594875+00:00 23 mlp_on_oww 34010
27 2026-03-28T21:36:57.619347+00:00 2026-03-28T23:17:53.117919+00:00 25 mlp_on_oww 34010
28 2026-03-28T21:37:55.244961+00:00 2026-03-28T23:17:52.692051+00:00 24 mlp_on_oww 34010
29 2026-03-28T21:38:32.366321+00:00 2026-03-28T23:17:53.181430+00:00 26 mlp_on_oww 34010
30 2026-03-28T21:55:41.693683+00:00 2026-03-28T23:17:53.502608+00:00 27 mlp_on_oww 34010
31 2026-03-28T21:56:04.099932+00:00 2026-03-28T23:18:06.770173+00:00 28 mlp_on_oww 34010
32 2026-03-29T00:03:12.563620+00:00 2026-03-29T00:03:28.603074+00:00 29 mlp_on_oww 34010
34 2026-03-29T22:51:43.678962+00:00 2026-03-29T22:51:58.191290+00:00 30 mlp_on_oww 34010

exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "rg -n \"_train_temporal_cnn|export_temporal_onnx|default=|torch\\.onnx\\.export\" src/violawake_sdk/tools/train.py console/backend/app/services/training_service.py" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'rg -n "architecture" src/violawake_sdk/tools/train.py console/backend/app/services/training_service.py' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "docker exec wakeword-backend-1 python -c \"import sqlite3,json; jq=sqlite3.connect('/app/data/job_queue.db'); v=sqlite3.connect('/app/data/violawake.db'); jobs=jq.execute('select id,model_id,created_at,completed_at from jobs where status=\\'completed\\' order by id').fetchall(); print('count',len(jobs));
for jid,mid,created,completed in jobs:
 row=v.execute('select size_bytes,config_json from trained_models where id=?',(mid,)).fetchone(); arch=json.loads(row[1] or '{}').get('architecture') if row else None; print(jid,created,completed,mid,arch,row[0] if row else None)\"" in J:\CLAUDE\PROJECTS\Wakeword
 succeeded in 292ms:
src/violawake_sdk/tools/train.py:8:params). This is the same architecture as the production Viola model.
src/violawake_sdk/tools/train.py:48:      --architecture mlp
src/violawake_sdk/tools/train.py:979:    """Extract mean-pooled OWW embeddings for legacy MLP architecture.
src/violawake_sdk/tools/train.py:1110:# Core training: TemporalCNN (production architecture)
src/violawake_sdk/tools/train.py:1137:    - TemporalCNN(96, 9) architecture (~25K params)
src/violawake_sdk/tools/train.py:1598:            "architecture": "temporal_cnn",
src/violawake_sdk/tools/train.py:1857:    Kept for backward compatibility with --architecture mlp.
src/violawake_sdk/tools/train.py:1858:    See _train_temporal_cnn for the production architecture.
src/violawake_sdk/tools/train.py:2167:            "architecture": "mlp_on_oww",
src/violawake_sdk/tools/train.py:2273:            "Default: TemporalCNN on 9-frame OWW embedding windows (production architecture).\n"
src/violawake_sdk/tools/train.py:2347:        "--architecture",
src/violawake_sdk/tools/train.py:2350:        help="Model architecture (default: temporal_cnn). "
src/violawake_sdk/tools/train.py:2351:        "'mlp' is the legacy single-frame architecture.",
src/violawake_sdk/tools/train.py:2412:        print(f"Architecture:       {args.architecture}")
src/violawake_sdk/tools/train.py:2430:    if args.architecture == "mlp":
src/violawake_sdk/tools/train.py:2432:            print("ERROR: --positives is required for MLP architecture.", file=sys.stderr)
src/violawake_sdk/tools/train.py:2435:            print("Using legacy MLP architecture (single-frame, mean-pooled embeddings).\n")
src/violawake_sdk/tools/train.py:2453:    # TemporalCNN path (production architecture)
src/violawake_sdk/tools/train.py:2751:                    "architecture": results["architecture"],

 succeeded in 308ms:
console/backend/app/services/training_service.py:103:            _train_temporal_cnn,
console/backend/app/services/training_service.py:304:        _train_temporal_cnn(
src/violawake_sdk/tools/train.py:75:# Set by _train_temporal_cnn() via its tmp_dir parameter.
src/violawake_sdk/tools/train.py:1114:def _train_temporal_cnn(
src/violawake_sdk/tools/train.py:1190:        export_temporal_onnx,
src/violawake_sdk/tools/train.py:1572:        export_temporal_onnx(model, str(output_path), seq_len=seq_len, embedding_dim=EMBEDDING_DIM)
src/violawake_sdk/tools/train.py:1858:    See _train_temporal_cnn for the production architecture.
src/violawake_sdk/tools/train.py:2153:    torch.onnx.export(
src/violawake_sdk/tools/train.py:2288:        default=None,
src/violawake_sdk/tools/train.py:2301:        default=None,
src/violawake_sdk/tools/train.py:2308:        default=80,
src/violawake_sdk/tools/train.py:2315:        default=64,
src/violawake_sdk/tools/train.py:2322:        default=1e-3,
src/violawake_sdk/tools/train.py:2329:        default=15,
src/violawake_sdk/tools/train.py:2349:        default="temporal_cnn",
src/violawake_sdk/tools/train.py:2356:        default=True,
src/violawake_sdk/tools/train.py:2375:        default=5,
src/violawake_sdk/tools/train.py:2382:        default=64,
src/violawake_sdk/tools/train.py:2692:    _train_temporal_cnn(

 succeeded in 453ms:
count 17
16 2026-03-28T20:55:53.078831+00:00 2026-03-28T23:17:05.466411+00:00 15 mlp_on_oww 34010
17 2026-03-28T20:56:15.118412+00:00 2026-03-28T23:17:05.373959+00:00 13 mlp_on_oww 34010
19 2026-03-28T21:25:34.018595+00:00 2026-03-28T23:17:20.904154+00:00 17 mlp_on_oww 34010
20 2026-03-28T21:26:00.088880+00:00 2026-03-28T23:17:20.821948+00:00 16 mlp_on_oww 34010
21 2026-03-28T21:26:03.771233+00:00 2026-03-28T23:17:21.136832+00:00 19 mlp_on_oww 34010
22 2026-03-28T21:28:33.083002+00:00 2026-03-28T23:17:20.934164+00:00 18 mlp_on_oww 34010
23 2026-03-28T21:29:06.687568+00:00 2026-03-28T23:17:36.976447+00:00 21 mlp_on_oww 34010
24 2026-03-28T21:31:38.974285+00:00 2026-03-28T23:17:36.786008+00:00 20 mlp_on_oww 34010
25 2026-03-28T21:32:06.428065+00:00 2026-03-28T23:17:37.240602+00:00 22 mlp_on_oww 34010
26 2026-03-28T21:36:28.711133+00:00 2026-03-28T23:17:37.594875+00:00 23 mlp_on_oww 34010
27 2026-03-28T21:36:57.619347+00:00 2026-03-28T23:17:53.117919+00:00 25 mlp_on_oww 34010
28 2026-03-28T21:37:55.244961+00:00 2026-03-28T23:17:52.692051+00:00 24 mlp_on_oww 34010
29 2026-03-28T21:38:32.366321+00:00 2026-03-28T23:17:53.181430+00:00 26 mlp_on_oww 34010
30 2026-03-28T21:55:41.693683+00:00 2026-03-28T23:17:53.502608+00:00 27 mlp_on_oww 34010
31 2026-03-28T21:56:04.099932+00:00 2026-03-28T23:18:06.770173+00:00 28 mlp_on_oww 34010
32 2026-03-29T00:03:12.563620+00:00 2026-03-29T00:03:28.603074+00:00 29 mlp_on_oww 34010
34 2026-03-29T22:51:43.678962+00:00 2026-03-29T22:51:58.191290+00:00 30 mlp_on_oww 34010

exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "py -3 -c \"import onnx, collections; p=r'console/backend/data/models/563/big_chungus_production.onnx'; m=onnx.load(p); print(collections.Counter(n.op_type for n in m.graph.node)); print([(n.name,n.op_type) for n in m.graph.node])\"" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "py -3 -c \"import onnx, collections; p=r'console/backend/data/models/245/traintest_16_1774739797.onnx'; m=onnx.load(p); print(collections.Counter(n.op_type for n in m.graph.node)); print([(n.name,n.op_type) for n in m.graph.node])\"" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "py -3 -c \"import onnx; p=r'console/backend/data/models/563/big_chungus_production.onnx'; m=onnx.load(p); print([(i.name, [d.dim_value or d.dim_param for d in i.type.tensor_type.shape.dim]) for i in m.graph.input]); print([(o.name, [d.dim_value or d.dim_param for d in o.type.tensor_type.shape.dim]) for o in m.graph.output])\"" in J:\CLAUDE\PROJECTS\Wakeword
2026-05-07T16:14:46.298423Z ERROR codex_core::tools::router: error=Exit code: 1
Wall time: 0.3 seconds
Output:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
    import onnx, collections; p=r'console/backend/data/models/563/big_chungus_production.onnx'; m=onnx.load(p); print(collections.Counter(n.op_type for n in m.graph.node)); print([(n.name,n.op_type) for n in m.graph.node])
    ^^^^^^^^^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named 'onnx'

 exited 1 in 338ms:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
    import onnx, collections; p=r'console/backend/data/models/563/big_chungus_production.onnx'; m=onnx.load(p); print(collections.Counter(n.op_type for n in m.graph.node)); print([(n.name,n.op_type) for n in m.graph.node])
    ^^^^^^^^^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named 'onnx'

2026-05-07T16:14:46.314778Z ERROR codex_core::tools::router: error=Exit code: 1
Wall time: 0.3 seconds
Output:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
    import onnx, collections; p=r'console/backend/data/models/245/traintest_16_1774739797.onnx'; m=onnx.load(p); print(collections.Counter(n.op_type for n in m.graph.node)); print([(n.name,n.op_type) for n in m.graph.node])
    ^^^^^^^^^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named 'onnx'

 exited 1 in 332ms:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
    import onnx, collections; p=r'console/backend/data/models/245/traintest_16_1774739797.onnx'; m=onnx.load(p); print(collections.Counter(n.op_type for n in m.graph.node)); print([(n.name,n.op_type) for n in m.graph.node])
    ^^^^^^^^^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named 'onnx'

2026-05-07T16:14:46.326799Z ERROR codex_core::tools::router: error=Exit code: 1
Wall time: 0.3 seconds
Output:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
    import onnx; p=r'console/backend/data/models/563/big_chungus_production.onnx'; m=onnx.load(p); print([(i.name, [d.dim_value or d.dim_param for d in i.type.tensor_type.shape.dim]) for i in m.graph.input]); print([(o.name, [d.dim_value or d.dim_param for d in o.type.tensor_type.shape.dim]) for o in m.graph.output])
    ^^^^^^^^^^^
ModuleNotFoundError: No module named 'onnx'

 exited 1 in 343ms:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
    import onnx; p=r'console/backend/data/models/563/big_chungus_production.onnx'; m=onnx.load(p); print([(i.name, [d.dim_value or d.dim_param for d in i.type.tensor_type.shape.dim]) for i in m.graph.input]); print([(o.name, [d.dim_value or d.dim_param for d in o.type.tensor_type.shape.dim]) for o in m.graph.output])
    ^^^^^^^^^^^
ModuleNotFoundError: No module named 'onnx'

exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "& 'J:\\viola-whisper\\Scripts\\python.exe' -c \"import onnx, collections; p=r'console/backend/data/models/563/big_chungus_production.onnx'; m=onnx.load(p); print(collections.Counter(n.op_type for n in m.graph.node)); print([(n.name,n.op_type) for n in m.graph.node])\"" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "& 'J:\\viola-whisper\\Scripts\\python.exe' -c \"import onnx, collections; p=r'console/backend/data/models/245/traintest_16_1774739797.onnx'; m=onnx.load(p); print(collections.Counter(n.op_type for n in m.graph.node)); print([(n.name,n.op_type) for n in m.graph.node])\"" in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "& 'J:\\viola-whisper\\Scripts\\python.exe' -c \"import onnx; p=r'console/backend/data/models/563/big_chungus_production.onnx'; m=onnx.load(p); print([(i.name, [d.dim_value or d.dim_param for d in i.type.tensor_type.shape.dim]) for i in m.graph.input]); print([(o.name, [d.dim_value or d.dim_param for d in o.type.tensor_type.shape.dim]) for o in m.graph.output])\"" in J:\CLAUDE\PROJECTS\Wakeword
 succeeded in 595ms:
Counter({'Relu': 3, 'Conv': 2, 'Gemm': 2, 'Transpose': 1, 'MaxPool': 1, 'Squeeze': 1, 'Sigmoid': 1})
[('/Transpose', 'Transpose'), ('/conv1/Conv', 'Conv'), ('/Relu', 'Relu'), ('/conv2/Conv', 'Conv'), ('/Relu_1', 'Relu'), ('/pool/MaxPool', 'MaxPool'), ('/Squeeze', 'Squeeze'), ('/head/head.0/Gemm', 'Gemm'), ('/head/head.1/Relu', 'Relu'), ('/head/head.3/Gemm', 'Gemm'), ('/head/head.4/Sigmoid', 'Sigmoid')]

 succeeded in 594ms:
Counter({'Gemm': 3, 'Relu': 2, 'Sigmoid': 1})
[('/0/Gemm', 'Gemm'), ('/1/Relu', 'Relu'), ('/3/Gemm', 'Gemm'), ('/4/Relu', 'Relu'), ('/6/Gemm', 'Gemm'), ('/7/Sigmoid', 'Sigmoid')]

 succeeded in 564ms:
[('embeddings', ['batch', 9, 96])]
[('score', ['batch', 1])]

exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'git show --stat --oneline 196bfdd' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'git show 196bfdd -- console/backend/app/services/training_service.py src/violawake_sdk/tools/train.py | Select-String -Pattern "_train_temporal_cnn|export_temporal_onnx|architecture|torch.onnx.export|dynamo|onnxscript|fast_mp3" -Context 3,3' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'git show --stat --oneline acdd18f' in J:\CLAUDE\PROJECTS\Wakeword
exec
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'git show acdd18f -- console/backend/app/services/training_service.py src/violawake_sdk/tools/train.py | Select-String -Pattern "_train_temporal_cnn|export_temporal_onnx|architecture|torch.onnx.export|dynamo|onnxscript|fast_mp3" -Context 3,3' in J:\CLAUDE\PROJECTS\Wakeword
 succeeded in 293ms:
196bfdd fix(training): four runtime bugs blocking the actual product
 console/backend/entrypoint.sh    |   9 ++
 console/backend/requirements.txt |   1 +
 docker-compose.production.yml    |   5 +
 src/violawake_sdk/tools/train.py |  10 +-
 tests/live/full_pipeline_e2e.py  | 295 +++++++++++++++++++++++++++++++++++++++
 5 files changed, 317 insertions(+), 3 deletions(-)

 succeeded in 298ms:
acdd18f Fix edge TTS negative generation
 pyproject.toml                   |   1 +
 src/violawake_sdk/tools/train.py | 184 ++++++++++++++++++++++++++++++---------
 tests/unit/test_train.py         |  53 +++++++++++
 3 files changed, 196 insertions(+), 42 deletions(-)

 succeeded in 406ms:

         Without the mount, total_neg falls back to 0 and training fails
         with 'edge-tts may not be installed or network unavailable'.
      
>     2. Add fast_mp3_augment to console/backend/requirements.txt. The
>        audio augmentation step in _train_temporal_cnn imports it; was
         silently missing from the backend image.
      
      3. entrypoint.sh now runs openwakeword.utils.download_models() on



 succeeded in 423ms:

  +
   # Module-level temp directory override. When set, all tempfile operations use
   # this instead of the OS default (which may be on a small system drive).
>  # Set by _train_temporal_cnn() via its tmp_dir parameter.
   _TMP_DIR: str | None = None
  +_LAST_EDGE_TTS_ERROR: str | None = None
  +_REPORTED_EDGE_TTS_ERRORS: set[str] = set()
       if verbose:
           print(f"  Speech negatives generated: {len(generated)} files")
   
> @@ -1411,6 +1497,13 @@ def _train_temporal_cnn(
           verbose=verbose,
       )
   
       if quality_grade == "F":
           print(
               "\n" + "!" * 72 + "\nQUALITY GATE FAILED: model is not ready for deployment.\n"
> @@ -1425,8 +1518,15 @@ def _train_temporal_cnn(
               + "!"
               * 72
           )
       output_path.parent.mkdir(parents=True, exist_ok=True)
   
       # -- Export to ONNX ------------------------------------------------------
> @@ -1507,7 +1607,7 @@ def _train_temporal_cnn(
               print(f"Model saved: {output_path}")
               print(f"Load with:  WakeDetector(model='{output_path}')")
   



codex
Read-only investigation only. I did not modify, commit, push, or restart anything.

**Findings**
- No literal hits under `src/violawake_sdk/` for `adaptive_max_pool2d`, `AdaptiveMaxPool2d`, or `aten.adaptive_max_pool2d`.
- The TemporalCNN has `nn.AdaptiveMaxPool1d(1)` in [temporal_model.py](J:/CLAUDE/PROJECTS/Wakeword/src/violawake_sdk/training/temporal_model.py:85), used in forward at [line 109](J:/CLAUDE/PROJECTS/Wakeword/src/violawake_sdk/training/temporal_model.py:109). PyTorch’s dynamo exporter lowers this 1D pool through an unsqueeze into `aten.adaptive_max_pool2d`.
- The SDK export call at [temporal_model.py:271](J:/CLAUDE/PROJECTS/Wakeword/src/violawake_sdk/training/temporal_model.py:271) does not pass `dynamo=...`, so installed PyTorch uses its default `dynamo=True`.

**Versions**
- Container `wakeword-backend-1`: `torch 2.11.0+cu130`, `torchaudio 2.11.0+cu130`, `onnxscript 0.7.0`.
- Host `J:\viola-whisper`: `torch 2.10.0+cu126`, `torchaudio 2.10.0+cu126`, `onnxscript 0.6.2`.
- `pyproject.toml`: still loose, `torch>=2.1`, `torchaudio>=2.1`, `onnxscript>=0.6`.
- `console/backend/requirements.txt` before `54f20b4`: no torch pin and no `onnxscript`.

**Historical Jobs**
The 17 completed queue jobs are not evidence that TemporalCNN export used to work. In live `/app/data/job_queue.db`, jobs 16, 17, 19-32, and 34 all map to `architecture: mlp_on_oww`, size `34010` bytes. They did not exercise `AdaptiveMaxPool1d` or the TemporalCNN export path.

There is a separate TemporalCNN artifact, `models/563/big_chungus_production.onnx`, and its ONNX graph has a normal `MaxPool` node, consistent with legacy exporter output. But it is not one of the 17 completed queue jobs.

**Why Job 49 Failed**
I reproduced it in memory without writing files:

- Container torch 2.11 default export: fails with the same `DispatchError` for `aten.adaptive_max_pool2d`.
- Container with `dynamo=False`: succeeds, producing a 102,379-byte ONNX.
- Host torch 2.10 default export: also fails the same way.
- Host torch 2.10 with `dynamo=False`: succeeds.

So the fix is not “pin to host torch 2.10”; 2.10 already fails on the new default exporter. The reliable minimal fix is to force the legacy exporter for this model.

**Recent Break**
The immediate recent change was dependency repair exposing the next latent failure: job 41 failed with `No module named 'onnxscript'`; after adding/installing `onnxscript`, job 49 reached the dynamo ONNX translation step and failed on adaptive pooling. The loose `torch>=2.1`/`torchaudio>=2.1` also allowed the rebuilt container to resolve to torch 2.11, but the same failure reproduces on host torch 2.10.

Recommended one-line diff if you approve:

```diff
diff --git a/src/violawake_sdk/training/temporal_model.py b/src/violawake_sdk/training/temporal_model.py
@@
             },
             opset_version=opset_version,
+            dynamo=False,
         )
```
SUCCESS: The process with PID 86040 (child process of PID 69576) has been terminated.
SUCCESS: The process with PID 69576 (child process of PID 17032) has been terminated.
tokens used
207,527
Read-only investigation only. I did not modify, commit, push, or restart anything.

**Findings**
- No literal hits under `src/violawake_sdk/` for `adaptive_max_pool2d`, `AdaptiveMaxPool2d`, or `aten.adaptive_max_pool2d`.
- The TemporalCNN has `nn.AdaptiveMaxPool1d(1)` in [temporal_model.py](J:/CLAUDE/PROJECTS/Wakeword/src/violawake_sdk/training/temporal_model.py:85), used in forward at [line 109](J:/CLAUDE/PROJECTS/Wakeword/src/violawake_sdk/training/temporal_model.py:109). PyTorch’s dynamo exporter lowers this 1D pool through an unsqueeze into `aten.adaptive_max_pool2d`.
- The SDK export call at [temporal_model.py:271](J:/CLAUDE/PROJECTS/Wakeword/src/violawake_sdk/training/temporal_model.py:271) does not pass `dynamo=...`, so installed PyTorch uses its default `dynamo=True`.

**Versions**
- Container `wakeword-backend-1`: `torch 2.11.0+cu130`, `torchaudio 2.11.0+cu130`, `onnxscript 0.7.0`.
- Host `J:\viola-whisper`: `torch 2.10.0+cu126`, `torchaudio 2.10.0+cu126`, `onnxscript 0.6.2`.
- `pyproject.toml`: still loose, `torch>=2.1`, `torchaudio>=2.1`, `onnxscript>=0.6`.
- `console/backend/requirements.txt` before `54f20b4`: no torch pin and no `onnxscript`.

**Historical Jobs**
The 17 completed queue jobs are not evidence that TemporalCNN export used to work. In live `/app/data/job_queue.db`, jobs 16, 17, 19-32, and 34 all map to `architecture: mlp_on_oww`, size `34010` bytes. They did not exercise `AdaptiveMaxPool1d` or the TemporalCNN export path.

There is a separate TemporalCNN artifact, `models/563/big_chungus_production.onnx`, and its ONNX graph has a normal `MaxPool` node, consistent with legacy exporter output. But it is not one of the 17 completed queue jobs.

**Why Job 49 Failed**
I reproduced it in memory without writing files:

- Container torch 2.11 default export: fails with the same `DispatchError` for `aten.adaptive_max_pool2d`.
- Container with `dynamo=False`: succeeds, producing a 102,379-byte ONNX.
- Host torch 2.10 default export: also fails the same way.
- Host torch 2.10 with `dynamo=False`: succeeds.

So the fix is not “pin to host torch 2.10”; 2.10 already fails on the new default exporter. The reliable minimal fix is to force the legacy exporter for this model.

**Recent Break**
The immediate recent change was dependency repair exposing the next latent failure: job 41 failed with `No module named 'onnxscript'`; after adding/installing `onnxscript`, job 49 reached the dynamo ONNX translation step and failed on adaptive pooling. The loose `torch>=2.1`/`torchaudio>=2.1` also allowed the rebuilt container to resolve to torch 2.11, but the same failure reproduces on host torch 2.10.

Recommended one-line diff if you approve:

```diff
diff --git a/src/violawake_sdk/training/temporal_model.py b/src/violawake_sdk/training/temporal_model.py
@@
             },
             opset_version=opset_version,
+            dynamo=False,
         )
```
