Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -30,7 +30,14 @@ def generate_audio(text, filename="story.mp3"):
|
|
30 |
# μ€ν 리 ν
μ€νΈλ₯Ό HTML μ€νμΌλ‘ ν¬κ² νμνκ³ μ€μ μ λ ¬νλ ν¨μ
|
31 |
def format_story_text(text):
|
32 |
return f"""
|
33 |
-
<div style='
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
{text}
|
35 |
</div>
|
36 |
"""
|
@@ -62,11 +69,15 @@ def play_story(current_text):
|
|
62 |
init_index, init_text, init_image, init_audio = init_story()
|
63 |
|
64 |
# Gradio μΈν°νμ΄μ€ ꡬμ±
|
65 |
-
with gr.Blocks(title="μ€ν 리 μ±") as demo:
|
66 |
-
gr.Markdown("## π μ€ν 리 μ±", elem_id="title", style="text-align:center;")
|
67 |
gr.Markdown(
|
68 |
-
"<div style='text-align:center;
|
69 |
-
|
|
|
|
|
|
|
|
|
|
|
70 |
unsafe_allow_html=True
|
71 |
)
|
72 |
|
@@ -76,12 +87,17 @@ with gr.Blocks(title="μ€ν 리 μ±") as demo:
|
|
76 |
|
77 |
# UI μ»΄ν¬λνΈ μμ±
|
78 |
story_text = gr.Markdown(value=format_story_text(init_text), label="μ€ν 리")
|
79 |
-
|
80 |
-
|
|
|
|
|
|
|
|
|
|
|
81 |
|
82 |
with gr.Row():
|
83 |
-
next_button = gr.Button("λ€μ")
|
84 |
-
play_button = gr.Button("
|
85 |
|
86 |
# "λ€μ" λ²νΌ ν΄λ¦ μ΄λ²€νΈ μ²λ¦¬
|
87 |
next_button.click(
|
@@ -97,5 +113,33 @@ with gr.Blocks(title="μ€ν 리 μ±") as demo:
|
|
97 |
outputs=[audio_output]
|
98 |
)
|
99 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
100 |
# μ± μ€ν
|
101 |
demo.launch()
|
|
|
30 |
# μ€ν 리 ν
μ€νΈλ₯Ό HTML μ€νμΌλ‘ ν¬κ² νμνκ³ μ€μ μ λ ¬νλ ν¨μ
|
31 |
def format_story_text(text):
|
32 |
return f"""
|
33 |
+
<div style='
|
34 |
+
font-size:4em;
|
35 |
+
font-weight:bold;
|
36 |
+
text-align:center;
|
37 |
+
color:#FF4500;
|
38 |
+
font-family:sans-serif;
|
39 |
+
margin: 20px 0;
|
40 |
+
'>
|
41 |
{text}
|
42 |
</div>
|
43 |
"""
|
|
|
69 |
init_index, init_text, init_image, init_audio = init_story()
|
70 |
|
71 |
# Gradio μΈν°νμ΄μ€ ꡬμ±
|
72 |
+
with gr.Blocks(title="π κ·μ¬μ΄ μ€ν 리 μ±") as demo:
|
|
|
73 |
gr.Markdown(
|
74 |
+
"<div style='text-align:center; font-size:2em; font-weight:bold;'>π μ¬λ―Έμλ μμ΄ μ€ν 리 νμ! π</div>",
|
75 |
+
unsafe_allow_html=True
|
76 |
+
)
|
77 |
+
|
78 |
+
gr.Markdown(
|
79 |
+
"<div style='text-align:center; font-size:1.2em;'>π± κ·μ¬μ΄ μ΄μΌκΈ°μ ν¨κ» μμ΄λ₯Ό λ°°μ보μμ! <br> "
|
80 |
+
"λ²νΌμ λλ¬ λ€μ μ΄μΌκΈ°λ‘ λμ΄κ°κ³ , μμ±μ λ€μΌλ©° λ°λΌ μ½μ΄λ³΄μΈμ! π΅</div>",
|
81 |
unsafe_allow_html=True
|
82 |
)
|
83 |
|
|
|
87 |
|
88 |
# UI μ»΄ν¬λνΈ μμ±
|
89 |
story_text = gr.Markdown(value=format_story_text(init_text), label="μ€ν 리")
|
90 |
+
|
91 |
+
story_image = gr.Image(
|
92 |
+
value=init_image, label="μ΄λ―Έμ§", type="filepath", width=400, height=400,
|
93 |
+
container=True
|
94 |
+
)
|
95 |
+
|
96 |
+
audio_output = gr.Audio(value=init_audio, label="π§ μμ± μ¬μ", type="filepath", autoplay=True)
|
97 |
|
98 |
with gr.Row():
|
99 |
+
next_button = gr.Button("π λ€μ μ΄μΌκΈ°", elem_id="next-btn")
|
100 |
+
play_button = gr.Button("π λ€μ λ£κΈ°", elem_id="play-btn")
|
101 |
|
102 |
# "λ€μ" λ²νΌ ν΄λ¦ μ΄λ²€νΈ μ²λ¦¬
|
103 |
next_button.click(
|
|
|
113 |
outputs=[audio_output]
|
114 |
)
|
115 |
|
116 |
+
# CSS μ€νμΌ μΆκ° (κ·μ¬μ΄ ν
λ§)
|
117 |
+
demo.css = """
|
118 |
+
body {
|
119 |
+
background-color: #FFFAF0; /* λ°λ»ν ν¬λ¦Όμ λ°°κ²½ */
|
120 |
+
}
|
121 |
+
|
122 |
+
#next-btn {
|
123 |
+
background-color: #FFD700; /* λ
Έλμ λ²νΌ */
|
124 |
+
font-size: 1.5em;
|
125 |
+
font-weight: bold;
|
126 |
+
border-radius: 20px;
|
127 |
+
padding: 10px;
|
128 |
+
}
|
129 |
+
|
130 |
+
#play-btn {
|
131 |
+
background-color: #90EE90; /* μ°ν μ΄λ‘μ λ²νΌ */
|
132 |
+
font-size: 1.5em;
|
133 |
+
font-weight: bold;
|
134 |
+
border-radius: 20px;
|
135 |
+
padding: 10px;
|
136 |
+
}
|
137 |
+
|
138 |
+
img {
|
139 |
+
border-radius: 10px; /* λ₯κ·Ό ν
λ리 */
|
140 |
+
border: 5px solid #FFFFFF; /* ν°μ ν
λ리 */
|
141 |
+
}
|
142 |
+
"""
|
143 |
+
|
144 |
# μ± μ€ν
|
145 |
demo.launch()
|