gordon20002000 commited on
Commit
3b9917a
·
verified ·
1 Parent(s): 956457e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +29 -20
app.py CHANGED
@@ -1,41 +1,50 @@
 
 
 
 
 
 
 
 
 
1
  import streamlit as st
2
  from transformers import pipeline
3
  from PIL import Image
4
 
5
- # Creates a brief description of a picture using a smart model
6
  def generate_caption(image):
7
- with st.spinner("🔍 Looking at your picture..."):
8
  # Loads the BLIP model to examine and describe the picture
9
- image_to_text = pipeline("image-to-text", model="Salesforce/blip-image-captioning-base")
10
  caption = image_to_text(image)[0]["generated_text"]
11
  return caption
12
 
13
  # Builds a story from the picture’s description
14
  def generate_story(caption):
15
- with st.spinner("✍️ Writing a fun story..."):
16
- # Uses a story model to craft a tale from the description
17
- pipe = pipeline("text-generation", model="pranavpsv/genre-story-generator-v2")
18
  story = pipe(caption)[0]['generated_text']
19
  return story
20
 
21
- # Turns the story into spoken audio
22
  def generate_audio(story):
23
- with st.spinner("🎙️ Turning story into audio..."):
24
- # Uses a speech model to read the story aloud
25
- pipe = pipeline("text-to-speech", model="facebook/mms-tts-eng")
26
  audio = pipe(story)
27
  return audio
28
 
29
- # Streamlit UI: Makes a simple interface for kids to enjoy stories
30
 
31
- # Displays a fun title
32
- st.title("Picture to Story Fun! 🌈")
33
 
34
- # Describes the app for young users
35
- st.write("Hi, kids! Share a picture to get a fun story! Great for ages 3-10.")
36
 
37
  # Allows picture uploads
38
- uploaded_file = st.file_uploader("Pick a picture!", type=["png", "jpg", "jpeg"])
39
 
40
  if uploaded_file is not None:
41
  # Shows the uploaded picture
@@ -44,17 +53,17 @@ if uploaded_file is not None:
44
 
45
  # Gets the picture’s description
46
  image_caption = generate_caption(image)
47
- st.subheader("Picture Description:")
48
  st.write(image_caption)
49
 
50
- # Creates a story
51
  story_telling = generate_story(image_caption)
52
- st.subheader("Your Story:")
53
  st.write(story_telling)
54
 
55
  # Generates audio
56
  audio = generate_audio(story_telling)
57
- if st.button("Hear Story!"):
58
  st.audio(audio['audio'],
59
  format="audio/wav",
60
  start_time=0,
 
1
+ # -*- coding: utf-8 -*-
2
+ """Class.ipynb
3
+
4
+ Automatically generated by Colab.
5
+
6
+ Original file is located at
7
+ https://colab.research.google.com/drive/1uVVBU3JO2eo-Ms0r5J_wAjtGByiGXSR9
8
+ """
9
+
10
  import streamlit as st
11
  from transformers import pipeline
12
  from PIL import Image
13
 
14
+ # Creates a brief description for the pictures
15
  def generate_caption(image):
16
+ with st.spinner("Analysing the Pictures for Key Message..."):
17
  # Loads the BLIP model to examine and describe the picture
18
+ image_to_text = pipeline("image-to-text", model="Salesforce/blip-image-captioning-large")
19
  caption = image_to_text(image)[0]["generated_text"]
20
  return caption
21
 
22
  # Builds a story from the picture’s description
23
  def generate_story(caption):
24
+ with st.spinner("Enhancing the Story for better Details..."):
25
+ # Uses the text generation model to create a story based on the description
26
+ pipe = pipeline("text-generation", model="TheBloke/phi-2-GGUF")
27
  story = pipe(caption)[0]['generated_text']
28
  return story
29
 
30
+ # Turns the story into audio
31
  def generate_audio(story):
32
+ with st.spinner("Turning story into News audio..."):
33
+ # Uses a speech model to turn description into audio
34
+ pipe = pipeline("text-to-speech", model="hexgrad/Kokoro-82M")
35
  audio = pipe(story)
36
  return audio
37
 
38
+ # Streamlit UI: Makes a simple interface to generate the audio
39
 
40
+ # Displays the title
41
+ st.title("Tool for the Reporter - Turning the News Photo into Audio")
42
 
43
+ # Describes the app for users
44
+ st.write("Please upload the News Photo within 200MB")
45
 
46
  # Allows picture uploads
47
+ uploaded_file = st.file_uploader("Upload the Photo below", type=["png", "jpg", "jpeg"])
48
 
49
  if uploaded_file is not None:
50
  # Shows the uploaded picture
 
53
 
54
  # Gets the picture’s description
55
  image_caption = generate_caption(image)
56
+ st.subheader("Phot Description:")
57
  st.write(image_caption)
58
 
59
+ # Generate the News descriptions
60
  story_telling = generate_story(image_caption)
61
+ st.subheader("The News:")
62
  st.write(story_telling)
63
 
64
  # Generates audio
65
  audio = generate_audio(story_telling)
66
+ if st.button("Hear the News"):
67
  st.audio(audio['audio'],
68
  format="audio/wav",
69
  start_time=0,