commit
164e584b97
@ -0,0 +1,51 @@
|
||||
import random
|
||||
|
||||
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 = 2500
|
||||
self.voices = voices
|
||||
|
||||
def run(self, text, filepath, random_voice: bool = False):
|
||||
if 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"]
|
||||
else:
|
||||
raise ValueError(
|
||||
"You didn't set an Elevenlabs API key! Please set the config variable ELEVENLABS_API_KEY to a valid API key."
|
||||
)
|
||||
|
||||
audio = generate(
|
||||
api_key=api_key,
|
||||
text=text,
|
||||
voice=voice,
|
||||
model="eleven_multilingual_v1"
|
||||
)
|
||||
save(
|
||||
audio=audio,
|
||||
filename=filepath
|
||||
)
|
||||
|
||||
def randomvoice(self):
|
||||
return random.choice(self.voices)
|
Loading…
Reference in new issue