Spaces:
Runtime error
Runtime error
| import os | |
| import platform | |
| import subprocess | |
| import gradio as gr | |
| from shortGPT.api_utils.eleven_api import ElevenLabsAPI | |
| from shortGPT.config.api_db import ApiKeyManager | |
| from shortGPT.config.asset_db import AssetDatabase | |
| class AssetComponentsUtils: | |
| EDGE_TTS = "Free EdgeTTS (lower quality)" | |
| COQUI_TTS = "Free CoquiTTS (needs a powerful GPU)" | |
| ELEVEN_TTS = "ElevenLabs(Very High Quality)" | |
| COQUI_TTS_VOICES = [ | |
| "Claribel Dervla", | |
| "Daisy Studious", | |
| "Gracie Wise", | |
| "Tammie Ema", | |
| "Alison Dietlinde", | |
| "Ana Florence", | |
| "Annmarie Nele", | |
| "Asya Anara", | |
| "Brenda Stern", | |
| "Gitta Nikolina", | |
| "Henriette Usha", | |
| "Sofia Hellen", | |
| "Tammy Grit", | |
| "Tanja Adelina", | |
| "Vjollca Johnnie", | |
| "Andrew Chipper", | |
| "Badr Odhiambo", | |
| "Dionisio Schuyler", | |
| "Royston Min", | |
| "Viktor Eka", | |
| "Abrahan Mack", | |
| "Adde Michal", | |
| "Baldur Sanjin", | |
| "Craig Gutsy", | |
| "Damien Black", | |
| "Gilberto Mathias", | |
| "Ilkin Urbano", | |
| "Kazuhiko Atallah", | |
| "Ludvig Milivoj", | |
| "Suad Qasim", | |
| "Torcull Diarmuid", | |
| "Viktor Menelaos", | |
| "Zacharie Aimilios", | |
| "Nova Hogarth", | |
| "Maja Ruoho", | |
| "Uta Obando", | |
| "Lidiya Szekeres", | |
| "Chandra MacFarland", | |
| "Szofi Granger", | |
| "Camilla Holmström", | |
| "Lilya Stainthorpe", | |
| "Zofija Kendrick", | |
| "Narelle Moon", | |
| "Barbora MacLean", | |
| "Alexandra Hisakawa", | |
| "Alma María", | |
| "Rosemary Okafor", | |
| "Ige Behringer", | |
| "Filip Traverse", | |
| "Damjan Chapman", | |
| "Wulf Carlevaro", | |
| "Aaron Dreschner", | |
| "Kumar Dahl", | |
| "Eugenio Mataracı", | |
| "Ferran Simen", | |
| "Xavier Hayasaka", | |
| "Luis Moray", | |
| "Marcos Rudaski", | |
| ] | |
| instance_background_video_checkbox = None | |
| instance_background_music_checkbox = None | |
| instance_voiceChoice: dict[gr.Radio] = {} | |
| instance_voiceChoiceTranslation: dict[gr.Radio] = {} | |
| def getBackgroundVideoChoices(cls): | |
| df = AssetDatabase.get_df() | |
| choices = list(df.loc["background video" == df["type"]]["name"])[:20] | |
| return choices | |
| def getBackgroundMusicChoices(cls): | |
| df = AssetDatabase.get_df() | |
| choices = list(df.loc["background music" == df["type"]]["name"])[:20] | |
| return choices | |
| def getElevenlabsVoices(cls): | |
| api_key = ApiKeyManager.get_api_key("ELEVEN LABS") | |
| voices = list(reversed(ElevenLabsAPI(api_key).get_voices().keys())) | |
| return voices | |
| def start_file(cls, path): | |
| if platform.system() == "Windows": | |
| os.startfile(path) | |
| elif platform.system() == "Darwin": | |
| subprocess.Popen(["open", path]) | |
| else: | |
| subprocess.Popen(["xdg-open", path]) | |
| def background_video_checkbox(cls): | |
| if cls.instance_background_video_checkbox is None: | |
| cls.instance_background_video_checkbox = gr.CheckboxGroup( | |
| choices=cls.getBackgroundVideoChoices(), | |
| interactive=True, | |
| label="Choose background video", | |
| ) | |
| return cls.instance_background_video_checkbox | |
| def background_music_checkbox(cls): | |
| if cls.instance_background_music_checkbox is None: | |
| cls.instance_background_music_checkbox = gr.CheckboxGroup( | |
| choices=cls.getBackgroundMusicChoices(), | |
| interactive=True, | |
| label="Choose background music", | |
| ) | |
| return cls.instance_background_music_checkbox | |
| def voiceChoice(cls, provider: str = None): | |
| if provider == None: | |
| provider = cls.ELEVEN_TTS | |
| if cls.instance_voiceChoice.get(provider, None) is None: | |
| if provider == cls.ELEVEN_TTS: | |
| print("getting eleven voices") | |
| cls.instance_voiceChoice[provider] = gr.Radio( | |
| cls.getElevenlabsVoices(), | |
| label="Elevenlabs voice", | |
| value="Antoni", | |
| interactive=True, | |
| ) | |
| elif provider == cls.COQUI_TTS: | |
| print("getting coqui voices") | |
| cls.instance_voiceChoice[provider] = gr.Dropdown( | |
| cls.COQUI_TTS_VOICES, | |
| label="CoquiTTS voice", | |
| value="Ana Florence", | |
| interactive=True, | |
| ) | |
| return cls.instance_voiceChoice[provider] | |
| def voiceChoiceTranslation(cls, provider: str = None): | |
| if provider == None: | |
| provider = cls.ELEVEN_TTS | |
| if cls.instance_voiceChoiceTranslation.get(provider, None) is None: | |
| if provider == cls.ELEVEN_TTS: | |
| cls.instance_voiceChoiceTranslation[provider] = gr.Radio( | |
| cls.getElevenlabsVoices(), | |
| label="Elevenlabs voice", | |
| value="Antoni", | |
| interactive=True, | |
| ) | |
| elif provider == cls.COQUI_TTS: | |
| cls.instance_voiceChoiceTranslation[provider] = gr.Radio( | |
| cls.COQUI_TTS_VOICES, | |
| label="CoquiTTS voice", | |
| value="Ana Florence", | |
| interactive=True, | |
| ) | |
| return cls.instance_voiceChoiceTranslation[provider] | |