alt.freeweights.speech / wav2vec2-ljspeech-gruut-ONNX
From: onnx-community <huggingface.co/onnx-community>Newsgroups: alt.freeweights.speechSubject:

wav2vec2-ljspeech-gruut-ONNX

Date: 2026-11-15Commit: 263beb0Signed: 2DC28CC7B26A283B ✓

Automatic speech recognition model. Onnx weights, 813 MB in all. Published by onnx-community under Apache-2.0.

speech813MBwav2vec2-ljspeech-gruut-ONNXonnxpermissive
FactsParamsnot statedSize813 MBFormatsonnxTaskautomatic speech recognitionLicenseApache-2.0From sourcepermissive
$ fw get onnx-community/wav2vec2-ljspeech-gruut-ONNX
# manifest sha256 a578fe35af7e… · 813 MB · 13 files
$ fw verify ./wav2vec2-ljspeech-gruut-ONNX onnx-community/wav2vec2-ljspeech-gruut-ONNX
From sourceHosted (signed)onnx-community/wav2vec2-ljspeech-gruut-ONNXLast check: 2026-11-15 05:17 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Quantized of wav2vec2-ljspeech-gruut.

Works with

Convert with

Scan with

Overview

Size
813 MB
Weights
66.4 MB (smallest of 5 ONNX variants)
Parameters
not stated
Formats
onnx
Task
automatic speech recognition
License
Apache-2.0 (permissive)
Files
13, each with a sha256
Publisher
onnx-community
Added
2026-11-15
Section
alt.freeweights.speech
Lineage

Original release from the publisher.

Base model: bookbot/wav2vec2-ljspeech-gruut

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-15 05:17 UTCpassed

Model card

From the publisher at commit 263beb0. Shown as plain text with links; images open at the publisher.

wav2vec2-ljspeech-gruut (ONNX)#

This is an ONNX version of bookbot/wav2vec2-ljspeech-gruut. It was automatically converted and uploaded using this Hugging Face Space.

Usage with Transformers.js#

See the pipeline documentation for automatic-speech-recognition: https://huggingface.co/docs/transformers.js/api/pipelines#module_pipelines.AutomaticSpeechRecognitionPipeline


Wav2Vec2 LJSpeech Gruut#

Wav2Vec2 LJSpeech Gruut is an automatic speech recognition model based on the wav2vec 2.0 architecture. This model is a fine-tuned version of Wav2Vec2-Base on the LJSpech Phonemes dataset.

Instead of being trained to predict sequences of words, this model was trained to predict sequence of phonemes, e.g. ["h", "ɛ", "l", "ˈoʊ", "w", "ˈɚ", "l", "d"]. Therefore, the model's vocabulary contains the different IPA phonemes found in gruut.

This model was trained using HuggingFace's PyTorch framework. All training was done on a Google Cloud Engine VM with a Tesla A100 GPU. All necessary scripts used for training could be found in the Files and versions tab, as well as the Training metrics logged via Tensorboard.

Model#

Model#paramsArch.Training/Validation data (text)
wav2vec2-ljspeech-gruut94Mwav2vec 2.0LJSpech Phonemes Dataset

Evaluation Results#

The model achieves the following results on evaluation:

DatasetPER (w/o stress)CER (w/o stress)
LJSpech Phonemes Test Data0.99%0.58%

Usage#

from transformers import AutoProcessor, AutoModelForCTC, Wav2Vec2Processor
import librosa
import torch
from itertools import groupby
from datasets import load_dataset

def decode_phonemes(
    ids: torch.Tensor, processor: Wav2Vec2Processor, ignore_stress: bool = False
) -> str:
    """CTC-like decoding. First removes consecutive duplicates, then removes special tokens."""
    # removes consecutive duplicates
    ids = [id_ for id_, _ in groupby(ids)]

    special_token_ids = processor.tokenizer.all_special_ids + [
        processor.tokenizer.word_delimiter_token_id
    ]
    # converts id to token, skipping special tokens
    phonemes = [processor.decode(id_) for id_ in ids if id_ not in special_token_ids]

    # joins phonemes
    prediction = " ".join(phonemes)

    # whether to ignore IPA stress marks
    if ignore_stress == True:
        prediction = prediction.replace("ˈ", "").replace("ˌ", "")

    return prediction

checkpoint = "bookbot/wav2vec2-ljspeech-gruut"

