Ir para o conteúdo
ModelListadosExterno
Baixar

Wav2vec2 Vi Pronunciation Onnx

Mô hình phân loại phát âm tiếng Việt (Miền Nam) — phân biệt phát âm đúng và phát âm sai cho các phụ âm D/R/GI.

TipoOtherModelo basenguyenvulebinh/wav2vec2-large-vi-vlsp2020VersãoRevision 9bd8c7aCnota

Fonte do modelo

Tipo
Other
Tamanho do arquivo
2,37 MB
Modelo base
nguyenvulebinh/wav2vec2-large-vi-vlsp2020
Versão
vRevision 9bd8c7a
Atualizado
22 de set. de 2026
Downloads
5
Fonte
Hugging Face

Descrição da fonte

🎤 Vietnamese Pronunciation Classifier (ONNX)

Mô hình phân loại phát âm tiếng Việt (Miền Nam) — phân biệt phát âm đúng và phát âm sai cho các phụ âm D/R/GI.

Model Details

AttributeValue
Base Modelwav2vec2-large-vi-vlsp2020
FormatONNX (cross-platform)
TaskBinary Classification (correct / wrong)
LanguageVietnamese (Southern dialect)
Sample Rate16 kHz
Audio Duration500ms per sample
Validation Accuracy80.3%
ONNX Opset14

Classes

LabelClass IDDescription
✅ correct0Phát âm đúng
❌ wrong1Phát âm sai (nhầm D/R/GI)

Quick Start — ONNX Runtime

pip install onnxruntime librosa numpy
import numpy as np
import librosa
import onnxruntime as ort
from huggingface_hub import hf_hub_download

# 1. Download model
repo_id = "Bao2311/wav2vec2-vi-pronunciation-onnx"
onnx_path = hf_hub_download(repo_id, "phoneme_classifier.onnx")
data_path = hf_hub_download(repo_id, "phoneme_classifier.onnx.data")

# 2. Load ONNX session
session = ort.InferenceSession(onnx_path, providers=["CPUExecutionProvider"])

# 3. Load & preprocess audio (16kHz, 500ms)
audio, _ = librosa.load("your_audio.wav", sr=16000, mono=True)
audio = audio[:8000]  # crop to 500ms = 8000 samples
if len(audio) < 8000:
    audio = np.pad(audio, (0, 8000 - len(audio)))

# 4. Normalize
audio = audio.astype(np.float32)
mean, std = audio.mean(), audio.std()
if std > 0:
    audio = (audio - mean) / std

# 5. Inference
input_values = audio.reshape(1, -1)
logits = session.run(None, {"input_values": input_values})[0][0]

# 6. Softmax → prediction
exp_logits = np.exp(logits - np.max(logits))
probs = exp_logits / exp_logits.sum()
pred = int(np.argmax(probs))

labels = {0: "correct ✅", 1: "wrong ❌"}
print(f"Prediction: {labels[pred]} (confidence: {probs[pred]:.1%})")

Files

FileSizeDescription
phoneme_classifier.onnx~2.5 MBONNX model graph
phoneme_classifier.onnx.data~1.2 GBModel weights (external data)
config.json<1 KBModel configuration
preprocessor_config.json<1 KBFeature extractor config

Training Details

  • Base model: nguyenvulebinh/wav2vec2-large-vi-vlsp2020
  • Epochs: 10
  • Batch Size: 4
  • Learning Rate: 1e-4
  • Optimizer: AdamW
  • Loss: CrossEntropyLoss
  • Frozen layers: Wav2Vec2 feature extractor + first 8 encoder layers

Limitations

  • Chỉ hỗ trợ tiếng Việt (giọng Miền Nam)
  • Tối ưu cho audio 500ms, 16kHz mono
  • Binary classification (đúng/sai), chưa phân loại chi tiết loại lỗi

License

Apache 2.0

Fontes

1 fonte
Hugging FacePrimárioVersão 9bd8c7a0cd026339abd552c46c99e78aaf468723
huggingface.co/Bao2311/wav2vec2-vi-pronunciation-onnx/tree/9bd8c7a0cd026339abd552c46c99e78aaf468723

Verificado 6 de set.

Artefatos de modelo

1 artefato

phoneme_classifier.onnx

onnx · 2,37 MB · SHA-256 dc1cace5eb1a…1d2d · Hugging Face

Download file

Trechos de fonte

2 trechos

--- language: - vi license: apache-2.0 tags: - onnx - wav2vec2 - audio-classification - pronunciation - vietnamese - speech pipeline_tag: audio-classification library_name: onnxruntime base_model: nguyenvulebinh/wav2vec2-large-vi-vlsp2020 model-index: - name: wav2vec2-vi-pronunciation-onnx results: - task: type: audio-classification name: Audio Classification metrics: - type: accuracy value: 80.3 name: Validation Accuracy --- # 🎤 Vietnamese Pronunciation Classifier (ONNX) Mô hình phân loại phát âm tiếng Việt (Miền Nam) — phân biệt **phát âm đúng** và **phát âm sai** cho các phụ âm D/R/GI. ## Model Details | Attribute | Value | |-----------|-------| | **Base Model** | [wav2vec2-large-vi-vlsp2020](https://huggingface.co/nguyenvulebinh/wav2vec2-large-vi-vlsp2020) | | **Format** | ONNX (cross-platform) | | **Task** | Binary Classification (correct / wrong) | | **Language** | Vietnamese (Southern dialect) | | **Sample Rate** | 16 kHz | | **Audio Duration** | 500ms per sample | | **Validation Accuracy** | 80.3% | | **ONNX Opset** | 14 | ## Classes | Label | Class ID | Description | |-------|----------|-------------| | ✅ `correct` | 0 | Phát âm đúng | | ❌ `wrong` | 1 | Phát âm sai (nhầm D/R/GI) | ## Quick Start — ONNX Runtime ```bash pip install onnxruntime librosa numpy ``` ```python import numpy as np import librosa import onnxruntime as ort from huggingface_hub import hf_hub_download # 1. Download model repo_id = "Bao2311/wav2vec2-vi-pronunciation-onnx" onnx_path = hf_hub_download(repo_id, "phoneme_classifier.onnx") data_path = hf_hub_download(repo_id, "phoneme_classifier.onnx.data") # 2. Load ONNX session session = ort.InferenceSession(onnx_path, providers=["CPUExecutionProvider"]) # 3. Load & preprocess audio (16kHz, 500ms) audio, _ = librosa.load("your_audio.wav", sr=16000, mono=True) audio = audio[:8000] # crop to 500ms = 8000 samples if len(audio) < 8000: audio = np.pad(audio, (0, 8000 - len(audio))) # 4. Normalize audio = audio.astype(np.float32) mean, std = audio.mean(), audio.std() if std > 0: audio = (audio - mean) / std # 5. Inference input_values = audio.reshape(1, -1) logits = session.run(None, {"input_values": input_values})[0][0] # 6. Softmax → prediction exp_logits = np.exp(logits - np.max(logits)) probs = exp_logits / exp_logits.sum() pred = int(np.arg...

Source context: 5 downloads · 0 likes · Pipeline audio-classification · Library onnxruntime · Repo Bao2311/wav2vec2-vi-pronunciation-onnx