emilstabil commited on
Commit
baab76f
·
verified ·
1 Parent(s): 3fda5ec

Load Tiny and PnC directly from public model repos

Browse files
Files changed (2) hide show
  1. README.md +9 -12
  2. model-config.json +8 -8
README.md CHANGED
@@ -12,7 +12,7 @@ short_description: On-device Danish speech recognition and punctuation
12
  # Ekko v1 Tiny browser demo
13
 
14
  This Space's code is MIT licensed. The Tiny and PnC model weights have separate
15
- terms. The private preview includes those terms under `model-terms/`.
16
 
17
  This static demo transcribes Danish speech locally in the browser with Ekko v1
18
  Tiny int8, sherpa-onnx WebAssembly, and Silero VAD. Ekko PnC loads separately
@@ -22,13 +22,12 @@ Audio and transcripts are never sent to an inference server. The most recent
22
  saved.
23
 
24
  The model URLs and checksums are pinned in [`model-config.json`](model-config.json).
25
- For the public release, the browser downloads Tiny's runtime configuration and
26
- ONNX files, then PnC's files, directly from their Hugging Face model repos. The
27
- private preview serves verified local copies while those repos remain private.
28
- Microphone access requires a secure
29
- origin and the browser's permission prompt, shown after the app's introductory
30
- mic dialog. Browser support remains a preview while physical-device and mobile
31
- checks are completed.
32
 
33
  The browser and Python CLI pin the same PnC v2 int8 artifact. The Python
34
  downloader also verifies the accompanying legal files from that revision.
@@ -42,7 +41,7 @@ uv sync --locked
42
  uv run --no-sync python demo/ekko-tiny-browser/serve_local.py
43
  ```
44
 
45
- The private PnC v2 files must already be in the Hugging Face cache, or pass a
46
  local directory explicitly:
47
 
48
  ```bash
@@ -50,9 +49,7 @@ uv run --no-sync python demo/ekko-tiny-browser/serve_local.py \
50
  --pnc-dir /path/to/ekko-pnc-v2
51
  ```
52
 
53
- The preview checks all PnC file sizes and hashes before serving them. A public
54
- Space cannot fetch the pinned private model revisions until those artifacts
55
- are released.
56
 
57
  ## Build and deploy
58
 
 
12
  # Ekko v1 Tiny browser demo
13
 
14
  This Space's code is MIT licensed. The Tiny and PnC model weights have separate
15
+ terms in their Hugging Face model repositories.
16
 
17
  This static demo transcribes Danish speech locally in the browser with Ekko v1
18
  Tiny int8, sherpa-onnx WebAssembly, and Silero VAD. Ekko PnC loads separately
 
22
  saved.
23
 
24
  The model URLs and checksums are pinned in [`model-config.json`](model-config.json).
25
+ The browser downloads Tiny's runtime configuration and ONNX files, then PnC's
26
+ files, directly from their Hugging Face model repos. The small third-party
27
+ Silero VAD file is bundled with the Space for browser access. Microphone access
28
+ requires a secure origin and the browser's permission prompt, shown after the
29
+ app's introductory mic dialog. Browser support remains a preview while
30
+ physical-device and mobile checks are completed.
 
31
 
32
  The browser and Python CLI pin the same PnC v2 int8 artifact. The Python
33
  downloader also verifies the accompanying legal files from that revision.
 
41
  uv run --no-sync python demo/ekko-tiny-browser/serve_local.py
42
  ```
43
 
44
+ The PnC v2 files must already be in the Hugging Face cache, or pass a
45
  local directory explicitly:
46
 
47
  ```bash
 
49
  --pnc-dir /path/to/ekko-pnc-v2
50
  ```
51
 
52
+ The preview checks all PnC file sizes and hashes before serving them.
 
 
53
 
54
  ## Build and deploy
55
 
