wn / app.py
GH111's picture
create app.py
e9d63b2
raw
history blame
1.64 kB
import streamlit as st
from transformers import pipeline
from responsivevoice import ResponsiveVoice
import random
# Pre-trained text-to-speech model
tts_model = ResponsiveVoice()
# Choose a pre-trained language model for story generation
model_name = "gpt2"
# Initialize pipeline for text generation
generator = pipeline("text-generation", model=model_name)
# Define supported languages
languages = ["en", "fr", "es", "de", "it"]
def translate_text(text, target_language):
translator = Translator()
translated_text = translator.translate(text, dest=target_language).text
return translated_text
def generate_and_narrate_story(prompt, language):
# Generate story based on prompt
story = generator(prompt, max_length=1024)[0]["generated_text"]
# Translate story to chosen language
if language != "en":
translated_story = translate_text(story, language)
else:
translated_story = story
# Speak the story using the text-to-speech model
tts_model.speak(translated_story, language)
# Streamlit app initialization
st.title("AI Storytelling App")
# Prompt input
prompt = st.text_input("Start your story with...")
# Language selector
language = st.selectbox("Choose narration language:", languages)
# Generate story button
if st.button("Generate and Narrate Story"):
with st.spinner("Generating and narrating your story..."):
generate_and_narrate_story(prompt, language)
# Disclaimer
st.write("* This app is still under development and may not always generate accurate or coherent results.")
st.write("* Please be mindful of the content generated by the AI model.")