Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
elebumm
GitHub Repository: elebumm/RedditVideoMakerBot
Path: blob/master/TTS/elevenlabs.py
327 views
1
import random
2
3
from elevenlabs import save
4
from elevenlabs.client import ElevenLabs
5
6
from utils import settings
7
8
9
class elevenlabs:
10
def __init__(self):
11
self.max_chars = 2500
12
self.client: ElevenLabs = None
13
14
def run(self, text, filepath, random_voice: bool = False):
15
if self.client is None:
16
self.initialize()
17
if random_voice:
18
voice = self.randomvoice()
19
else:
20
voice = str(settings.config["settings"]["tts"]["elevenlabs_voice_name"]).capitalize()
21
22
audio = self.client.generate(text=text, voice=voice, model="eleven_multilingual_v1")
23
save(audio=audio, filename=filepath)
24
25
def initialize(self):
26
if settings.config["settings"]["tts"]["elevenlabs_api_key"]:
27
api_key = settings.config["settings"]["tts"]["elevenlabs_api_key"]
28
else:
29
raise ValueError(
30
"You didn't set an Elevenlabs API key! Please set the config variable ELEVENLABS_API_KEY to a valid API key."
31
)
32
33
self.client = ElevenLabs(api_key=api_key)
34
35
def randomvoice(self):
36
if self.client is None:
37
self.initialize()
38
return random.choice(self.client.voices.get_all().voices).voice_name
39
40