JAIRVISMKVI / app.py
Jhakx's picture
Update app.py
25e2961 verified
import gradio as gr
from transformers import pipeline
from models.jairvis import JAIRVISMKV
from utils.audio_utils import text_to_speech, speech_to_text
from utils.memory_manager import MemoryManager
from config import MODEL_NAME, API_KEY
class JairvisApp:
def __init__(self):
self.jairvis = JAIRVISMKV()
self.memory_manager = MemoryManager()
self.nlp_pipeline = pipeline("text-generation", model=MODEL_NAME)
def process_input(self, input_text):
# Process input and generate response
response = self.jairvis.generate_response(input_text)
# Update memory
self.memory_manager.store(input_text, response)
# Convert response to speech
audio_output = text_to_speech(response)
return response, audio_output
def voice_input(self, audio):
# Convert speech to text
input_text = speech_to_text(audio)
# Process the text input
response, audio_output = self.process_input(input_text)
return input_text, response, audio_output
# Set up the Gradio interface
def launch():
app = JairvisApp()
text_interface = gr.Interface(
fn=app.process_input,
inputs="text",
outputs=["text", "audio"],
title="JAIRVISMKV Text Interface"
)
voice_interface = gr.Interface(
fn=app.voice_input,
inputs="audio",
outputs=["text", "text", "audio"],
title="JAIRVISMKV Voice Interface"
)
combined_interface = gr.TabbedInterface([text_interface, voice_interface], ["Text", "Voice"])
combined_interface.launch(share=True)
if __name__ == "__main__":
launch()