Nymbo commited on
Commit
ef18969
·
verified ·
1 Parent(s): 57d3bbf

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +33 -43
app.py CHANGED
@@ -1,6 +1,7 @@
1
  import random
2
  import gradio as gr
3
  import numpy as np
 
4
  from elevenlabs import voices, generate, set_api_key, UnauthenticatedRateLimitError
5
 
6
  def pad_buffer(audio):
@@ -11,10 +12,11 @@ def pad_buffer(audio):
11
  audio = audio + b'\0' * (element_size - (buffer_size % element_size))
12
  return audio
13
 
14
- def generate_voice(text, voice_name):
 
15
  try:
16
  audio = generate(
17
- text[:250], # Limit to 250 characters
18
  voice=voice_name,
19
  model="eleven_multilingual_v2"
20
  )
@@ -24,64 +26,52 @@ def generate_voice(text, voice_name):
24
  except Exception as e:
25
  raise gr.Error(e)
26
 
 
 
 
27
 
28
- badges = """
29
- <div style="display: flex">
30
- <span style="margin-right: 5px">
31
-
32
- [ ![GitHub](https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge&logo=github&logoColor=white) ](https://github.com/elevenlabs/elevenlabs-python)
33
-
34
- </span>
35
- <span style="margin-right: 5px">
36
-
37
- [ ![Twitter](https://img.shields.io/badge/Twitter-%231DA1F2.svg?style=for-the-badge&logo=Twitter&logoColor=white) ](https://twitter.com/elevenlabsio)
38
-
39
- </span>
40
- <span>
41
-
42
- [ ![](https://dcbadge.vercel.app/api/server/elevenlabs) ](https://discord.gg/elevenlabs)
43
-
44
- </span>
45
- </div>
46
- """
47
 
48
- description = """
49
- A demo of the world's most advanced TTS systems, made by [ElevenLabs](https://elevenlabs.io). Eleven Multilingual V2 is a single foundational model supporting 28 languages including: English, Chinese, Spanish, Hindi, Portuguese, French, German, Japanese, Arabic, Korean, Indonesian, Italian, Dutch, Turkish, Polish, Swedish, Filipino, Malay, Romanian, Ukrainian, Greek, Czech, Danish, Finnish, Bulgarian, Croatian, Slovak, and Tamil. Sign up on [ElevenLabs](https://elevenlabs.io) to get fast access, long-form generation, voice cloning, API keys, and more!
50
- """
 
 
 
 
51
 
52
- with gr.Blocks() as block:
53
- gr.Markdown('[ ![ElevenLabs](https://user-images.githubusercontent.com/12028621/262629275-4f85c9cf-85b6-435e-ab50-5b8c7c4e9dd2.png) ](https://elevenlabs.io)')
54
- gr.Markdown(badges)
55
- gr.Markdown(description)
56
-
57
  input_text = gr.Textbox(
58
- label="Input Text (250 characters max)",
59
- lines=2,
60
  value="Hello! 你好! Hola! नमस्ते! Bonjour! こんにちは! مرحبا! 안녕하세요! Ciao! Cześć! Привіт! Γειά σας! Здравей! வணக்கம்!",
61
  elem_id="input_text"
62
  )
63
-
64
- all_voices = voices()
65
- input_voice = gr.Dropdown(
66
- [ voice.name for voice in all_voices ],
67
- value="Bella",
68
- label="Voice",
69
- elem_id="input_voice"
70
- )
71
-
72
  run_button = gr.Button(
73
  text="Generate Voice",
74
- type="button"
 
75
  )
76
 
77
  out_audio = gr.Audio(
78
- label="Generated Voice",
79
  type="numpy",
80
  elem_id="out_audio",
81
  format="mp3"
82
  )
83
 
84
- inputs = [input_text, input_voice]
85
  outputs = [out_audio]
86
 
87
  run_button.click(
 
1
  import random
2
  import gradio as gr
3
  import numpy as np
4
+ import time
5
  from elevenlabs import voices, generate, set_api_key, UnauthenticatedRateLimitError
6
 
7
  def pad_buffer(audio):
 
12
  audio = audio + b'\0' * (element_size - (buffer_size % element_size))
13
  return audio
14
 
15
+ def generate_voice(text, voice_name, api_key):
16
+ set_api_key(api_key) #set API key
17
  try:
18
  audio = generate(
19
+ text[:4000], # Limit to 4000 characters
20
  voice=voice_name,
21
  model="eleven_multilingual_v2"
22
  )
 
26
  except Exception as e:
27
  raise gr.Error(e)
28
 
29
+ # description = """
30
+ # Eleven Multilingual V2 is the world's best Text-to-Speech model. Features 38 voices and supports 28 languages. Sign up on [ElevenLabs](https://elevenlabs.io/?from=partnerpierce7156) to get an API Key.
31
+ # """
32
 
33
+ with gr.Blocks(theme=gr.themes.Default(primary_hue="pink", secondary_hue="pink")) as block:
34
+ #gr.Markdown('[ ![ElevenLabs](https://user-images.githubusercontent.com/12028621/262629275-4f85c9cf-85b6-435e-ab50-5b8c7c4e9dd2.png) ](https://elevenlabs.io)')
35
+ #gr.Markdown("# <center> ElevenLabs </center>")
36
+ #gr.Markdown(description)
37
+
38
+ with gr.Row(variant='panel'):
39
+ input_api_key = gr.Textbox(
40
+ type='password',
41
+ label='ElevenLabs API Key',
42
+ placeholder='Enter your API key',
43
+ elem_id="input_api_key"
44
+ )
 
 
 
 
 
 
 
45
 
46
+ all_voices = voices()
47
+ input_voice = gr.Dropdown(
48
+ [ voice.name for voice in all_voices ],
49
+ value="Rachel",
50
+ label="Voice",
51
+ elem_id="input_voice"
52
+ )
53
 
 
 
 
 
 
54
  input_text = gr.Textbox(
55
+ label="Input Text (4000 characters max)",
56
+ lines=1,
57
  value="Hello! 你好! Hola! नमस्ते! Bonjour! こんにちは! مرحبا! 안녕하세요! Ciao! Cześć! Привіт! Γειά σας! Здравей! வணக்கம்!",
58
  elem_id="input_text"
59
  )
60
+
 
 
 
 
 
 
 
 
61
  run_button = gr.Button(
62
  text="Generate Voice",
63
+ type="button",
64
+ variant="primary"
65
  )
66
 
67
  out_audio = gr.Audio(
68
+ label="Speech Output",
69
  type="numpy",
70
  elem_id="out_audio",
71
  format="mp3"
72
  )
73
 
74
+ inputs = [input_text, input_voice, input_api_key]
75
  outputs = [out_audio]
76
 
77
  run_button.click(