| | --- |
| | language: |
| | - vi |
| | - vi |
| | license: bsd-3-clause |
| | base_model: facebook/mbart-large-50 |
| | tags: |
| | - generated_from_trainer |
| | metrics: |
| | - bleu |
| | model-index: |
| | - name: PhoTextNormalization |
| | results: |
| | - task: |
| | name: Translation |
| | type: translation |
| | metrics: |
| | - name: Bleu |
| | type: bleu |
| | value: 88.8267 |
| | --- |
| | |
| | # PhoTextNormalization: Text normalization model for Vietnamese |
| |
|
| | PhoTextNormalization converts Vietnamese text from written to spoken form. For example, "Một tháng có 30 hoặc 31 ngày, riêng tháng 2 có 28 ngày." will be converted to "một tháng có ba mươi hoặc ba mươi mốt ngày, riêng tháng hai có hai tám ngày." |
| |
|
| | Details of the training can be found in our ACL 2025 paper, ["Zero-Shot Text-to-Speech for Vietnamese"](https://arxiv.org/abs/2506.01322). If you use this model in your work, please cite the paper: |
| |
|
| | ```bibtex |
| | @inproceedings{vu2025zeroshottexttospeechvietnamese, |
| | title={Zero-Shot Text-to-Speech for Vietnamese}, |
| | author={Thi Vu and Linh The Nguyen and Dat Quoc Nguyen}, |
| | year={2025}, |
| | booktitle={Proceedings of ACL}, |
| | } |
| | ``` |
| |
|
| | ## Usage |
| | ```python |
| | import torch |
| | from transformers import AutoModelForSeq2SeqLM, AutoTokenizer |
| | |
| | device = "cuda:0" if torch.cuda.is_available() else "cpu" |
| | |
| | model_name = "thivux/PhoTextNormalization" |
| | tokenizer = AutoTokenizer.from_pretrained(model_name) |
| | model = AutoModelForSeq2SeqLM.from_pretrained(model_name).to(device) |
| | |
| | text = 'Một tháng có 30 hoặc 31 ngày, riêng tháng 2 có 28 ngày.' |
| | inputs = tokenizer(text, return_tensors="pt", padding=True, |
| | truncation=True, max_length=1024).to(device) |
| | |
| | # Generate translations |
| | with torch.no_grad(): |
| | translated_tokens = model.generate( |
| | **inputs, max_length=1024, num_beams=5) |
| | |
| | # Decode |
| | decoded_outputs = [tokenizer.decode(output, skip_special_tokens=True) |
| | for output in translated_tokens] |
| | |
| | # decoded_outputs: ['một tháng có ba mươi hoặc ba mươi mốt ngày, riêng tháng hai có hai tám ngày.'] |
| | print(f'decoded_outputs: {decoded_outputs}') |
| | ``` |
| |
|
| |
|