Spaces:
Build error
Build error
from shortGPT.api_utils.eleven_api import ElevenLabsAPI | |
from shortGPT.audio.voice_module import VoiceModule | |
class ElevenLabsVoiceModule(VoiceModule): | |
def __init__(self, api_key, voiceName, checkElevenCredits=False): | |
self.api_key = api_key | |
self.voiceName = voiceName | |
self.remaining_credits = None | |
self.eleven_labs_api = ElevenLabsAPI(self.api_key) | |
self.update_usage() | |
if checkElevenCredits and self.get_remaining_characters() < 1200: | |
raise Exception(f"Your ElevenLabs API KEY doesn't have enough credits ({self.remaining_credits} character remaining). Minimum required: 1200 characters (equivalent to a 45sec short)") | |
super().__init__() | |
def update_usage(self): | |
self.remaining_credits = self.eleven_labs_api.get_remaining_characters() | |
return self.remaining_credits | |
def get_remaining_characters(self): | |
return self.remaining_credits if self.remaining_credits else self.eleven_labs_api.get_remaining_characters() | |
def generate_voice(self, text, outputfile): | |
if self.get_remaining_characters() >= len(text): | |
file_path =self.eleven_labs_api.generate_voice(text=text, character=self.voiceName, filename=outputfile) | |
self.update_usage() | |
return file_path | |
else: | |
raise Exception(f"You cannot generate {len(text)} characters as your ElevenLabs key has only {self.remaining_credits} characters remaining") | |