YAML Metadata
Warning:
empty or missing yaml metadata in repo card
(https://huggingface.co/docs/hub/model-cards#model-card-metadata)
Quran syllables recognition with tashkeel.
This is fine tuned wav2vec2 model to recognize quran syllables from speech.
The model was trained on private dataset along with part of Tarteel dataset after cleanning and converting into syllables .
5-gram language model is available with the model.
The model transcripe audio speech into syllables .
For instance, when presented with the audio and transcription "ู
ููู ุงููุฌููููุฉู ููุงููููุงุณู" the expected model output would be
"ู
ู ูููู ุฌููู ูู ุชู ูููู ููุงูุณู" .
To try it out :
!pip install datasets transformers
!pip install https://github.com/kpu/kenlm/archive/master.zip pyctcdecode
from transformers import Wav2Vec2Processor, Wav2Vec2ForCTC
from transformers import Wav2Vec2ProcessorWithLM
processor = Wav2Vec2ProcessorWithLM.from_pretrained('IbrahimSalah/Wav2vecXXl_quran_syllables')
model = Wav2Vec2ForCTC.from_pretrained("IbrahimSalah/Wav2vecXXl_quran_syllables")
import pandas as pd
dftest = pd.DataFrame(columns=['audio'])
import datasets
from datasets import Dataset
path ='/content/908-33.wav'
dftest['audio']=[path] ## audio path
dataset = Dataset.from_pandas(dftest)
import torch
import torchaudio
def speech_file_to_array_fn(batch):
speech_array, sampling_rate = torchaudio.load(batch["audio"])
print(sampling_rate)
resampler = torchaudio.transforms.Resample(sampling_rate, 16_000) # The original data was with 48,000 sampling rate. You can change it according to your input.
batch["audio"] = resampler(speech_array).squeeze().numpy()
return batch
import numpy as np
from datasets import load_dataset
from transformers import Wav2Vec2ForCTC, Wav2Vec2Processor
test_dataset = dataset.map(speech_file_to_array_fn)
inputs = processor(test_dataset["audio"], sampling_rate=16_000, return_tensors="pt", padding=True)
with torch.no_grad():
logits = model(inputs.input_values).logits
print(logits.numpy().shape)
transcription = processor.batch_decode(logits.numpy()).text
print("Prediction:",transcription[0])
sample audio 1-
2-
Output
1- ุกููู ููุงู ุกู ูู ููู
ู ูู ูููู ูููู ู
ูุนู ุฌู ุฒููู ูู ูููู ุกูุฑู ุถู ูู ู
ูุงู ููุงู ูู ูู ฺพูู
ู ู
ููู ุกููู ูู ููุงู
2- ุกูุฐู ููุงู ูู ูููู ุณู ูู ูู ุกููู ุจููู ฺพู ููุงู ุกู ุจู ุชู ุกููู ูููู ุฑู ุกููู ุชู ุกู ุญู ุฏู ุนู ุดู ุฑู ูููู ูู ุจููู ููุดู ุดูู
ู ุณู ูููู ูู ู
ู ุถู ุฑู ุกููู ุชู ฺพูู
ู ูููู ุณูุงู ุฌู ุฏููููู
- Downloads last month
- 745
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social
visibility and check back later, or deploy to Inference Endpoints (dedicated)
instead.