Spaces:
Runtime error
Runtime error
File size: 3,244 Bytes
b0b1ade 4f9e8c5 1a63ef2 528afc6 c576782 1a63ef2 4f9e8c5 1a63ef2 4f9e8c5 7c7805e b2f9adc 7c7805e b2f9adc 7c7805e ec27395 b2f9adc adcf092 7c7805e 348afcf c2d790b 4f9e8c5 348afcf 4f9e8c5 348afcf 015f95f c2d790b 348afcf bfc18e8 015f95f 348afcf 4f9e8c5 b0b1ade 7c7805e 7e91e32 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 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 |
from transformers import pipeline
asr_pipe = pipeline("automatic-speech-recognition", model="Abdullah17/whisper-small-urdu")
from difflib import SequenceMatcher
import json
import socket
def get_local_ip():
try:
# Create a socket connection to a remote host (here, google.com)
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
local_ip = s.getsockname()[0]
s.close()
return local_ip
except Exception as e:
print(f"Error getting local IP: {e}")
return None
local_ip = get_local_ip()
if local_ip:
print(f"Local IP Address: {local_ip}")
else:
print("Local IP could not be determined.")
with open("tasks.json", "r",encoding="utf-8") as json_file:
urdu_data = json.load(json_file)
# List of commands
# commands = [
# "نمائندے ایجنٹ نمائندہ",
# " سم ایکٹیویٹ ",
# " سم بلاک بند ",
# "موبائل پیکیجز انٹرنیٹ پیکیج",
# " چالان جمع چلان",
# " گانا "
# ]
# replies = [
# 1,2,
# ]
# Function to find the most similar command
def find_most_similar_command(statement, command_list):
best_match = None
highest_similarity = 0
i=0
for sub_list in command_list:
for command in sub_list:
similarity = SequenceMatcher(None, statement, command).ratio()
print(i,"similarity",similarity)
if similarity > highest_similarity:
highest_similarity = similarity
best_match = command
reply=i
i+=1
return best_match,reply
def send_data_to_db(order_id,col_name):
import requests
# API endpoint URL
url = 'https://pizzahut.softinfix.tech/api/save_order/'+order_id
# Data to send (in dictionary format)
data = {
col_name: col_value,
}
# Send POST request with data
response = requests.post(url, data=data)
# Print response
print(response.status_code)
print(response.text)
def transcribe_the_command(audio,menu_id,order_id,db_col="0"):
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(menu_id)
transcript = asr_pipe(file_name)["text"]
if menu_id == "transcript_only":
reply=transcript
print(reply)
else:
commands=urdu_data[menu_id]
print(commands)
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"),gr.inputs.Textbox(label="id"),gr.inputs.Textbox(label="col_name(optional)")],
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() |