Spaces:
Build error
Build error
import json | |
from whisper_stt import transcribe_audio_raw | |
from intent_recognition import get_intent_and_amount | |
from generate_response import generate_voice_response | |
from test_NLU import get_slots | |
DATABASE_PATH = "database.json" | |
def load_database(): | |
with open(DATABASE_PATH, "r") as db_file: | |
return json.load(db_file) | |
def save_to_database(data): | |
with open(DATABASE_PATH, "w") as db_file: | |
json.dump(data, db_file, indent=4) | |
def handle_request(audio_file): | |
text = transcribe_audio_raw(audio_file) | |
intent_data = get_intent_and_amount(text) | |
intent=intent_data.get('intent') | |
intent=intent.replace("_", " ").title() | |
amount_data=intent_data.get('amount_data') | |
amount=amount_data.get('amount') | |
currency=amount_data.get('currency') | |
slots=get_slots(text) | |
slots['amount']=amount+' '+currency | |
if intent is not None: | |
response=f"You have requested for the task: Intent: {intent}, Project: {slots.get('project_name')}. Project ID: {slots.get('project_id')}. Amount: {slots.get('amount')}. Task ID: {slots.get('task_id')} and Status: {slots.get('status')}. Please Confirm by typing your response: Yes or No: " | |
generate_voice_response(response) | |
user_input=input("Please type your response: Yes or No: ") | |
if user_input.lower()=="yes": | |
# Prepare the data to save | |
request_data = { | |
"project": slots.get("project_name"), | |
"project_id": slots.get("project_id"), | |
"amount": amount, | |
"Intent": intent, | |
"task_id": slots.get("task_id"), | |
"status": slots.get("status"), | |
} | |
database = load_database() | |
database["requests"].append(request_data) | |
save_to_database(database) | |
generate_voice_response("Thank you for your response, Your request has been confirmed successfully.") | |
elif user_input.lower()=="no": | |
generate_voice_response("Thank you for your response, You have denied the confirmation request.") | |
else: | |
generate_voice_response("You have typed an invalid response.") | |
else: | |
response = "Sorry, I did not understand your request." | |
generate_voice_response(response) | |
return response | |
if __name__ == "__main__": | |
user_audio = "input_audio.wav" | |
# audio_file = open(user_audio, "rb") | |
print(handle_request(user_audio)) | |