Spaces:
Runtime error
Runtime error
File size: 2,611 Bytes
b0b1ade c49f2a7 7c7805e 90f8bd5 7d2b240 7c7805e 29ba0f8 7c7805e c482354 7c7805e d14d221 adcf092 7c7805e 2105e0b 963f3fd aac73e4 963f3fd aac73e4 ba51995 aac73e4 963f3fd 7c7805e 39e3e24 7c7805e b0b1ade 7c7805e bbb0ce5 b0b1ade 7d2b240 b0b1ade ef798a3 |
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 |
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
reply=replies[i]
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() |