model = AutoModelForCTC.from_pretrained(checkpoint)
processor = AutoProcessor.from_pretrained(checkpoint)
sr = processor.feature_extractor.sampling_rate

# load dummy dataset and read soundfiles
ds = load_dataset("patrickvonplaten/librispeech_asr_dummy", "clean", split="validation")
audio_array = ds[0]["audio"]["array"]

# or, read a single audio file
# audio_array, _ = librosa.load("myaudio.wav", sr=sr)

inputs = processor(audio_array, return_tensors="pt", padding=True)

with torch.no_grad():
    logits = model(inputs["input_values"]).logits

predicted_ids = torch.argmax(logits, dim=-1)
prediction = decode_phonemes(predicted_ids[0], processor, ignore_stress=True)
# => should give 'b ɪ k ʌ z j u ɚ z s l i p ɪ ŋ ɪ n s t ɛ d ə v k ɔ ŋ k ɚ ɪ ŋ ð ə l ʌ v l i ɹ z p ɹ ɪ n s ə s h æ z b ɪ k ʌ m ə v f ɪ t ə l w ɪ θ n b oʊ p ɹ ə ʃ æ ɡ i s ɪ t s ð ɛ ɹ ə k u ɪ ŋ d ʌ v'

Training procedure#

Training hyperparameters#

The following hyperparameters were used during training:

  • learning_rate: 0.0001
  • train_batch_size: 16
  • eval_batch_size: 8
  • seed: 42
  • gradient_accumulation_steps: 2
  • total_train_batch_size: 32
  • optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
  • lr_scheduler_type: linear
  • lr_scheduler_warmup_steps: 1000
  • num_epochs: 30.0
  • mixed_precision_training: Native AMP
Training results#
Training LossEpochStepValidation LossWerCer
No log1.03482.28181.01.0
2.66922.06960.20450.05270.0299
0.22253.010440.11620.03190.0189
0.22254.013920.09270.02350.0147
0.08685.017400.07970.02180.0143
0.05986.020880.07150.01970.0128
0.05987.024360.06520.01600.0103
0.04478.027840.05710.01520.0095
0.03689.031320.06080.01630.0112
0.036810.034800.05860.01370.0083
0.030311.038280.06410.01410.0085
0.027312.041760.06560.01310.0079
0.023213.045240.06900.01330.0082
0.023214.048720.05980.01280.0079
0.018915.052200.06710.01210.0074
0.01716.055680.06540.01140.0069
0.01717.059160.07510.01180.0073
0.014618.062640.06530.01120.0068
0.012719.066120.06820.01120.0069
0.012720.069600.06780.01140.0068
0.011421.073080.06560.01110.0066
0.010122.076560.06690.01090.0066
0.009223.080040.06770.01080.0065
0.009224.083520.06530.01040.0063
0.008825.087000.06730.01020.0063
0.007426.090480.06690.01050.0064
0.007427.093960.07070.01010.0061
0.006628.097440.06730.01000.0060
0.005829.0100920.06890.01000.0059
0.005830.0104400.06830.00990.0058

Disclaimer#

Do consider the biases which came from pre-training datasets that may be carried over into the results of this model.

Authors#

Wav2Vec2 LJSpeech Gruut was trained and evaluated by Wilson Wongso. All computation and development are done on Google Cloud.

Framework versions#

  • Transformers 4.26.0.dev0
  • Pytorch 1.10.0
  • Datasets 2.7.1
  • Tokenizers 0.13.2
  • Gruut 2.3.4

Files

