# 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()