Shariar00's picture
initial commit
d483661 verified
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))