From 685f8c4ddd4cf8e1e630ced3e8d1085010e2c9c8 Mon Sep 17 00:00:00 2001 From: liamb Date: Sat, 6 May 2023 04:35:29 +1000 Subject: [PATCH] format like other tts engines --- TTS/elevenlabs.py | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/TTS/elevenlabs.py b/TTS/elevenlabs.py index 837ddc9..03c8aff 100644 --- a/TTS/elevenlabs.py +++ b/TTS/elevenlabs.py @@ -4,26 +4,34 @@ from elevenlabs import generate, save from utils import settings +voices = [ + "Adam", + "Antoni", + "Arnold", + "Bella", + "Domi", + "Elli", + "Josh", + "Rachel", + "Sam", +] class elevenlabs: def __init__(self): self.max_chars = 5000 - self.voices = ["Adam", "Antoni", "Arnold", "Bella", "Domi", "Elli", "Josh", "Rachel", "Sam"] + self.voices = voices - def run( - self, - text: str, - filepath: str, - random_voice=False, - ): - voice_name = settings.config["settings"]["tts"]["elevenlabs_voice_name"] - if voice_name == "": - voice_name = "Bella" - raise ValueError( - "set elevenlabs name value to a valid value, switching to default voice (Bella)" - ) + def run(self, text, filepath, random_voice: bool = False): if random_voice: - voice_name = self.randomvoice() + voice = self.randomvoice() + else: + if not settings.config["settings"]["tts"]["elevenlabs_voice_name"]: + print(f"Please set the config variable ELEVENLABS_VOICE_NAME to a valid voice. options are: {voices}. Using random voice.") + voice = self.randomvoice() + else: + voice = str( + settings.config["settings"]["tts"]["elevenlabs_voice_name"] + ).capitalize() if settings.config["settings"]["tts"]["elevenlabs_api_key"]: api_key = settings.config["settings"]["tts"]["elevenlabs_api_key"] @@ -34,7 +42,7 @@ class elevenlabs: audio = generate( api_key=api_key, text=text, - voice=voice_name, + voice=voice, model="eleven_monolingual_v1" ) save(