File size: 1,983 Bytes
33bc2a9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import speech_recognition as sr
from pydub import AudioSegment
import soundfile
import pyrebase
from pydub import AudioSegment
import soundfile
import os
import pyrebase
import gradio as gr
from transformers import AutoProcessor
from transformers import  Wav2Vec2ForCTC
import gradio as gr
import torch
import torchaudio

processor = AutoProcessor.from_pretrained("omarelsayeed/wav2vec2_ar_anz2")
model = Wav2Vec2ForCTC.from_pretrained("omarelsayeed/wav2vec2_ar_anz2")
processor.save_pretrained("my_model")
model.save_pretrained("my_model")

def recite_wav(path_name):
  # fix pcm_16 error
    # data, samplerate = soundfile.read(path_name)
    # soundfile.write('_.wav', data , samplerate , subtype='PCM_16')
    audio , sr = torchaudio.load("xd.wav")
    # resampler = torchaudio.transforms.Resample(sr , 16000)
    # audio = resampler(audio)[None]
    inputs = processor(audio, return_tensors="pt", padding="longest" , sampling_rate = 16_000)
    with torch.no_grad():
        logits = model(inputs.input_values.squeeze(0))[0]
    transcription = processor.batch_decode(logits.numpy()).text
    return transcription[0]
  
      
def list_all_files():
   for _file in storage.child("wavfiles").list_files():
     print(_file.name)

def download_wav_file(wav_name):
   storage.child("wavfiles").child(wav_name).download("xd.wav")
   
def get_quran_text(wav_file_path):
    download_wav_file(wav_file_path)
    recitation = recite_wav("xd.wav")
    os.remove("xd.wav")
    return recitation   

firebaseConfig = {
  "apiKey": "AIzaSyDjgBD762KveE8GBO7jqTTkj_mKhUTDwGM",
  "authDomain": "quran-c5cbe.firebaseapp.com",
  "databaseURL":"quran-c5cbe.firebaseio.com/",
  "projectId": "quran-c5cbe",
  "storageBucket": "quran-c5cbe.appspot.com",
  "serviceAccount":"quran-c5cbe-firebase-adminsdk-jvpbe-cebaf5aaa6.json"
}

firebase = pyrebase.initialize_app(firebaseConfig)

storage = firebase.storage()

iface = gr.Interface(fn=get_quran_text, inputs="text", outputs="text")

iface.launch()