File size: 3,751 Bytes
50019c3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | ---
license: other
license_name: mixed-see-below
tags:
- automatic-speech-recognition
- translation
- whisper.cpp
- ctranslate2
- vrstt
---
# vrSTT models
Model weights for [vrSTT](https://github.com/kittynXR/vrSTT) β local speech-to-text
for VR and streaming. Everything vrSTT runs is here so the app can fetch the one
model a user chose, verify it, and never touch the network again.
**This repository redistributes third-party models. It trains nothing and
modifies nothing except file format.** Licences differ per directory and are
stated below; the upstream terms travel with the weights.
## Layout
```
manifest.json # what the fetcher reads first
whisper/ggml-<name>.bin # whisper.cpp ggml format, one file each
translation/<name>/ # CTranslate2 format, a directory each
```
`manifest.json` carries a `sha256` and a byte count for every file. The fetcher
verifies both before handing a path to whisper.cpp or CTranslate2 β a truncated
ggml file otherwise fails at load with an error about magic bytes, which sends
you looking at the wrong thing.
## What is here
**Speech recognition** β [whisper.cpp](https://github.com/ggerganov/whisper.cpp)
ggml conversions, byte-identical to
[ggerganov/whisper.cpp](https://huggingface.co/ggerganov/whisper.cpp). Mirrored
rather than linked so the bytes vrSTT downloads are pinned and hashed.
`tiny`, `tiny.en`, `base`, `base.en`, `small`, `small.en`, `medium`,
`medium.en`, `large-v1`, `large-v2`, `large-v3`, `large-v3-turbo`
vrSTT defaults to **`small.en` for commits and `base.en` for live previews** β
the split is deliberate, previews are allowed to be wrong and are replaced within
a second, so they should not spend the larger model.
**Translation** β [NLLB-200](https://ai.meta.com/research/no-language-left-behind/)
converted to CTranslate2 with `ct2-transformers-converter --quantization
float16`, from `facebook/nllb-200-*`.
`nllb-200-distilled-600M` (default), `nllb-200-distilled-1.3B`, `nllb-200-1.3B`
float16 rather than int8 because CTranslate2 can cast **down** at load time but
not up β one artifact serves both, and converting to int8 here would cap quality
for everyone. 600M is the default because vrSTT's stated minimum-VRAM target is
8 GB, and a 1.3B model beside the ASR stages and a game does not fit
comfortably there.
## Licences β read this before redistributing further
| Directory | Licence | Commercial use |
|---|---|---|
| `whisper/` | **MIT** (OpenAI Whisper; ggml conversions by Georgi Gerganov) | permitted |
| `translation/` | **CC-BY-NC-4.0** (Meta AI, NLLB-200) | **NOT permitted** |
**NLLB-200 is non-commercial.** Redistribution is allowed with attribution and
the licence must travel with it β which is what this section is β but neither
Meta's weights nor anything derived from them may be used commercially. If vrSTT
ever becomes a paid product, the translation models have to be replaced rather
than relicensed.
NLLB-200 also carries Meta's own caveats, which apply unchanged here: it is
research work, not certified for production translation, it was trained on
Wikimedia-domain text and does not target long-form or domain-specific input,
and translation quality varies widely by language pair. Mistranslations can
carry real consequences and vrSTT displays them live on a stream β the
`include_original` setting exists so the source text stays visible beside the
translation for exactly this reason, and it is on by default.
## Citation
Whisper β Radford et al., *Robust Speech Recognition via Large-Scale Weak
Supervision*, OpenAI, 2022.
NLLB-200 β NLLB Team et al., *No Language Left Behind: Scaling Human-Centered
Machine Translation*, Meta AI, 2022.
|