Spaces:
Build error
Build error
Upload app.py
Browse files
app.py
CHANGED
|
@@ -1327,9 +1327,9 @@ def check_for_name():
|
|
| 1327 |
|
| 1328 |
def download_from_url(url, model):
|
| 1329 |
if url == '':
|
| 1330 |
-
return "URL
|
| 1331 |
if model =='':
|
| 1332 |
-
return "
|
| 1333 |
url = url.strip()
|
| 1334 |
zip_dirs = ["zips", "unzips"]
|
| 1335 |
for directory in zip_dirs:
|
|
@@ -1363,11 +1363,11 @@ def download_from_url(url, model):
|
|
| 1363 |
shutil.copy(file_path,f'./weights/{model}.pth')
|
| 1364 |
shutil.rmtree("zips")
|
| 1365 |
shutil.rmtree("unzips")
|
| 1366 |
-
return "
|
| 1367 |
except:
|
| 1368 |
-
return "
|
| 1369 |
def success_message(face):
|
| 1370 |
-
return f'{face.name}
|
| 1371 |
def mouth(size, face, voice, faces):
|
| 1372 |
if size == 'Half':
|
| 1373 |
size = 2
|
|
@@ -1481,12 +1481,12 @@ def zip_downloader(model):
|
|
| 1481 |
else:
|
| 1482 |
return f'./weights/{model}.pth', "Could not find Index file."
|
| 1483 |
|
| 1484 |
-
with gr.Blocks(theme=gr.themes.Default(primary_hue="green", secondary_hue="blue"), title="RVC - AI HUB BRASIL
|
| 1485 |
with gr.Tabs():
|
| 1486 |
with gr.TabItem("Inference"):
|
| 1487 |
-
gr.HTML("<h1> RVC - AI HUB BRASIL
|
| 1488 |
gr.HTML("<h10> Você pode encontrar mais modelos em AI Hub: https://discord.gg/aihub <br> ou AI Hub Brasil https://discord.gg/aihubrasil </h10>")
|
| 1489 |
-
gr.HTML("<h4> Huggingface port
|
| 1490 |
|
| 1491 |
# Inference Preset Row
|
| 1492 |
# with gr.Row():
|
|
@@ -1498,11 +1498,11 @@ with gr.Blocks(theme=gr.themes.Default(primary_hue="green", secondary_hue="blue"
|
|
| 1498 |
|
| 1499 |
# Other RVC stuff
|
| 1500 |
with gr.Row():
|
| 1501 |
-
sid0 = gr.Dropdown(label="1.
|
| 1502 |
-
refresh_button = gr.Button("
|
| 1503 |
if check_for_name() != '':
|
| 1504 |
get_vc(sorted(names)[0])
|
| 1505 |
-
vc_transform0 = gr.Number(label="
|
| 1506 |
#clean_button = gr.Button(i18n("卸载音色省显存"), variant="primary")
|
| 1507 |
spk_item = gr.Slider(
|
| 1508 |
minimum=0,
|
|
@@ -1525,27 +1525,27 @@ with gr.Blocks(theme=gr.themes.Default(primary_hue="green", secondary_hue="blue"
|
|
| 1525 |
with gr.Row():
|
| 1526 |
dropbox = gr.File(label="Drag your audio file and click refresh.")
|
| 1527 |
with gr.Row():
|
| 1528 |
-
|
| 1529 |
with gr.Row():
|
| 1530 |
input_audio0 = gr.Dropdown(
|
| 1531 |
-
label="2.
|
| 1532 |
-
value="./audios/
|
| 1533 |
choices=audio_files
|
| 1534 |
)
|
| 1535 |
dropbox.upload(fn=save_to_wav2, inputs=[dropbox], outputs=[input_audio0])
|
| 1536 |
dropbox.upload(fn=change_choices2, inputs=[], outputs=[input_audio0])
|
| 1537 |
-
refresh_button2 = gr.Button("
|
| 1538 |
record_button.change(fn=save_to_wav, inputs=[record_button], outputs=[input_audio0])
|
| 1539 |
record_button.change(fn=change_choices2, inputs=[], outputs=[input_audio0])
|
| 1540 |
with gr.Row():
|
| 1541 |
with gr.Accordion('ElevenLabs / Google TTS', open=False):
|
| 1542 |
with gr.Column():
|
| 1543 |
-
lang = gr.Radio(label='
|
| 1544 |
-
api_box = gr.Textbox(label="
|
| 1545 |
-
elevenid=gr.Dropdown(label="
|
| 1546 |
with gr.Column():
|
| 1547 |
-
tfs = gr.Textbox(label="
|
| 1548 |
-
tts_button = gr.Button(value="
|
| 1549 |
tts_button.click(fn=elevenTTS, inputs=[api_box,tfs, elevenid, lang], outputs=[record_button, input_audio0])
|
| 1550 |
with gr.Row():
|
| 1551 |
with gr.Accordion('Wav2Lip', open=False, visible=False):
|
|
@@ -1571,17 +1571,17 @@ with gr.Blocks(theme=gr.themes.Default(primary_hue="green", secondary_hue="blue"
|
|
| 1571 |
|
| 1572 |
with gr.Accordion('Edge-TTS', open=True):
|
| 1573 |
with gr.Column():
|
| 1574 |
-
ilariaid=gr.Dropdown(label="
|
| 1575 |
-
ilariatext = gr.Textbox(label="
|
| 1576 |
-
ilariatts_button = gr.Button(value="
|
| 1577 |
ilariatts_button.click(fn=ilariaTTS, inputs=[ilariatext, ilariaid], outputs=[record_button, input_audio0])
|
| 1578 |
|
| 1579 |
#with gr.Column():
|
| 1580 |
-
with gr.Accordion("Index
|
| 1581 |
#with gr.Row():
|
| 1582 |
|
| 1583 |
file_index1 = gr.Dropdown(
|
| 1584 |
-
label="3.
|
| 1585 |
choices=get_indexes(),
|
| 1586 |
value=get_index(),
|
| 1587 |
interactive=True,
|
|
@@ -1598,16 +1598,16 @@ with gr.Blocks(theme=gr.themes.Default(primary_hue="green", secondary_hue="blue"
|
|
| 1598 |
index_rate1 = gr.Slider(
|
| 1599 |
minimum=0,
|
| 1600 |
maximum=1,
|
| 1601 |
-
label=i18n("
|
| 1602 |
value=0.66,
|
| 1603 |
interactive=True,
|
| 1604 |
)
|
| 1605 |
|
| 1606 |
animate_button.click(fn=mouth, inputs=[size, face, vc_output2, faces], outputs=[animation, preview])
|
| 1607 |
|
| 1608 |
-
with gr.Accordion("
|
| 1609 |
f0method0 = gr.Radio(
|
| 1610 |
-
label="
|
| 1611 |
choices=["pm", "dio", "crepe-tiny", "mangio-crepe-tiny", "crepe", "harvest", "mangio-crepe", "rmvpe"], # Fork Feature. Add Crepe-Tiny
|
| 1612 |
value="rmvpe",
|
| 1613 |
interactive=True,
|
|
@@ -1626,7 +1626,7 @@ with gr.Blocks(theme=gr.themes.Default(primary_hue="green", secondary_hue="blue"
|
|
| 1626 |
filter_radius0 = gr.Slider(
|
| 1627 |
minimum=0,
|
| 1628 |
maximum=7,
|
| 1629 |
-
label=i18n(">=3
|
| 1630 |
value=3,
|
| 1631 |
step=1,
|
| 1632 |
interactive=True,
|
|
@@ -1643,22 +1643,22 @@ with gr.Blocks(theme=gr.themes.Default(primary_hue="green", secondary_hue="blue"
|
|
| 1643 |
rms_mix_rate0 = gr.Slider(
|
| 1644 |
minimum=0,
|
| 1645 |
maximum=1,
|
| 1646 |
-
label=i18n("
|
| 1647 |
value=0.21,
|
| 1648 |
interactive=True,
|
| 1649 |
)
|
| 1650 |
protect0 = gr.Slider(
|
| 1651 |
minimum=0,
|
| 1652 |
maximum=0.5,
|
| 1653 |
-
label=i18n("
|
| 1654 |
value=0.33,
|
| 1655 |
step=0.01,
|
| 1656 |
interactive=True,
|
| 1657 |
)
|
| 1658 |
formanting = gr.Checkbox(
|
| 1659 |
value=bool(DoFormant),
|
| 1660 |
-
label="[EXPERIMENTAL]
|
| 1661 |
-
info="
|
| 1662 |
interactive=True,
|
| 1663 |
visible=True,
|
| 1664 |
)
|
|
@@ -1846,14 +1846,14 @@ with gr.Blocks(theme=gr.themes.Default(primary_hue="green", secondary_hue="blue"
|
|
| 1846 |
[vc_output3],
|
| 1847 |
)
|
| 1848 |
but1.click(fn=lambda: easy_uploader.clear())
|
| 1849 |
-
with gr.TabItem("
|
| 1850 |
with gr.Row():
|
| 1851 |
url=gr.Textbox(label="Huggingface Link:")
|
| 1852 |
with gr.Row():
|
| 1853 |
-
model = gr.Textbox(label="
|
| 1854 |
-
download_button=gr.Button("
|
| 1855 |
with gr.Row():
|
| 1856 |
-
status_bar=gr.Textbox(label="
|
| 1857 |
download_button.click(fn=download_from_url, inputs=[url, model], outputs=[status_bar])
|
| 1858 |
with gr.Row():
|
| 1859 |
gr.Markdown(
|
|
|
|
| 1327 |
|
| 1328 |
def download_from_url(url, model):
|
| 1329 |
if url == '':
|
| 1330 |
+
return "O URL não pode ficar vazio."
|
| 1331 |
if model =='':
|
| 1332 |
+
return "Você precisa nomear seu modelo. Por exemplo: Meu modelo"
|
| 1333 |
url = url.strip()
|
| 1334 |
zip_dirs = ["zips", "unzips"]
|
| 1335 |
for directory in zip_dirs:
|
|
|
|
| 1363 |
shutil.copy(file_path,f'./weights/{model}.pth')
|
| 1364 |
shutil.rmtree("zips")
|
| 1365 |
shutil.rmtree("unzips")
|
| 1366 |
+
return "Modelo baixado, você pode voltar para a página de inferência!"
|
| 1367 |
except:
|
| 1368 |
+
return "ERRO - O download falhou. Verifique se o link é válido."
|
| 1369 |
def success_message(face):
|
| 1370 |
+
return f'{face.name} foi carregado.', 'None'
|
| 1371 |
def mouth(size, face, voice, faces):
|
| 1372 |
if size == 'Half':
|
| 1373 |
size = 2
|
|
|
|
| 1481 |
else:
|
| 1482 |
return f'./weights/{model}.pth', "Could not find Index file."
|
| 1483 |
|
| 1484 |
+
with gr.Blocks(theme=gr.themes.Default(primary_hue="green", secondary_hue="blue"), title="RVC - AI HUB BRASIL :flag_br:") as app:
|
| 1485 |
with gr.Tabs():
|
| 1486 |
with gr.TabItem("Inference"):
|
| 1487 |
+
gr.HTML("<h1> RVC - AI HUB BRASIL :flag_br: </h1>")
|
| 1488 |
gr.HTML("<h10> Você pode encontrar mais modelos em AI Hub: https://discord.gg/aihub <br> ou AI Hub Brasil https://discord.gg/aihubrasil </h10>")
|
| 1489 |
+
gr.HTML("<h4> Huggingface port by Ilaria of the Rejekt Easy GUI </h4>")
|
| 1490 |
|
| 1491 |
# Inference Preset Row
|
| 1492 |
# with gr.Row():
|
|
|
|
| 1498 |
|
| 1499 |
# Other RVC stuff
|
| 1500 |
with gr.Row():
|
| 1501 |
+
sid0 = gr.Dropdown(label="1. Escolha seu modelo", choices=sorted(names), value=check_for_name())
|
| 1502 |
+
refresh_button = gr.Button("Atualizar", variant="primary")
|
| 1503 |
if check_for_name() != '':
|
| 1504 |
get_vc(sorted(names)[0])
|
| 1505 |
+
vc_transform0 = gr.Number(label="Mude o tom aqui. Se a voz for do mesmo sexo, não é necessario alterar(12 caso seja Masculino para feminino, -12 caso seja ao contrário.", value=0)
|
| 1506 |
#clean_button = gr.Button(i18n("卸载音色省显存"), variant="primary")
|
| 1507 |
spk_item = gr.Slider(
|
| 1508 |
minimum=0,
|
|
|
|
| 1525 |
with gr.Row():
|
| 1526 |
dropbox = gr.File(label="Drag your audio file and click refresh.")
|
| 1527 |
with gr.Row():
|
| 1528 |
+
record_button=gr.Audio(source="microphone", label="Ou você pode usar seu microfone!", type="filepath")
|
| 1529 |
with gr.Row():
|
| 1530 |
input_audio0 = gr.Dropdown(
|
| 1531 |
+
label="2.Escolha o arquivo de áudio",
|
| 1532 |
+
value="./audios/Poema-do-Cume-Arnold",
|
| 1533 |
choices=audio_files
|
| 1534 |
)
|
| 1535 |
dropbox.upload(fn=save_to_wav2, inputs=[dropbox], outputs=[input_audio0])
|
| 1536 |
dropbox.upload(fn=change_choices2, inputs=[], outputs=[input_audio0])
|
| 1537 |
+
refresh_button2 = gr.Button("Atualizar", variant="primary", size='sm')
|
| 1538 |
record_button.change(fn=save_to_wav, inputs=[record_button], outputs=[input_audio0])
|
| 1539 |
record_button.change(fn=change_choices2, inputs=[], outputs=[input_audio0])
|
| 1540 |
with gr.Row():
|
| 1541 |
with gr.Accordion('ElevenLabs / Google TTS', open=False):
|
| 1542 |
with gr.Column():
|
| 1543 |
+
lang = gr.Radio(label='Chinês e Japonês não funcionam atualmente com a ElevenLabs..',choices=['en','it','es','fr','pt','zh-CN','de','hi','ja'], value='pt')
|
| 1544 |
+
api_box = gr.Textbox(label="Digite sua chave de API para a ElevenLabs ou deixe em branco para usar o GoogleTTS. (Não é obrigatorio)", value='')
|
| 1545 |
+
elevenid=gr.Dropdown(label="Voz:", choices=eleven_voices)
|
| 1546 |
with gr.Column():
|
| 1547 |
+
tfs = gr.Textbox(label="Digite o seu Texto", interactive=True, value="Isso é um teste.")
|
| 1548 |
+
tts_button = gr.Button(value="Falar")
|
| 1549 |
tts_button.click(fn=elevenTTS, inputs=[api_box,tfs, elevenid, lang], outputs=[record_button, input_audio0])
|
| 1550 |
with gr.Row():
|
| 1551 |
with gr.Accordion('Wav2Lip', open=False, visible=False):
|
|
|
|
| 1571 |
|
| 1572 |
with gr.Accordion('Edge-TTS', open=True):
|
| 1573 |
with gr.Column():
|
| 1574 |
+
ilariaid=gr.Dropdown(label="Voz:", choices=ilariavoices, value="Brazilian-Antonio- (Male)")
|
| 1575 |
+
ilariatext = gr.Textbox(label="Digite o seu Texto", interactive=True, value="Isso é um teste.")
|
| 1576 |
+
ilariatts_button = gr.Button(value="Falar")
|
| 1577 |
ilariatts_button.click(fn=ilariaTTS, inputs=[ilariatext, ilariaid], outputs=[record_button, input_audio0])
|
| 1578 |
|
| 1579 |
#with gr.Column():
|
| 1580 |
+
with gr.Accordion("Configuração de Index", open=False):
|
| 1581 |
#with gr.Row():
|
| 1582 |
|
| 1583 |
file_index1 = gr.Dropdown(
|
| 1584 |
+
label="3. Escolha o arquivo de índice (caso não tenha sido encontrado automaticamente).",
|
| 1585 |
choices=get_indexes(),
|
| 1586 |
value=get_index(),
|
| 1587 |
interactive=True,
|
|
|
|
| 1598 |
index_rate1 = gr.Slider(
|
| 1599 |
minimum=0,
|
| 1600 |
maximum=1,
|
| 1601 |
+
label=i18n("Proporção do recurso de pesquisa"),
|
| 1602 |
value=0.66,
|
| 1603 |
interactive=True,
|
| 1604 |
)
|
| 1605 |
|
| 1606 |
animate_button.click(fn=mouth, inputs=[size, face, vc_output2, faces], outputs=[animation, preview])
|
| 1607 |
|
| 1608 |
+
with gr.Accordion("Opções avançadas", open=False):
|
| 1609 |
f0method0 = gr.Radio(
|
| 1610 |
+
label="Opcional: altere o algoritmo de extração de pitch. Os métodos de extração são classificados da “pior qualidade” para a “melhor qualidade”. Se você não sabe o que está fazendo, saia do rmvpe.",
|
| 1611 |
choices=["pm", "dio", "crepe-tiny", "mangio-crepe-tiny", "crepe", "harvest", "mangio-crepe", "rmvpe"], # Fork Feature. Add Crepe-Tiny
|
| 1612 |
value="rmvpe",
|
| 1613 |
interactive=True,
|
|
|
|
| 1626 |
filter_radius0 = gr.Slider(
|
| 1627 |
minimum=0,
|
| 1628 |
maximum=7,
|
| 1629 |
+
label=i18n(">=3, use filtragem mediana no resultado do reconhecimento do tom de colheita, o valor é o raio do filtro, o que pode enfraquecer o som mudo."),
|
| 1630 |
value=3,
|
| 1631 |
step=1,
|
| 1632 |
interactive=True,
|
|
|
|
| 1643 |
rms_mix_rate0 = gr.Slider(
|
| 1644 |
minimum=0,
|
| 1645 |
maximum=1,
|
| 1646 |
+
label=i18n("O envelope do volume da fonte de entrada substitui a taxa de fusão do envelope do volume de saída. Quanto mais próximo estiver de 1, mais envelope de saída será usado."),
|
| 1647 |
value=0.21,
|
| 1648 |
interactive=True,
|
| 1649 |
)
|
| 1650 |
protect0 = gr.Slider(
|
| 1651 |
minimum=0,
|
| 1652 |
maximum=0.5,
|
| 1653 |
+
label=i18n("Proteja consoantes surdas e sons respiratórios para evitar artefatos, como quebra de som eletrônico. Não ative quando atingir 0,5. Abaixe-o para aumentar a proteção, mas pode reduzir o efeito de indexação."),
|
| 1654 |
value=0.33,
|
| 1655 |
step=0.01,
|
| 1656 |
interactive=True,
|
| 1657 |
)
|
| 1658 |
formanting = gr.Checkbox(
|
| 1659 |
value=bool(DoFormant),
|
| 1660 |
+
label="[EXPERIMENTAL] Áudio de inferência de mudança de formante",
|
| 1661 |
+
info="Usado para conversões de homem para mulher e vice-versa",
|
| 1662 |
interactive=True,
|
| 1663 |
visible=True,
|
| 1664 |
)
|
|
|
|
| 1846 |
[vc_output3],
|
| 1847 |
)
|
| 1848 |
but1.click(fn=lambda: easy_uploader.clear())
|
| 1849 |
+
with gr.TabItem("Baixar novos modelos"):
|
| 1850 |
with gr.Row():
|
| 1851 |
url=gr.Textbox(label="Huggingface Link:")
|
| 1852 |
with gr.Row():
|
| 1853 |
+
model = gr.Textbox(label="Nome do modelo (Sem espaços):")
|
| 1854 |
+
download_button=gr.Button("Baixar")
|
| 1855 |
with gr.Row():
|
| 1856 |
+
status_bar=gr.Textbox(label="Status do download")
|
| 1857 |
download_button.click(fn=download_from_url, inputs=[url, model], outputs=[status_bar])
|
| 1858 |
with gr.Row():
|
| 1859 |
gr.Markdown(
|