parent
a4f0022a5a
commit
adf1e78413
@ -1,42 +1,38 @@
|
|||||||
import random
|
import random
|
||||||
|
|
||||||
from elevenlabs import generate, save
|
from elevenlabs import save
|
||||||
|
from elevenlabs.client import ElevenLabs
|
||||||
|
|
||||||
from utils import settings
|
from utils import settings
|
||||||
|
|
||||||
voices = [
|
|
||||||
"Adam",
|
|
||||||
"Antoni",
|
|
||||||
"Arnold",
|
|
||||||
"Bella",
|
|
||||||
"Domi",
|
|
||||||
"Elli",
|
|
||||||
"Josh",
|
|
||||||
"Rachel",
|
|
||||||
"Sam",
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
class elevenlabs:
|
class elevenlabs:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.max_chars = 2500
|
self.max_chars = 2500
|
||||||
self.voices = voices
|
self.client: ElevenLabs = None
|
||||||
|
|
||||||
def run(self, text, filepath, random_voice: bool = False):
|
def run(self, text, filepath, random_voice: bool = False):
|
||||||
if random_voice:
|
if self.client is None:
|
||||||
voice = self.randomvoice()
|
self.initialize()
|
||||||
else:
|
if random_voice:
|
||||||
voice = str(settings.config["settings"]["tts"]["elevenlabs_voice_name"]).capitalize()
|
voice = self.randomvoice()
|
||||||
|
else:
|
||||||
if settings.config["settings"]["tts"]["elevenlabs_api_key"]:
|
voice = str(settings.config["settings"]["tts"]["elevenlabs_voice_name"]).capitalize()
|
||||||
api_key = settings.config["settings"]["tts"]["elevenlabs_api_key"]
|
|
||||||
else:
|
audio = self.client.generate(text=text, voice=voice, model="eleven_multilingual_v1")
|
||||||
raise ValueError(
|
save(audio=audio, filename=filepath)
|
||||||
"You didn't set an Elevenlabs API key! Please set the config variable ELEVENLABS_API_KEY to a valid API key."
|
|
||||||
)
|
def initialize(self):
|
||||||
|
if settings.config["settings"]["tts"]["elevenlabs_api_key"]:
|
||||||
audio = generate(api_key=api_key, text=text, voice=voice, model="eleven_multilingual_v1")
|
api_key = settings.config["settings"]["tts"]["elevenlabs_api_key"]
|
||||||
save(audio=audio, filename=filepath)
|
else:
|
||||||
|
raise ValueError(
|
||||||
def randomvoice(self):
|
"You didn't set an Elevenlabs API key! Please set the config variable ELEVENLABS_API_KEY to a valid API key."
|
||||||
return random.choice(self.voices)
|
)
|
||||||
|
|
||||||
|
self.client = ElevenLabs(api_key=api_key)
|
||||||
|
|
||||||
|
def randomvoice(self):
|
||||||
|
if self.client is None:
|
||||||
|
self.initialize()
|
||||||
|
return random.choice(self.client.voices.get_all().voices).voice_name
|
||||||
|
Loading…
Reference in new issue