YAML Metadata Warning:The pipeline tag "text2text-generation" is not in the official list: text-classification, token-classification, table-question-answering, question-answering, zero-shot-classification, translation, summarization, feature-extraction, text-generation, fill-mask, sentence-similarity, text-to-speech, text-to-audio, automatic-speech-recognition, audio-to-audio, audio-classification, audio-text-to-text, voice-activity-detection, depth-estimation, image-classification, object-detection, image-segmentation, text-to-image, image-to-text, image-to-image, image-to-video, unconditional-image-generation, video-classification, reinforcement-learning, robotics, tabular-classification, tabular-regression, tabular-to-text, table-to-text, multiple-choice, text-ranking, text-retrieval, time-series-forecasting, text-to-video, image-text-to-text, image-text-to-image, image-text-to-video, visual-question-answering, document-question-answering, zero-shot-image-classification, graph-ml, mask-generation, zero-shot-object-detection, text-to-3d, image-to-3d, image-feature-extraction, video-text-to-text, keypoint-detection, visual-document-retrieval, any-to-any, video-to-video, other
Vietnamese Phonetic-Weighted ECLM (Error Correction Language Model)
Mô hình ViT5-Base được huấn luyện tăng cường bằng cơ chế Phonetic-Weighted Loss (Scale x3.5) nhằm nắn chỉnh và chấm điểm các lỗi phát âm/đồng âm đặc thù trong tiếng Việt sau bước nhận dạng giọng nói ASR.
Đặc điểm nổi bật
- Phân rã âm vị học toàn diện (Unicode NFD): Tự động bao phủ các cặp âm đầu (
tr/ch,s/x,d/gi/r,l/n), âm cuối (c/t,n/ng,ch/t), vần (i/y,ươn/ương) và thanh điệu (hỏi/ngã). - Phonetic Syllable Gating: Thiết kế đặc thù cho bài toán Rescoring / Post-processing ASR, đảm bảo không gây suy giảm cấu trúc câu đúng (Zero Over-correction).
Cách sử dụng (Inference)
import torch
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
model_name = "Toan2408/vit5-vietnamese-phonetic-eclm"
device = "cuda" if torch.cuda.is_available() else "cpu"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSeq2SeqLM.from_pretrained(model_name).to(device)
def correct_text(text: str) -> str:
input_text = "sửa lỗi chính tả: " + text.strip().lower()
inputs = tokenizer(input_text, return_tensors="pt", max_length=64, truncation=True).to(device)
with torch.no_grad():
outputs = model.generate(**inputs, max_new_tokens=64, num_beams=3)
return tokenizer.decode(outputs[0], skip_special_tokens=True)
# Ví dụ
raw_asr_text = "có thể giúp ca quên đi những nỗi u phiền"
print("Đầu ra ECLM:", correct_text(raw_asr_text))
- Downloads last month
- 401