voicemenu1433 / app.py
lokesh341's picture
Update app.py
6d91a26 verified
raw
history blame
2.84 kB
import torch
from flask import Flask, render_template, request, jsonify
import json
import os
from transformers import pipeline
from gtts import gTTS
from pydub import AudioSegment
from pydub.silence import detect_nonsilent
from transformers import AutoConfig
import time
from waitress import serve
from simple_salesforce import Salesforce
import requests
app = Flask(__name__)
device = "cuda" if torch.cuda.is_available() else "cpu"
config = AutoConfig.from_pretrained("openai/whisper-small")
config.update({"timeout": 60})
def generate_audio_prompt(text, filename):
try:
tts = gTTS(text)
tts.save(os.path.join("static", filename))
except gtts.tts.gTTSError as e:
print(f"Error: {e}")
time.sleep(5)
generate_audio_prompt(text, filename)
prompts = {
"welcome": "Welcome to Biryani Hub.",
"ask_name": "Tell me your name.",
"ask_email": "Please provide your email address.",
"thank_you": "Thank you for registration."
}
for key, text in prompts.items():
generate_audio_prompt(text, f"{key}.mp3")
try:
print("Attempting to connect to Salesforce...")
sf = Salesforce(username='[email protected]', password='Sati@1020', security_token='sSSjyhInIsUohKpG8sHzty2q')
print("Connected to Salesforce successfully!")
except Exception as e:
print(f"Failed to connect to Salesforce: {str(e)}")
@app.route("/")
def index():
return render_template("index.html")
@app.route("/menu")
def menu():
menu_items = [
{"id": 1, "name": "Chicken Biryani", "price": 250},
{"id": 2, "name": "Mutton Biryani", "price": 350},
{"id": 3, "name": "Veg Biryani", "price": 200},
{"id": 4, "name": "Paneer Butter Masala", "price": 180},
{"id": 5, "name": "Butter Naan", "price": 50}
]
return render_template("menu_page.html", menu_items=menu_items)
@app.route("/cart")
def cart():
return render_template("cart.html")
@app.route("/order")
def order():
return render_template("order.html")
@app.route("/final")
def final():
return render_template("final.html")
@app.route("/submit", methods=["POST"])
def submit():
data = request.json
name = data.get('name')
email = data.get('email')
phone = data.get('phone')
if not name or not email or not phone:
return jsonify({'error': 'Missing data'}), 400
try:
customer_login = sf.Customer_Login__c.create({
'Name': name,
'Email__c': email,
'Phone_Number__c': phone
})
if customer_login.get('id'):
return jsonify({'success': True})
else:
return jsonify({'error': 'Failed to create record'}), 500
except Exception as e:
return jsonify({'error': str(e)}), 500
if __name__ == "__main__":
serve(app, host="0.0.0.0", port=7860)