Spaces:
Runtime error
Runtime error
File size: 2,192 Bytes
da810cf 73e2ee2 da810cf 73e2ee2 da810cf 73e2ee2 da810cf 73e2ee2 da810cf 73e2ee2 da810cf 73e2ee2 da810cf 73e2ee2 da810cf 73e2ee2 da810cf 73e2ee2 da810cf 73e2ee2 da810cf 73e2ee2 da810cf 73e2ee2 da810cf 73e2ee2 da810cf 73e2ee2 da810cf |
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 55 56 57 58 59 60 61 |
import streamlit as st
from transformers import pipeline
from PIL import Image
# Creates a brief description of a picture using a smart model
def generate_caption(image):
with st.spinner("🔍 Looking at your picture..."):
# Loads the BLIP model to examine and describe the picture
image_to_text = pipeline("image-to-text", model="Salesforce/blip-image-captioning-base")
caption = image_to_text(image)[0]["generated_text"]
return caption
# Builds a story from the picture’s description
def generate_story(caption):
with st.spinner("✍️ Writing a fun story..."):
# Uses a story model to craft a tale from the description
pipe = pipeline("text-generation", model="pranavpsv/genre-story-generator-v2")
story = pipe(caption)[0]['generated_text']
return story
# Turns the story into spoken audio
def generate_audio(story):
with st.spinner("🎙️ Turning story into audio..."):
# Uses a speech model to read the story aloud
pipe = pipeline("text-to-speech", model="facebook/mms-tts-eng")
audio = pipe(story)
return audio
# Streamlit UI: Makes a simple interface for kids to enjoy stories
# Displays a fun title
st.title("Picture to Story Fun! 🌈")
# Describes the app for young users
st.write("Hi, kids! Share a picture to get a fun story! Great for ages 3-10.")
# Allows picture uploads
uploaded_file = st.file_uploader("Pick a picture!", type=["png", "jpg", "jpeg"])
if uploaded_file is not None:
# Shows the uploaded picture
image = Image.open(uploaded_file)
st.image(image, caption="Your Picture!", use_container_width=True)
# Gets the picture’s description
image_caption = generate_caption(image)
st.subheader("Picture Description:")
st.write(image_caption)
# Creates a story
story_telling = generate_story(image_caption)
st.subheader("Your Story:")
st.write(story_telling)
# Generates audio
audio = generate_audio(story_telling)
if st.button("Hear Story!"):
st.audio(audio['audio'],
format="audio/wav",
start_time=0,
sample_rate=audio['sampling_rate']) |