13 files · 813 MBWeights 66.4 MB (smallest of 5 ONNX variants). Sizes and sha256 from the signed manifest.
Hide all 13 files with their sha256
FileSizesha256
.gitattributes1.52 KB11ad7efa24975ee4b0c3c3a38ed18737f0658a5f75a0a96787b576a78a023361
README.md7.91 KBc0f880c75016cde1ea42c975a6431d114a146703a10ae29f2b70978e22e4ecaa
added_tokens.json30 Be6fbfcadb18a959fef9b7736b9f23fa2f5761674824f0db1263aaaf2e15e0959
config.json2.32 KB41764952f9f01da015d08d085be931f693e2d45c744f798fcaefa3443da1ac2f
onnx/model.onnx378 MBb431f3c414eb68595256ec50fb8bf1d47c6d0f7e5207e3cf537320994bbe40ea
onnx/model_bnb4.onnx89.8 MBfabed61bd045cebb0e4ead2acfe154ec0ea46e3c66b2fca61ee4dab0c5e44e93
onnx/model_fp16.onnx189 MBf87ffe6710246dc6e6a541536a013de33d7769b21b736e53a23621ce86a6f5a2
onnx/model_q4.onnx89.8 MBfabed61bd045cebb0e4ead2acfe154ec0ea46e3c66b2fca61ee4dab0c5e44e93
onnx/model_q4f16.onnx66.4 MBbe66cfac5fdbed6505838979e2b23892c49c3ad4aaf3b25b035303f765e39e6b
preprocessor_config.json215 B8cdfd65ff4115423185a1512bdae100e2e0cd744f5b322417429944aaafd0827
special_tokens_map.json519 Bbae495caa58840b778b9bc28db52d5f2107684a8b002ae7cc485cb2499cc8c6d
tokenizer_config.json2.34 KBdcdfae58118faaf94485772e1ba28ab2f8ab51ead9a5517756fc3f2d76422be3
vocab.json509 Bf8fb8fa1768ddf44c3ba04248be4dce226a7d9779bef329a825ba572720eb388
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
263beb019a pinned now2026-11-15 05:17 UTC13 files · 813 MB

Use it

$ fw get onnx-community/wav2vec2-ljspeech-gruut-ONNX
# manifest sha256 a578fe35af7e… · 813 MB · 13 files
$ fw verify ./wav2vec2-ljspeech-gruut-ONNX onnx-community/wav2vec2-ljspeech-gruut-ONNX
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/onnx-community/wav2vec2-ljspeech-gruut-ONNX.json --dir ./wav2vec2-ljspeech-gruut-ONNX $ python3 fw.py verify ./wav2vec2-ljspeech-gruut-ONNX ./onnx-community__wav2vec2-ljspeech-gruut-ONNX.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download onnx-community/wav2vec2-ljspeech-gruut-ONNX --revision 263beb019ab71cb258a97a35b0e10db9a4ddb670 --local-dir ./wav2vec2-ljspeech-gruut-ONNX

License

Name
Apache License 2.0
Id
Apache-2.0
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-15
Text in
README.md
Text sha256
c0f880c75016cde1ea42c975a6431d114a146703a10ae29f2b70978e22e4ecaa
Terms gate
No extra terms beyond the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: onnx-community <huggingface.co/onnx-community>Newsgroups: alt.freeweights.speechSubject: wav2vec2-ljspeech-gruut-ONNXDate: 2026-11-15Commit: 263beb0Signed: 2DC28CC7B26A283B ✓
Upstream
onnx-community/wav2vec2-ljspeech-gruut-ONNX
Pinned commit
263beb019ab71cb258a97a35b0e10db9a4ddb670
Manifest
wav2vec2-ljspeech-gruut-ONNX.json · .minisig
Manifest sha256
a578fe35af7edad53f7f28d03ea7655e9fc7368a3ab8bb539612606ee6ca3270
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 05:17 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/onnx-community/wav2vec2-ljspeech-gruut-ONNX.json $ curl -O https://freeweights.allternit.com/manifests/onnx-community/wav2vec2-ljspeech-gruut-ONNX.json.minisig $ minisign -Vm wav2vec2-ljspeech-gruut-ONNX.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

Parent

bookbot/wav2vec2-ljspeech-gruut · this model is a quantization of it

No model in the catalog names this one as its parent.

Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download onnx-community/wav2vec2-ljspeech-gruut-ONNX
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. wav2vec2-ljspeech-gruut-ONNX.json. Provenance. Takedown history: none.
From: MIT <huggingface.co/MIT>Subject: ast-finetuned-audioset-10-10-0.4593
From: onnx-community <huggingface.co/onnx-community>Subject: ast-finetuned-audioset-10-10-0.4593-ONNX
From: Edge0 <huggingface.co/Edge0>Subject: Audio8-TTS-Preview-0.6b
From: Edge0 <huggingface.co/Edge0>Subject: Audio8-TTS-Realistic-Air
From: facebook <huggingface.co/facebook>Subject: audiobox-aesthetics
From: mlx-community <huggingface.co/mlx-community>Subject: chatterbox-4bit