qnguyen3/QUAN-Transcribe-1.0

Model

QUAN-Transcribe-1.0

49

15 commits

2 linked in READMEs

updated Oct 14, 2026

See the code

README

QUAN-Transcribe-1.0

SOTA Fast Vietnamese speech recognition, offline and streaming, built on top of Google's EmbeddingGemma 2.

  • Trained in ~3 hours on 8×H100.
  • ~3,700× faster than real time on a single H100: one forward pass, no autoregressive decoder.
  • Streaming support: the same weights decode with full context or in streaming mode (0.48 s chunks).
  • Inference code: github.com/qnguyen3/QUAN-Transcribe

Quick start

pip install git+https://github.com/qnguyen3/QUAN-Transcribe
quan-transcribe audio.wav
from quan_transcribe import QuanTranscribe

asr = QuanTranscribe.from_pretrained("qnguyen3/QUAN-Transcribe-1.0")
print(asr.transcribe("audio.wav"))
print(asr.transcribe("audio.wav", streaming=True))

The base encoder google/embeddinggemma-2 is downloaded on first use; accept its terms on the model page first. Output is lowercase Vietnamese without punctuation, with numbers written as words.

Model

The EmbeddingGemma 2 audio encoder (USM-style conformer, top 2 of 12 layers fine-tuned) feeds a learned mix of its layer outputs into a 6-layer transformer reader (d=768) trained with CTC. Output units are 14,917 Gemma tokenizer tokens, about one per Vietnamese syllable. The reader was trained with dynamic chunk sizes, so it can run in streaming mode on top of the encoder's own chunked attention.

Training data: ~2,800 h of Vietnamese speech (Bud500, viVoice, VLSP2020, FPT FOSD, InfoRe 1/2, LSVSC, ViMD, Common Voice 17, FLEURS, PhoAudiobook), including utterances with numbers spelled out in words.

Benchmark

Word error rate on Vietnamese test sets. Every model was run on the same utterances, with the same text normalization and scoring, greedy decoding, one H100 per model (bf16/fp16). Speed is audio duration divided by wall-clock time from waveform to text.

ModelParamsAvgSpeed (×RT)bud500cv17fleursgigaspeech2lsvscphoaudiobookvimdVIVOS
QUAN-Transcribe-1.0356M6.87%3,7131.62%10.19%6.75%12.34%5.48%1.35%9.05%8.15%
Gemini-Flash-3.8N/A6.92%N/A1.80%10.30%5.90%10.70%5.70%1.60%10.00%9.36%
MAI-Transcribe-2.0N/A6.96%N/A2.45%10.15%5.80%10.15%6.00%1.40%10.25%9.48%
Cohere Transcribe 03-20262,066M7.01%4303.93%11.09%5.64%10.27%6.98%1.74%10.34%6.07%
Qwen3-ASR-1.7B2,038M7.01%2245.20%11.31%4.88%8.47%6.60%1.85%10.54%7.25%
ElevenLabs Scribe v2N/A7.08%N/A3.15%10.50%5.60%10.50%6.25%1.45%10.05%9.14%
PhoWhisper-large1,543M7.21%1979.51%9.12%5.31%10.14%6.81%0.87%11.38%4.52%
PhoWhisper-medium764M7.74%26110.36%9.39%6.40%10.71%7.01%1.84%11.38%4.87%
PhoWhisper-small242M9.32%42910.35%11.99%8.14%13.16%7.93%2.85%13.91%6.20%
Qwen3-ASR-0.6B782M9.81%2316.53%17.41%7.69%12.09%7.86%3.31%13.48%10.14%
PhoWhisper-base73M13.52%53919.23%17.47%11.13%19.03%9.52%5.34%18.06%8.37%
PhoWhisper-tiny38M14.92%52511.67%19.84%17.46%21.40%10.23%6.37%22.09%10.35%
Whisper large-v21,543M15.63%18032.71%19.35%10.75%19.70%11.07%3.06%17.29%11.09%
Whisper large-v3-turbo809M17.66%41759.56%17.61%7.95%15.76%12.67%2.30%16.14%9.31%
Whisper large-v31,543M18.04%19364.03%18.43%7.09%14.19%13.96%1.85%15.56%9.18%
Whisper small242M28.81%30865.50%31.08%20.59%27.44%20.21%11.21%30.66%23.80%
Whisper medium764M30.12%188125.56%26.06%11.98%23.40%15.13%5.83%19.91%13.07%

License

This model is a derivative of EmbeddingGemma 2 and is subject to the Gemma Terms of Use.

automatic-speech-recognition
embeddinggemma
safetensors
streaming
vietnamese

