File size: 1,638 Bytes
e9d63b2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
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.")
|