Spaces:
Paused
Paused
| 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() | |