|
|
import gradio as gr |
|
|
from transformers import pipeline |
|
|
|
|
|
sentiment_pipeline = pipeline("sentiment-analysis") |
|
|
chatbot_pipeline = pipeline("text-generation") |
|
|
summarization_pipeline = pipeline("summarization", model="t5-small") |
|
|
|
|
|
|
|
|
def analyze_sentiment(text): |
|
|
result = sentiment_pipeline(text)[0] |
|
|
return result["label"], round(result["score"], 2) |
|
|
|
|
|
def generate_response(user_input): |
|
|
response = chatbot_pipeline(user_input, max_length=100, num_return_sequences=1) |
|
|
return response[0]['generated_text'] |
|
|
|
|
|
|
|
|
def summarize_text(long_text): |
|
|
summary = summarization_pipeline(long_text, max_length=50, min_length=25, do_sample=False) |
|
|
return summary[0]["summary_text"] |
|
|
|
|
|
|
|
|
def text_to_speech(text): |
|
|
from gtts import gTTS |
|
|
import os |
|
|
tts = gTTS(text) |
|
|
tts.save("output.mp3") |
|
|
return "output.mp3" |
|
|
|
|
|
|
|
|
with gr.Blocks() as demo: |
|
|
gr.Markdown("# Multi-Task AI App with Alternative Models") |
|
|
with gr.Tabs(): |
|
|
|
|
|
with gr.Tab("Sentiment Analysis"): |
|
|
gr.Markdown("### Sentiment Analysis") |
|
|
sentiment_input = gr.Textbox(label="Enter Text for Sentiment Analysis") |
|
|
sentiment_output_label = gr.Textbox(label="Sentiment") |
|
|
sentiment_output_score = gr.Textbox(label="Confidence Score") |
|
|
gr.Button("Analyze").click(analyze_sentiment, inputs=sentiment_input, outputs=[sentiment_output_label, sentiment_output_score]) |
|
|
|
|
|
|
|
|
with gr.Tab("Chatbot"): |
|
|
gr.Markdown("### Chatbot") |
|
|
chatbot_input = gr.Textbox(label="Enter Your Message") |
|
|
chatbot_output = gr.Textbox(label="Chatbot Response", lines=5) |
|
|
gr.Button("Send").click(chatbot_response, inputs=chatbot_input, outputs=chatbot_output) |
|
|
|
|
|
|
|
|
with gr.Tab("Summarization"): |
|
|
gr.Markdown("### Summarization") |
|
|
summarization_input = gr.Textbox(label="Enter Long Text for Summarization", lines=5) |
|
|
summarization_output = gr.Textbox(label="Summary", lines=5) |
|
|
gr.Button("Summarize").click(summarize_text, inputs=summarization_input, outputs=summarization_output) |
|
|
|
|
|
|
|
|
with gr.Tab("Speech-to-Text"): |
|
|
gr.Markdown("### Text-to-Speech") |
|
|
tts_input = gr.Textbox(label="Enter Text for Text-to-Speech") |
|
|
tts_output = gr.Audio(label="Generated Speech") |
|
|
gr.Button("Convert to Speech").click(text_to_speech, inputs=tts_input, outputs=tts_output) |
|
|
|
|
|
|
|
|
demo.launch() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|