laxsvips commited on
Commit
fbda3c1
·
1 Parent(s): d100e95

Update audio.py

Browse files
Files changed (1) hide show
  1. audio.py +23 -8
audio.py CHANGED
@@ -1,9 +1,24 @@
1
- from elevenlabs import generate, save
 
 
2
 
3
- def generate_audio(input_text):
4
- audio = generate(
5
- text=input_text,
6
- voice="Rachel",
7
- model="eleven_monolingual_v1"
8
- )
9
- return audio
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from elevenlabs import voices, generate, set_api_key, UnauthenticatedRateLimitError
2
+ import numpy as np
3
+ import gradio as gr
4
 
5
+ def pad_buffer(audio):
6
+ # Pad buffer to multiple of 2 bytes
7
+ buffer_size = len(audio)
8
+ element_size = np.dtype(np.int16).itemsize
9
+ if buffer_size % element_size != 0:
10
+ audio = audio + b'\0' * (element_size - (buffer_size % element_size))
11
+ return audio
12
+
13
+ def generate_audio(text):
14
+ try:
15
+ audio = generate(
16
+ text[:250], # Limit to 250 characters
17
+ voice="Arnold",
18
+ model="eleven_multilingual_v1"
19
+ )
20
+ return (44100, np.frombuffer(pad_buffer(audio), dtype=np.int16))
21
+ except UnauthenticatedRateLimitError as e:
22
+ raise gr.Error("Thanks for trying out ElevenLabs TTS! You've reached the free tier limit. Please provide an API key to continue.")
23
+ except Exception as e:
24
+ raise gr.Error(e)