|
import streamlit as st |
|
from transformers import pipeline |
|
from responsivevoice import ResponsiveVoice |
|
import random |
|
|
|
|
|
tts_model = ResponsiveVoice() |
|
|
|
|
|
model_name = "gpt2" |
|
|
|
|
|
generator = pipeline("text-generation", model=model_name) |
|
|
|
|
|
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): |
|
|
|
story = generator(prompt, max_length=1024)[0]["generated_text"] |
|
|
|
|
|
if language != "en": |
|
translated_story = translate_text(story, language) |
|
else: |
|
translated_story = story |
|
|
|
|
|
tts_model.speak(translated_story, language) |
|
|
|
|
|
st.title("AI Storytelling App") |
|
|
|
|
|
prompt = st.text_input("Start your story with...") |
|
|
|
|
|
language = st.selectbox("Choose narration language:", languages) |
|
|
|
|
|
if st.button("Generate and Narrate Story"): |
|
with st.spinner("Generating and narrating your story..."): |
|
generate_and_narrate_story(prompt, language) |
|
|
|
|
|
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.") |
|
|
|
|