Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -1,14 +1,22 @@
|
|
1 |
import subprocess
|
2 |
|
|
|
|
|
|
|
3 |
# Comando para instalar ou atualizar o pacote edge-tts
|
4 |
comando_edge_tts = ["pip", "install", "edge-tts", "-U", "--quiet"]
|
5 |
|
|
|
|
|
|
|
6 |
# Executando o comando para instalar ou atualizar o pacote elevenlabs
|
7 |
subprocess.run(comando_elevenlabs)
|
8 |
|
9 |
# Executando o comando para instalar ou atualizar o pacote edge-tts
|
10 |
subprocess.run(comando_edge_tts)
|
11 |
|
|
|
|
|
12 |
|
13 |
import subprocess
|
14 |
import os
|
@@ -76,9 +84,45 @@ def controlador_generate_audio(audio_input, voice_model_input, speed_input, chec
|
|
76 |
print("Erro ao gerar áudio.")
|
77 |
return audio_file # Retornar o caminho do arquivo de áudio
|
78 |
|
|
|
|
|
|
|
79 |
from elevenlabs.client import ElevenLabs
|
80 |
from transformers.errors import UnauthenticatedRateLimitError
|
81 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
all_voices = voices()
|
83 |
with gr.Blocks(theme=gr.themes.Default(primary_hue="green", secondary_hue="blue"), title="TTS Rápido") as iface:
|
84 |
gr.Markdown(badges)
|
@@ -102,7 +146,7 @@ with gr.Blocks(theme=gr.themes.Default(primary_hue="green", secondary_hue="blue"
|
|
102 |
clear_button = gr.ClearButton(audio_input, value='Limpar')
|
103 |
gr.Markdown("Agradecimentos a rany2 pelo Edge-TTS")
|
104 |
|
105 |
-
with gr.TabItem("Elevenlabs
|
106 |
with gr.TabItem("Elevenlabs Free"):
|
107 |
gr.Markdown("Esse é a API gratuita que é disponivel pela própria Elevenlabs, não sei os limites, mas sei que tem, acredito que após 3 requests seguidos já caia, então tenha certeza o texto que vá usar.")
|
108 |
audio_input = gr.Textbox(label="Texto (Não botei limite de caracteres, mas não sei se tem limite no request)", value='Texto de exemplo!', interactive=True)
|
|
|
1 |
import subprocess
|
2 |
|
3 |
+
# Comando para instalar ou atualizar o pacote elevenlabs
|
4 |
+
comando_elevenlabs = ["pip", "install", "elevenlabs", "-U", "--quiet"]
|
5 |
+
|
6 |
# Comando para instalar ou atualizar o pacote edge-tts
|
7 |
comando_edge_tts = ["pip", "install", "edge-tts", "-U", "--quiet"]
|
8 |
|
9 |
+
# Comando para instalar ou atualizar o pacote pip install transformers
|
10 |
+
comando_transformers = ["pip", "install", "transformers", "--quiet"]
|
11 |
+
|
12 |
# Executando o comando para instalar ou atualizar o pacote elevenlabs
|
13 |
subprocess.run(comando_elevenlabs)
|
14 |
|
15 |
# Executando o comando para instalar ou atualizar o pacote edge-tts
|
16 |
subprocess.run(comando_edge_tts)
|
17 |
|
18 |
+
subprocess.run(comando_transformers)
|
19 |
+
|
20 |
|
21 |
import subprocess
|
22 |
import os
|
|
|
84 |
print("Erro ao gerar áudio.")
|
85 |
return audio_file # Retornar o caminho do arquivo de áudio
|
86 |
|
87 |
+
import os
|
88 |
+
import numpy as np
|
89 |
+
import gradio as gr
|
90 |
from elevenlabs.client import ElevenLabs
|
91 |
from transformers.errors import UnauthenticatedRateLimitError
|
92 |
|
93 |
+
def generate_voice(text, voice_name):
|
94 |
+
try:
|
95 |
+
client = ElevenLabs()
|
96 |
+
audio = client.generate(
|
97 |
+
text[:250], # Limit to 250 characters
|
98 |
+
voice=voice_name,
|
99 |
+
model="eleven_multilingual_v2"
|
100 |
+
)
|
101 |
+
return (44100, np.frombuffer(gr.pad_buffer(audio), dtype=np.int16))
|
102 |
+
except UnauthenticatedRateLimitError as e:
|
103 |
+
raise gr.Error("Thanks for trying out ElevenLabs TTS! You've reached the free tier limit. Please provide an API key to continue.")
|
104 |
+
except Exception as e:
|
105 |
+
raise gr.Error(e)
|
106 |
+
|
107 |
+
texto = "Olá, este é um exemplo de texto para sintetização de voz."
|
108 |
+
voice_name = "elevenlabs-multilingual-v2"
|
109 |
+
|
110 |
+
output_dir = "output"
|
111 |
+
os.makedirs(output_dir, exist_ok=True) # Certifique-se de que o diretório de saída exista
|
112 |
+
|
113 |
+
output_file_path = os.path.join(output_dir, "new_audio.wav")
|
114 |
+
|
115 |
+
try:
|
116 |
+
audio = generate_voice(texto, voice_name)
|
117 |
+
|
118 |
+
# Escrever os dados do áudio no arquivo WAV
|
119 |
+
with open(output_file_path, 'wb') as wf:
|
120 |
+
wf.write(audio[1].tobytes())
|
121 |
+
|
122 |
+
print("Áudio gerado com sucesso em:", output_file_path)
|
123 |
+
except gr.Error as e:
|
124 |
+
print("Erro ao gerar áudio:", e)
|
125 |
+
|
126 |
all_voices = voices()
|
127 |
with gr.Blocks(theme=gr.themes.Default(primary_hue="green", secondary_hue="blue"), title="TTS Rápido") as iface:
|
128 |
gr.Markdown(badges)
|
|
|
146 |
clear_button = gr.ClearButton(audio_input, value='Limpar')
|
147 |
gr.Markdown("Agradecimentos a rany2 pelo Edge-TTS")
|
148 |
|
149 |
+
with gr.TabItem("Elevenlabs"):
|
150 |
with gr.TabItem("Elevenlabs Free"):
|
151 |
gr.Markdown("Esse é a API gratuita que é disponivel pela própria Elevenlabs, não sei os limites, mas sei que tem, acredito que após 3 requests seguidos já caia, então tenha certeza o texto que vá usar.")
|
152 |
audio_input = gr.Textbox(label="Texto (Não botei limite de caracteres, mas não sei se tem limite no request)", value='Texto de exemplo!', interactive=True)
|