File size: 2,983 Bytes
d9cce19
 
b59a9cc
 
 
 
 
 
d9cce19
b59a9cc
d9cce19
b59a9cc
d9cce19
 
 
 
b59a9cc
 
 
d9cce19
 
 
 
b59a9cc
 
 
 
 
 
 
 
 
d9cce19
 
b59a9cc
d9cce19
b59a9cc
d9cce19
b59a9cc
 
 
d9cce19
b59a9cc
d9cce19
b59a9cc
 
d9cce19
b59a9cc
 
 
d9cce19
b59a9cc
d9cce19
b59a9cc
 
 
d9cce19
 
b59a9cc
 
 
 
 
 
 
 
 
 
 
d9cce19
b59a9cc
 
 
d9cce19
 
 
 
 
b59a9cc
 
 
 
d9cce19
 
b59a9cc
d9cce19
 
b59a9cc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
---
library_name: transformers
tags:
- asr
license: mit
language:
- ar
pipeline_tag: automatic-speech-recognition
---
# ArTST-v3 (ASR task)

ArTST model finetuned for  automatic speech recognition (speech-to-text) on QASR (best for Dialectal Arabic Variants) 


### Model Description

- **Developed by:** Speech Lab, MBZUAI
- **Model type:** SpeechT5
- **Language:** Arabic


## How to Get Started with the Model

```python
import soundfile as sf
from transformers import (
    SpeechT5Config,
    SpeechT5FeatureExtractor,
    SpeechT5ForSpeechToText,
    SpeechT5Processor,
    SpeechT5Tokenizer,
)


device = "cuda" if torch.cuda.is_available() else "CPU"

model_id="mbzuai/artst_asr_v3_qasr"

tokenizer = SpeechT5Tokenizer.from_pretrained(model_id)
processor = SpeechT5Processor.from_pretrained(model_id , tokenizer=tokenizer)
model = SpeechT5ForSpeechToText.from_pretrained(model_id).to(device)

audio, sr = sf.read("audio.wav")

inputs = processor(audio=audio, sampling_rate=sr, return_tensors="pt")
predicted_ids = model.generate(**inputs.to(device), max_length=150, num_beams=10)

transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True)
print(transcription[0])
```

or using pipeline

```python
import librosa
from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor


model_id="mbzuai/artst_asr_v3"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForSpeechSeq2Seq.from_pretrained(model_id).to(device)
pipe = pipeline(
    "automatic-speech-recognition",
    model=model,
    tokenizer=processor.tokenizer,
    feature_extractor=processor.feature_extractor,
    torch_dtype=torch_dtype,
    device=device,
)

wav, sr = librosa.load("audio.wav", sr=16000)
pipe(wav, generate_kwargs={'num_beams': 10, 'early_stopping': True})['text']
```





### Model Sources [optional]
- **Repository:** [github](https://github.com/mbzuai-nlp/ArTST)
- **Paper :** [ArXiv](https://arxiv.org/pdf/2411.05872)
<!-- - **Demo [optional]:** [More Information Needed] -->


## Citation 

**BibTeX:**
```
@misc{djanibekov2024dialectalcoveragegeneralizationarabic,
      title={Dialectal Coverage And Generalization in Arabic Speech Recognition}, 
      author={Amirbek Djanibekov and Hawau Olamide Toyin and Raghad Alshalan and Abdullah Alitr and Hanan Aldarmaki},
      year={2024},
      eprint={2411.05872},
      archivePrefix={arXiv},
      primaryClass={cs.CL},
      url={https://arxiv.org/abs/2411.05872}, 
}

@inproceedings{toyin-etal-2023-artst,
    title = "{A}r{TST}: {A}rabic Text and Speech Transformer",
    author = "Toyin, Hawau  and
      Djanibekov, Amirbek  and
      Kulkarni, Ajinkya  and
      Aldarmaki, Hanan",
    booktitle = "Proceedings of ArabicNLP 2023",
    month = dec,
    year = "2023",
    address = "Singapore (Hybrid)",
    publisher = "Association for Computational Linguistics",
    url = "https://aclanthology.org/2023.arabicnlp-1.5",
    doi = "10.18653/v1/2023.arabicnlp-1.5",
    pages = "41--51",
}
```