model-config.json CHANGED
@@ -13,19 +13,19 @@
13
  "files": [
14
  {
15
  "path": "pnc.int8.onnx",
16
- "url": "model-files/pnc/pnc.int8.onnx?sha256=46bb979d409731872f10b6cb71298594595f16368d2aec2fcaf94d87b4266527",
17
  "sha256": "46bb979d409731872f10b6cb71298594595f16368d2aec2fcaf94d87b4266527",
18
  "bytes": 22424741
19
  },
20
  {
21
  "path": "tokenizer.json",
22
- "url": "model-files/pnc/tokenizer.json?sha256=a1e0d43ee307ad7a1ccc23e6e5398d877a68ca7f576067ac507625a0d50e9502",
23
  "sha256": "a1e0d43ee307ad7a1ccc23e6e5398d877a68ca7f576067ac507625a0d50e9502",
24
  "bytes": 2301084
25
  },
26
  {
27
  "path": "config.json",
28
- "url": "model-files/pnc/config.json?sha256=dc655c46f69eeb15dd43786ad58fb5862cc794b36cc9d2c426ab5bc4b01f23ca",
29
  "sha256": "dc655c46f69eeb15dd43786ad58fb5862cc794b36cc9d2c426ab5bc4b01f23ca",
30
  "bytes": 1062
31
  }
@@ -34,31 +34,31 @@
34
  "files": [
35
  {
36
  "path": "runtime-config.json",
37
- "url": "model-files/tiny/runtime-config.json?sha256=197ec64ea58975cb70c8bac645593bbaaa7ac7b261999b35b7d2986a26a41da5",
38
  "sha256": "197ec64ea58975cb70c8bac645593bbaaa7ac7b261999b35b7d2986a26a41da5",
39
  "bytes": 121
40
  },
41
  {
42
  "path": "nemo-transducer-encoder.onnx",
43
- "url": "model-files/tiny/nemo-transducer-encoder.onnx?sha256=e7ee366cb92cbf5b14beee01f04245293185ec3b271bb12acd7715e94d1f4cf2",
44
  "sha256": "e7ee366cb92cbf5b14beee01f04245293185ec3b271bb12acd7715e94d1f4cf2",
45
  "bytes": 131201109
46
  },
47
  {
48
  "path": "nemo-transducer-decoder.onnx",
49
- "url": "model-files/tiny/nemo-transducer-decoder.onnx?sha256=09beaa741719190c0052566a0785de0de212f1b89b0e8e8293fe08e1d0ebb352",
50
  "sha256": "09beaa741719190c0052566a0785de0de212f1b89b0e8e8293fe08e1d0ebb352",
51
  "bytes": 3328663
52
  },
53
  {
54
  "path": "nemo-transducer-joiner.onnx",
55
- "url": "model-files/tiny/nemo-transducer-joiner.onnx?sha256=894007e36304dcc24584e2dbbe4dff9b47088fd6e9c0763f38344b270a2ccc72",
56
  "sha256": "894007e36304dcc24584e2dbbe4dff9b47088fd6e9c0763f38344b270a2ccc72",
57
  "bytes": 777055
58
  },
59
  {
60
  "path": "tokens.txt",
61
- "url": "model-files/tiny/tokens.txt?sha256=f6240fdbb496236106174a08b086a1a59a209aea50c5468b5233f0da9e62780b",
62
  "sha256": "f6240fdbb496236106174a08b086a1a59a209aea50c5468b5233f0da9e62780b",
63
  "bytes": 231
64
  },
 
13
  "files": [
14
  {
15
  "path": "pnc.int8.onnx",
16
+ "url": "https://huggingface.co/RyeAI/ekko-pnc/resolve/d3129544e4e0155093e192cac58a9e69a4dea1ff/pnc.int8.onnx?download=true",
17
  "sha256": "46bb979d409731872f10b6cb71298594595f16368d2aec2fcaf94d87b4266527",
18
  "bytes": 22424741
19
  },
20
  {
21
  "path": "tokenizer.json",
22
+ "url": "https://huggingface.co/RyeAI/ekko-pnc/resolve/d3129544e4e0155093e192cac58a9e69a4dea1ff/tokenizer.json?download=true",
23
  "sha256": "a1e0d43ee307ad7a1ccc23e6e5398d877a68ca7f576067ac507625a0d50e9502",
24
  "bytes": 2301084
25
  },
26
  {
27
  "path": "config.json",
28
+ "url": "https://huggingface.co/RyeAI/ekko-pnc/resolve/d3129544e4e0155093e192cac58a9e69a4dea1ff/config.json?download=true",
29
  "sha256": "dc655c46f69eeb15dd43786ad58fb5862cc794b36cc9d2c426ab5bc4b01f23ca",
30
  "bytes": 1062
31
  }
 
34
  "files": [
35
  {
36
  "path": "runtime-config.json",
37
+ "url": "https://huggingface.co/RyeAI/ekko-v1-tiny/resolve/e37e698805c538e447c25062ab13fa862462ee9e/onnx-sherpa/runtime-config.json?download=true",
38
  "sha256": "197ec64ea58975cb70c8bac645593bbaaa7ac7b261999b35b7d2986a26a41da5",
39
  "bytes": 121
40
  },
41
  {
42
  "path": "nemo-transducer-encoder.onnx",
43
+ "url": "https://huggingface.co/RyeAI/ekko-v1-tiny/resolve/e37e698805c538e447c25062ab13fa862462ee9e/onnx-sherpa/encoder.int8.onnx?download=true",
44
  "sha256": "e7ee366cb92cbf5b14beee01f04245293185ec3b271bb12acd7715e94d1f4cf2",
45
  "bytes": 131201109
46
  },
47
  {
48
  "path": "nemo-transducer-decoder.onnx",
49
+ "url": "https://huggingface.co/RyeAI/ekko-v1-tiny/resolve/e37e698805c538e447c25062ab13fa862462ee9e/onnx-sherpa/decoder.int8.onnx?download=true",
50
  "sha256": "09beaa741719190c0052566a0785de0de212f1b89b0e8e8293fe08e1d0ebb352",
51
  "bytes": 3328663
52
  },
53
  {
54
  "path": "nemo-transducer-joiner.onnx",
55
+ "url": "https://huggingface.co/RyeAI/ekko-v1-tiny/resolve/e37e698805c538e447c25062ab13fa862462ee9e/onnx-sherpa/joiner.int8.onnx?download=true",
56
  "sha256": "894007e36304dcc24584e2dbbe4dff9b47088fd6e9c0763f38344b270a2ccc72",
57
  "bytes": 777055
58
  },
59
  {
60
  "path": "tokens.txt",
61
+ "url": "https://huggingface.co/RyeAI/ekko-v1-tiny/resolve/e37e698805c538e447c25062ab13fa862462ee9e/onnx-sherpa/tokens.txt?download=true",
62
  "sha256": "f6240fdbb496236106174a08b086a1a59a209aea50c5468b5233f0da9e62780b",
63
  "bytes": 231
64
  },