RafaG commited on
Commit
cd9138d
·
verified ·
1 Parent(s): dc1c6ab

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +45 -1
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 | Desativado"):
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)