qnguyen3/QUAN-Transcribe-1.0

Model

QUAN-Transcribe-1.0

49

15 commits

2 linked in READMEs

updated Oct 14, 2026

See the code

README

QUAN-Transcribe-1.0

SOTA Fast Vietnamese speech recognition, offline and streaming, built on top of Google's EmbeddingGemma 2.

  • Trained in ~3 hours on 8×H100.
  • ~3,700× faster than real time on a single H100: one forward pass, no autoregressive decoder.
  • Streaming support: the same weights decode with full context or in streaming mode (0.48 s chunks).
  • Inference code: github.com/qnguyen3/QUAN-Transcribe

Quick start

pip install git+https://github.com/qnguyen3/QUAN-Transcribe
quan-transcribe audio.wav
from quan_transcribe import QuanTranscribe

asr = QuanTranscribe.from_pretrained("qnguyen3/QUAN-Transcribe-1.0")
print(asr.transcribe("audio.wav"))
print(asr.transcribe("audio.wav", streaming=True))

The base encoder google/embeddinggemma-2 is downloaded on first use; accept its terms on the model page first. Output is lowercase Vietnamese without punctuation, with numbers written as words.

Model

The EmbeddingGemma 2 audio encoder (USM-style conformer, top 2 of 12 layers fine-tuned) feeds a learned mix of its layer outputs into a 6-layer transformer reader (d=768) trained with CTC. Output units are 14,917 Gemma tokenizer tokens, about one per Vietnamese syllable. The reader was trained with dynamic chunk sizes, so it can run in streaming mode on top of the encoder's own chunked attention.

Training data: ~2,800 h of Vietnamese speech (Bud500, viVoice, VLSP2020, FPT FOSD, InfoRe 1/2, LSVSC, ViMD, Common Voice 17, FLEURS, PhoAudiobook), including utterances with numbers spelled out in words.

Benchmark

Word error rate on Vietnamese test sets. Every model was run on the same utterances, with the same text normalization and scoring, greedy decoding, one H100 per model (bf16/fp16). Speed is audio duration divided by wall-clock time from waveform to text.

ModelParamsAvgSpeed (×RT)bud500cv17fleursgigaspeech2lsvscphoaudiobookvimdVIVOS
QUAN-Transcribe-1.0356M6.87%3,7131.62%10.19%6.75%12.34%5.48%1.35%9.05%8.15%
Gemini-Flash-3.8N/A6.92%N/A1.80%10.30%5.90%10.70%5.70%1.60%10.00%9.36%
MAI-Transcribe-2.0N/A6.96%N/A2.45%10.15%5.80%10.15%6.00%1.40%10.25%9.48%
Cohere Transcribe 03-20262,066M7.01%4303.93%11.09%5.64%10.27%6.98%1.74%10.34%6.07%
Qwen3-ASR-1.7B2,038M7.01%2245.20%11.31%4.88%8.47%6.60%1.85%10.54%7.25%
ElevenLabs Scribe v2N/A7.08%N/A3.15%10.50%5.60%10.50%6.25%1.45%10.05%9.14%
PhoWhisper-large1,543M7.21%1979.51%9.12%5.31%10.14%6.81%0.87%11.38%4.52%
PhoWhisper-medium764M7.74%26110.36%9.39%6.40%10.71%7.01%1.84%11.38%4.87%
PhoWhisper-small242M9.32%42910.35%11.99%8.14%13.16%7.93%2.85%13.91%6.20%
Qwen3-ASR-0.6B782M9.81%2316.53%17.41%7.69%12.09%7.86%3.31%13.48%10.14%
PhoWhisper-base73M13.52%53919.23%17.47%11.13%19.03%9.52%5.34%18.06%8.37%
PhoWhisper-tiny38M14.92%52511.67%19.84%17.46%21.40%10.23%6.37%22.09%10.35%
Whisper large-v21,543M15.63%18032.71%19.35%10.75%19.70%11.07%3.06%17.29%11.09%
Whisper large-v3-turbo809M17.66%41759.56%17.61%7.95%15.76%12.67%2.30%16.14%9.31%
Whisper large-v31,543M18.04%19364.03%18.43%7.09%14.19%13.96%1.85%15.56%9.18%
Whisper small242M28.81%30865.50%31.08%20.59%27.44%20.21%11.21%30.66%23.80%
Whisper medium764M30.12%188125.56%26.06%11.98%23.40%15.13%5.83%19.91%13.07%

License

This model is a derivative of EmbeddingGemma 2 and is subject to the Gemma Terms of Use.

automatic-speech-recognition
embeddinggemma
safetensors
streaming
vietnamese