Spaces:
Runtime error
Runtime error
File size: 4,309 Bytes
63dfe54 |
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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
import gradio as gr
from themes import IndonesiaTheme
import gradio as gr
def create_interface(models, tts_voices, tts_func):
initial_md = """
# TTS-RVC-Tokoh Indonesia
Pembuktian algoritma **Retrieval-based Voice Conversion (RVC)** dan teknologi **Edge TTS** yang dapat membuat clone dari suara tokoh-tokoh penting di Indonesia.
**Perhatian:** Harap tidak menyalahgunakan teknologi ini.
"""
app = gr.Blocks(theme=IndonesiaTheme(), title="TTS-RVC-Tokoh Indonesia")
with app:
# Tambahkan banner di bagian atas
gr.HTML("""
<div style="text-align: center; margin-top: 20px;">
<img src="https://i.ibb.co.com/dm13YjJ/banner1.jpg" alt="Banner" style="width: 100%; max-width: 1200px; border-radius: 10px;">
</div>
""")
gr.Markdown(initial_md)
with gr.Row():
with gr.Column():
model_name = gr.Dropdown(
label="Model",
choices=models,
value=models[0],
)
f0_key_up = gr.Number(
label="Tune (+12 = 1 oktaf dari edge-tts, nilai terbaik tergantung pada model dan pembicara)",
value=2,
)
with gr.Column():
f0_method = gr.Radio(
label="Metode ekstraksi pitch (pm: sangat cepat, kualitas rendah, rmvpe: sedikit lambat, kualitas tinggi)",
choices=["pm", "rmvpe"], # harvest and crepe terlalu lambat
value="rmvpe",
interactive=True,
)
index_rate = gr.Slider(
minimum=0,
maximum=1,
label="Tingkat indeks",
value=0.5,
interactive=True,
)
protect0 = gr.Slider(
minimum=0,
maximum=0.5,
label="Perlindungan",
value=0.33,
step=0.01,
interactive=True,
)
with gr.Row():
with gr.Column():
tts_voice = gr.Dropdown(
label="Pembicara Edge-tts (format: bahasa-Negara-Nama-Jenis Kelamin), pastikan jenis kelamin cocok dengan model",
choices=tts_voices,
allow_custom_value=False,
value="id-ID-ArdiNeural-Male",
)
speed = gr.Slider(
minimum=-100,
maximum=100,
label="Kecepatan bicara (%)",
value=0,
step=10,
interactive=True,
)
tts_text = gr.Textbox(label="Teks Input", value="Konversi dari teks ke suara dalam bahasa Indonesia.")
with gr.Column():
but0 = gr.Button("โ
Konversi Suara", variant="primary")
info_text = gr.Textbox(label="Informasi Output")
with gr.Column():
edge_tts_output = gr.Audio(label="Suara Edge", type="filepath")
tts_output = gr.Audio(label="Hasil")
but0.click(
tts_func,
[
model_name,
speed,
tts_text,
tts_voice,
f0_key_up,
f0_method,
index_rate,
protect0,
],
[info_text, edge_tts_output, tts_output],
)
with gr.Row():
examples = gr.Examples(
examples_per_page=100,
examples=[
["Ini adalah demo percobaan menggunakan Bahasa Indonesia untuk pria.", "jokowi"],
["Ini adalah teks percobaan menggunakan Bahasa Indonesia pada wanita.", "prabowo"],
],
inputs=[tts_text, tts_voice],
)
# Tambahkan footer di bagian bawah
gr.HTML("""
<footer style="text-align: center; margin-top: 20px; color:silver;">
Energi Semesta Digital ยฉ 2024 __drat. | ๐ฎ๐ฉ Untuk Indonesia Jaya!
</footer>
""")
return app
|