Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -8,10 +8,10 @@ import scipy.io.wavfile as wavfile
|
|
| 8 |
|
| 9 |
|
| 10 |
|
| 11 |
-
try:
|
| 12 |
-
|
| 13 |
-
except:
|
| 14 |
-
|
| 15 |
|
| 16 |
css = """
|
| 17 |
.gradio-container input::placeholder,
|
|
@@ -83,15 +83,24 @@ body::before {
|
|
| 83 |
"""
|
| 84 |
|
| 85 |
VOICE_EXAMPLES = {
|
| 86 |
-
"甘えた女の子 / ゆっくり": "かわいくて高い声の女の子が、甘えながらゆっくりのんびりしゃべってる感じの音声がほしい。",
|
| 87 |
-
"激怒する女性 / 感情爆発": "低くて激しい声の女性が、感情を抑えきれずに怒りを爆発させながら、早口でまくしたてるような声で読んでほしい。",
|
| 88 |
-
"落ち着いた男性 / 呆れ気味": "落ち着いた低めの声の男性が、相手の言動に少し呆れつつも感情を表に出さず、静かで平坦なトーンで淡々と話してるような声で読んでほしい。",
|
| 89 |
-
"Calm man / mildly exasperated (EN)": "Read this in the voice of a calm, low-pitched man who sounds mildly exasperated but keeps his emotions in check, speaking in a flat, even tone without much expression.",
|
| 90 |
-
"冷たい女性 / 憎しみ": "低くて冷たい声の女性が、怒りを内に秘めながら憎しみのこもった口調で、淡々と早めに話してるような声で読んでほしい。",
|
|
|
|
| 91 |
}
|
| 92 |
|
| 93 |
VOICE_PRESET_LIST = list(VOICE_EXAMPLES.items())
|
| 94 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 95 |
|
| 96 |
def run_generation_pipeline_client(
|
| 97 |
raw_text,
|
|
@@ -148,6 +157,13 @@ def run_generation_pipeline_client(
|
|
| 148 |
|
| 149 |
|
| 150 |
with gr.Blocks(theme="Respair/Shiki@10.1.0", css=css) as demo:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 151 |
|
| 152 |
with gr.Tabs():
|
| 153 |
|
|
@@ -266,6 +282,27 @@ with gr.Blocks(theme="Respair/Shiki@10.1.0", css=css) as demo:
|
|
| 266 |
examples_per_page=10,
|
| 267 |
)
|
| 268 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 269 |
with gr.TabItem("Info"):
|
| 270 |
gr.HTML('<h1 style="text-align: center;">🌸 Takane - Voice Design 🎨 </h1>')
|
| 271 |
|
|
|
|
| 8 |
|
| 9 |
|
| 10 |
|
| 11 |
+
# try:
|
| 12 |
+
# client = Client(os.environ['src'])
|
| 13 |
+
# except:
|
| 14 |
+
# client = Client("http://localhost:7861/")
|
| 15 |
|
| 16 |
css = """
|
| 17 |
.gradio-container input::placeholder,
|
|
|
|
| 83 |
"""
|
| 84 |
|
| 85 |
VOICE_EXAMPLES = {
|
| 86 |
+
"甘えた女の子 / ゆっくり": "かわいくて高い声の女の子が、甘えながらゆっくりのんびりしゃべってる感じの音声がほしい。", # https://huggingface.co/spaces/Respair/Voice_Design/blob/main/samples/onnanoko_amai.wav
|
| 87 |
+
"激怒する女性 / 感情爆発": "低くて激しい声の女性が、感情を抑えきれずに怒りを爆発させながら、早口でまくしたてるような声で読んでほしい。", # https://huggingface.co/spaces/Respair/Voice_Design/blob/main/samples/angry.wav
|
| 88 |
+
"落ち着いた男性 / 呆れ気味": "落ち着いた低めの声の男性が、相手の言動に少し呆れつつも感情を表に出さず、静かで平坦なトーンで淡々と話してるような声で読んでほしい。", # https://huggingface.co/spaces/Respair/Voice_Design/blob/main/samples/guy_cool.wav
|
| 89 |
+
"Calm man / mildly exasperated (EN)": "Read this in the voice of a calm, low-pitched man who sounds mildly exasperated but keeps his emotions in check, speaking in a flat, even tone without much expression.", # Nothing
|
| 90 |
+
"冷たい女性 / 憎しみ (1)": "低くて冷たい声の女性が、怒りを内に秘めながら憎しみのこもった口調で、淡々と早めに話してるような声で読んでほしい。", # https://huggingface.co/spaces/Respair/Voice_Design/blob/main/samples/woman_cold_frustrated_2.wav
|
| 91 |
+
"冷たい女性 / 憎しみ (2)": "低くて冷たい声の女性が、怒りを内に秘めながら憎しみのこもった口調で、淡々と早めに話してるような声で読んでほしい。", # same text different result / https://huggingface.co/spaces/Respair/Voice_Design/blob/main/samples/woman_cold_frustrated.wav
|
| 92 |
}
|
| 93 |
|
| 94 |
VOICE_PRESET_LIST = list(VOICE_EXAMPLES.items())
|
| 95 |
|
| 96 |
+
PREGENERATED_SAMPLES = [
|
| 97 |
+
["甘えた女の子 / ゆっくり", "samples/onnanoko_amai.wav"],
|
| 98 |
+
["激怒する女性 / 感情爆発", "samples/angry.wav"],
|
| 99 |
+
["落ち着いた男性 / 呆れ気味", "samples/guy_cool.wav"],
|
| 100 |
+
["冷たい女性 / 憎しみ (1)", "samples/woman_cold_frustrated_2.wav"],
|
| 101 |
+
["冷たい女性 / 憎しみ (2)", "samples/woman_cold_frustrated.wav"],
|
| 102 |
+
]
|
| 103 |
+
|
| 104 |
|
| 105 |
def run_generation_pipeline_client(
|
| 106 |
raw_text,
|
|
|
|
| 157 |
|
| 158 |
|
| 159 |
with gr.Blocks(theme="Respair/Shiki@10.1.0", css=css) as demo:
|
| 160 |
+
gr.Markdown(
|
| 161 |
+
"""
|
| 162 |
+
<div style="text-align: left;">
|
| 163 |
+
<code>Demo is closed</code> until further notice; thank you for using it. <br>
|
| 164 |
+
</div>
|
| 165 |
+
"""
|
| 166 |
+
)
|
| 167 |
|
| 168 |
with gr.Tabs():
|
| 169 |
|
|
|
|
| 282 |
examples_per_page=10,
|
| 283 |
)
|
| 284 |
|
| 285 |
+
gr.HTML("""
|
| 286 |
+
<div style="background-color: rgba(255, 255, 255, 0.025); padding: 20px; border-radius: 12px; backdrop-filter: blur(10px); box-shadow: 0 4px 6px rgba(0,0,0,0.5); margin-top: 16px;">
|
| 287 |
+
<p style="color: #1a1a1a; font-weight: 500; line-height: 1.6; font-size: 14px; text-align: center; margin: 0;">
|
| 288 |
+
クリックするとプリジェネ音声がロードされます。 / Click a preset to load a pre-generated audio sample.
|
| 289 |
+
</p>
|
| 290 |
+
</div>
|
| 291 |
+
""")
|
| 292 |
+
|
| 293 |
+
sample_holder = gr.Textbox(visible=False)
|
| 294 |
+
pregenerated_audio = gr.Audio(label="Pre-generated Samples", interactive=False)
|
| 295 |
+
gr.Examples(
|
| 296 |
+
examples=[[name] for name, _ in PREGENERATED_SAMPLES],
|
| 297 |
+
inputs=[sample_holder],
|
| 298 |
+
outputs=[pregenerated_audio],
|
| 299 |
+
fn=lambda name: next((path for n, path in PREGENERATED_SAMPLES if n == name), None),
|
| 300 |
+
label="Click to load a pre-generated sample",
|
| 301 |
+
cache_examples=False,
|
| 302 |
+
run_on_click=True,
|
| 303 |
+
examples_per_page=10,
|
| 304 |
+
)
|
| 305 |
+
|
| 306 |
with gr.TabItem("Info"):
|
| 307 |
gr.HTML('<h1 style="text-align: center;">🌸 Takane - Voice Design 🎨 </h1>')
|
| 308 |
|