wonderlore / app.py
GH111's picture
Update app.py
cfde699
raw
history blame
1.39 kB
# Import libraries
import gradio as gr
from transformers import pipeline
from gtts import gTTS
from io import BytesIO
from IPython.display import Audio
# Create a text generation pipeline with GPT-2
story_generator = pipeline("text-generation", model="EleutherAI/gpt-neo-1.3B")
# Set the context for the storyteller
messages = [{"role": "system", "content": "You are a magical storyteller, creating wonderful tales for kids. Make them imaginative and full of joy!"}]
# Define the Storyteller function
def StorytellerGPT(tell_story):
messages.append({"role": "user", "content": tell_story})
# Generate story using Hugging Face's GPT-2
story_reply = story_generator(tell_story, max_length=100, num_return_sequences=1)[0]['generated_text']
messages.append({"role": "assistant", "content": story_reply})
# Convert text to speech
tts = gTTS(text=story_reply, lang='en', slow=False)
audio_io = BytesIO()
tts.save(audio_io)
audio_io.seek(0)
return story_reply, Audio(data=audio_io.read(), autoplay=True)
# Create the Gradio Interface
demo = gr.Interface(
fn=StorytellerGPT,
inputs="text",
outputs=["text", "audio"],
title="πŸ“– Storytelling Magic",
description="A magical storyteller app for kids! Type a sentence, and let the app create an enchanting story for you."
)
# Launch the Gradio Interface
demo.launch()