Spaces:
Runtime error
Runtime error
from transformers import pipeline | |
asr_pipe = pipeline("automatic-speech-recognition", model="Abdullah17/whisper-small-urdu") | |
from difflib import SequenceMatcher | |
# List of commands | |
commands = [ | |
"میری سم بلاک کر دی گئی ہے۔", | |
"کیا آپ میری سم کی حالت کو چیک کر سکتے ہیں؟", | |
"میں اپنی سم بلاک ایکٹیویٹ کروانا چاہتا ہوں۔", | |
"میری سم کا شمارہ بند ہوگیا ہے، کیا آپ یہ جان سکتے ہیں؟", | |
"کیا میری سم بلاک ہو گئی ہے؟", | |
"میری سم کی حالت کو تصدیق کر دیں، کیا وہ بند ہوئی ہے؟", | |
"کیا آپ میری سم بلاک کی انکوائری کرسکتے ہیں؟", | |
"میری سم بلاک ہونے کا سبب کیا ہوسکتا ہے؟", | |
"میں اپنی سم کی حالت کو جاننا چاہتا ہوں، کیا آپ مدد کر سکتے ہیں؟", | |
"میری سم بلاک ہونے کا طریقہ کیا ہے؟", | |
"کیا میری سم بلاک ہونے کا کوئی اطلاعی پیغام تھا؟", | |
"میری سم کا شمارہ غلط ہوگیا ہے، کیا اس کو درست کیا جا سکتا ہے؟", | |
"کیا میری سم بلاک ہونے کے بعد کیا کرنا چاہئے؟", | |
"میری سم بلاک ہونے کے بعد کتنی دیر تک وہ اکٹو ہوگی؟", | |
"میں اپنی سم بلاک کی معلومات کے بارے میں پوچھنا چاہتا ہوں۔", | |
"کیا آپ مجھے اپنے پیکیج کی معلومات بتا سکتے ہیں؟", | |
"میں اپنے موبائل پر مختلف پیکیجز کی تفصیلات جاننا چاہتا ہوں۔", | |
"کونسا پیکیج میرے لئے بہتر ہوگا، آپ کی کیا رائے ہے؟", | |
"کیا آپ مجھے ایک افضل انٹرنیٹ پیکیج کی سفارش دینے میں مدد کر سکتے ہیں؟", | |
"میں اپنے بجٹ کے مطابق ایک سستا پیکیج چاہتا ہوں، کیا آپ کوئی تجاویز دے سکتے ہیں؟", | |
"کیا آپ میرے لئے ایک پیکیج کی قیمت اور مزید تفصیلات بتا سکتے ہیں؟", | |
"مجھے اپنے پیکیج کی تفصیلات اور شامل خدمات کی معلومات حاصل کرنی ہے۔", | |
"کیا آپ کوئی خصوصی پیکیج ہیڈ فون کرنے کی معلومات دے سکتے ہیں؟", | |
"میں اپنے پیکیج کی انفارمیشن کیسے چیک کر سکتا ہوں؟", | |
"کیا آپ مجھے اپنے پیکیج کے مختلف مناسبات بتا سکتے ہیں؟", | |
"میں اپنے پیکیج کی تاریخ اختتام جاننا چاہتا ہوں، کیا آپ میری مدد کر سکتے ہیں؟", | |
"کیا میرے پاس ابھی تک کوئی پیکیج اسٹیٹمنٹ موصول نہیں ہوئی؟", | |
"میں اپنے پیکیج کی معلومات کو اپنے موبائل پر کیسے چیک کر سکتا ہوں؟", | |
"کیا آپ کوئی پیکیج اپ گریڈ کرنے کی سفارش دینے کی مدد کر سکتے ہیں؟", | |
"میں اپنے پیکیج کی معلومات کو اپنی ای میل پر کیسے حاصل کر سکتا ہوں؟", | |
"کیا آپ مجھے چالان جمع کروانے کا طریقہ بتا سکتے ہیں؟", | |
"میں اپنے چالان جمع کرنا چاہتا ہوں، کیا آپ میری مدد کر سکتے ہیں؟", | |
"میرا کسی چیز کا چالان کیا گیا ہے، کیا میں اس کی تصدیق کروا سکتا ہوں؟", | |
"کیا آپ میری چالان جمع کرنے کی مدد کر سکتے ہیں؟", | |
"میں اپنے چالان کی رقم جمع کروانا چاہتا ہوں، کیا آپ میری رہنمائی کر سکتے ہیں؟", | |
"کیا آپ میری چالان جمع کرنے کی مدد کریں گے؟", | |
"میں اپنے چالان کی معلومات کو تصدیق کرنا چاہتا ہوں، کیا آپ میری مدد کر سکتے ہیں؟", | |
"کیا میرا چالان درستی سے جمع کیا گیا ہے؟", | |
"میں اپنا چالان جمع کروانے کی مدد چاہتا ہوں، کیا آپ میری رہنمائی کر سکتے ہیں؟", | |
"کیا آپ میرا چالان کی تصدیق کریں گے؟", | |
"میں اپنے چالان کو تصدیق کرنا چاہتا ہوں، کیا آپ مدد کر سکتے ہیں؟", | |
"کیا میرا چالان جمع کروانے کے لئے کوئی خاص اقدامات ہیں؟", | |
"میں اپنے چالان کی رقم جمع کرنا چاہتا ہوں، کیا آپ میری رہنمائی کر سکتے ہیں؟", | |
"کیا میرا چالان جمع کروانے کا طریقہ بتا سکتے ہیں؟", | |
"میں اپنے چالان کی تصدیق کرنا چاہتا ہوں، کیا آپ میری مدد کر سکتے ہیں؟", | |
] | |
replies = [ | |
"کیا آپ پیکیجز کی معلومات حاصل کرنا چاہتے ہیں؟","کیا آپ سم انکوائری کرنا چاہتے ہیں؟" ,"کیا آپ نمائندے سے بات کرنا چاہتے ہیں؟", | |
"کیا آپ چالان جمع کروانا چاہتے ہیں؟" | |
] | |
# Function to find the most similar command | |
def find_most_similar_command(statement, command_list): | |
best_match = None | |
highest_similarity = 0 | |
i=0 | |
for command in command_list: | |
similarity = SequenceMatcher(None, statement, command).ratio() | |
print(similarity) | |
if similarity > highest_similarity: | |
highest_similarity = similarity | |
best_match = command | |
if i<16: | |
reply=replies[1] | |
elif i>15 and i<31: | |
reply=replies[2] | |
elif i>30 and i<46: | |
reply=replies[3] | |
elif i>45: | |
reply=replies[4] | |
else: | |
reply=replies[0] | |
i+=1 | |
return best_match,reply | |
def transcribe_the_command(audio): | |
import soundfile as sf | |
sample_rate, audio_data = audio | |
file_name = "recorded_audio.wav" | |
sf.write(file_name, audio_data, sample_rate) | |
# Convert stereo to mono by averaging the two channels | |
print(file_name) | |
transcript = asr_pipe(file_name)["text"] | |
most_similar_command,reply = find_most_similar_command(transcript, commands) | |
print(f"Given Statement: {transcript}") | |
print(f"Most Similar Command: {most_similar_command}\n") | |
print(reply) | |
return reply | |
# get_text_from_voice("urdu.wav") | |
import gradio as gr | |
iface = gr.Interface( | |
fn=transcribe_the_command, | |
inputs=gr.inputs.Audio(label="Recorded Audio",source="microphone"), | |
outputs="text", | |
title="Whisper Small Urdu Command", | |
description="Realtime demo for Urdu speech recognition using a fine-tuned Whisper small model and outputting the estimated command on the basis of speech transcript.", | |
) | |
iface.launch() |