Spaces:
Runtime error
Runtime error
import gradio as gr | |
from transformers import pipeline | |
# Load text-to-speech model | |
tts_title = "Text to Speech Translation" | |
tts_examples = ["I love learning machine learning", "How do you do?"] | |
tts_demo = gr.Interface.load( | |
"huggingface/facebook/fastspeech2-en-ljspeech", | |
title=tts_title, | |
examples=tts_examples, | |
description="Give me something to say!", | |
) | |
# Load emotion classification model | |
emotion_model_checkpoint = "MuntasirHossain/RoBERTa-base-finetuned-emotion" | |
emotion_model = pipeline("text-classification", model=emotion_model_checkpoint) | |
def classify_emotion_and_speech(text=""): | |
# Emotion classification | |
emotion_label = emotion_model(text)[0]["label"] | |
# Adjust speech synthesis parameters based on emotion_label. | |
# Customize this part based on the emotion_label. | |
# Replace the following line with your desired text-to-speech model and parameters. | |
speech_output = f"Emotion: {emotion_label}, Text: {text}" | |
return {"emotion_label": emotion_label, "audio": speech_output} | |
emotion_title = "Texts Expressing Emotion with Speech" | |
emotion_description = "This AI model classifies texts expressing human emotion and converts them into speech." | |
emotion_examples = [["He is very happy today", "Free Palestine"]] | |
# Define a theme for the Gradio interface | |
theme = { | |
"container": { | |
"background-color": "#007bff", | |
"color": "#fff", | |
"padding": "20px", | |
}, | |
"textbox": { | |
"background-color": "#fff", | |
"border-radius": "5px", | |
"padding": "10px", | |
"margin-bottom": "10px", | |
}, | |
"button": { | |
"background-color": "#007bff", | |
"color": "#fff", | |
"padding": "10px", | |
"border-radius": "5px", | |
"cursor": "pointer", | |
}, | |
"label": { | |
"color": "#fff", | |
}, | |
} | |
combined_demo = gr.Interface( | |
fn=classify_emotion_and_speech, | |
inputs="textbox", | |
outputs=["text", "audio"], | |
title=emotion_title, | |
theme=theme, | |
description=emotion_description, | |
examples=emotion_examples, | |
) | |
# Combine both demos into a Tabbed Interface | |
combined_demo_tabbed = gr.TabbedInterface([tts_demo, combined_demo], ["Text to Speech", "Texts Expressing Emotion with Speech"]) | |
if __name__ == "__main__": | |
combined_demo_tabbed.launch() | |