Spaces:
Sleeping
Sleeping
Michael Hu
commited on
Commit
·
451d2b1
1
Parent(s):
feebf14
fix gradio too many requests exception
Browse files- utils/tts.py +2 -49
utils/tts.py
CHANGED
|
@@ -20,13 +20,7 @@ try:
|
|
| 20 |
except AttributeError as e:
|
| 21 |
# Specifically catch the EspeakWrapper.set_data_path error
|
| 22 |
if "EspeakWrapper" in str(e) and "set_data_path" in str(e):
|
| 23 |
-
logger.warning("Kokoro import failed due to EspeakWrapper.set_data_path issue")
|
| 24 |
-
logger.info("Try to use Kokoro FastAPI server")
|
| 25 |
-
client = Client("Remsky/Kokoro-TTS-Zero")
|
| 26 |
-
result = client.predict(
|
| 27 |
-
api_name="/lambda"
|
| 28 |
-
)
|
| 29 |
-
logger.debug(f"result get back from Kokora FastAPI server: {result}")
|
| 30 |
if result:
|
| 31 |
KOKORO_SPACE_AVAILABLE = True
|
| 32 |
else:
|
|
@@ -36,47 +30,6 @@ except AttributeError as e:
|
|
| 36 |
except ImportError:
|
| 37 |
logger.warning("Kokoro TTS engine is not available")
|
| 38 |
|
| 39 |
-
# Try to import Dia as fallback
|
| 40 |
-
# if not KOKORO_AVAILABLE:
|
| 41 |
-
# try:
|
| 42 |
-
# logger.info("Attempting to import Dia TTS engine as fallback")
|
| 43 |
-
# try:
|
| 44 |
-
# # Check if required dependencies for Dia are available
|
| 45 |
-
# import torch
|
| 46 |
-
# logger.info("PyTorch is available for Dia TTS")
|
| 47 |
-
# except ImportError as torch_err:
|
| 48 |
-
# logger.error(f"PyTorch dependency for Dia TTS is missing: {str(torch_err)}")
|
| 49 |
-
# raise ImportError(f"PyTorch dependency required for Dia TTS: {str(torch_err)}") from torch_err
|
| 50 |
-
|
| 51 |
-
# # Try to import the Dia module
|
| 52 |
-
# try:
|
| 53 |
-
# from utils.tts_dia import _get_model as get_dia_model
|
| 54 |
-
# logger.info("Successfully imported Dia TTS module")
|
| 55 |
-
|
| 56 |
-
# # Verify the model can be accessed
|
| 57 |
-
# logger.info("Verifying Dia model can be accessed")
|
| 58 |
-
# model_info = get_dia_model.__module__
|
| 59 |
-
# logger.info(f"Dia model module: {model_info}")
|
| 60 |
-
|
| 61 |
-
# DIA_AVAILABLE = True
|
| 62 |
-
# logger.info("Dia TTS engine is available as fallback")
|
| 63 |
-
# except ImportError as module_err:
|
| 64 |
-
# logger.error(f"Failed to import Dia TTS module: {str(module_err)}")
|
| 65 |
-
# logger.error(f"Module path: {module_err.__traceback__.tb_frame.f_globals.get('__file__', 'unknown')}")
|
| 66 |
-
# raise
|
| 67 |
-
# except AttributeError as attr_err:
|
| 68 |
-
# logger.error(f"Dia TTS module attribute error: {str(attr_err)}")
|
| 69 |
-
# logger.error(f"This may indicate the module exists but has incorrect structure")
|
| 70 |
-
# raise
|
| 71 |
-
# except ImportError as e:
|
| 72 |
-
# logger.error(f"Dia TTS engine is not available due to import error: {str(e)}")
|
| 73 |
-
# logger.error(f"Import path attempted: {e.__traceback__.tb_frame.f_globals.get('__name__', 'unknown')}")
|
| 74 |
-
# logger.warning("Will use dummy TTS implementation as fallback")
|
| 75 |
-
# except Exception as e:
|
| 76 |
-
# logger.error(f"Unexpected error initializing Dia TTS: {str(e)}")
|
| 77 |
-
# logger.error(f"Error type: {type(e).__name__}")
|
| 78 |
-
# logger.error("Will use dummy TTS implementation as fallback")
|
| 79 |
-
|
| 80 |
class TTSEngine:
|
| 81 |
def __init__(self, lang_code='z'):
|
| 82 |
"""Initialize TTS Engine with Kokoro or Dia as fallback
|
|
@@ -108,7 +61,7 @@ class TTSEngine:
|
|
| 108 |
self.engine_type = "kokoro_space"
|
| 109 |
logger.info("TTS engine successfully initialized with Kokoro FastAPI server")
|
| 110 |
except Exception as kokoro_err:
|
| 111 |
-
logger.error(f"Failed to initialize Kokoro
|
| 112 |
logger.error(f"Error type: {type(kokoro_err).__name__}")
|
| 113 |
logger.info("Will try to fall back to Dia TTS engine")
|
| 114 |
|
|
|
|
| 20 |
except AttributeError as e:
|
| 21 |
# Specifically catch the EspeakWrapper.set_data_path error
|
| 22 |
if "EspeakWrapper" in str(e) and "set_data_path" in str(e):
|
| 23 |
+
logger.warning("Kokoro import failed due to EspeakWrapper.set_data_path issue, falling back to Kokoro FastAPI server")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 24 |
if result:
|
| 25 |
KOKORO_SPACE_AVAILABLE = True
|
| 26 |
else:
|
|
|
|
| 30 |
except ImportError:
|
| 31 |
logger.warning("Kokoro TTS engine is not available")
|
| 32 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
class TTSEngine:
|
| 34 |
def __init__(self, lang_code='z'):
|
| 35 |
"""Initialize TTS Engine with Kokoro or Dia as fallback
|
|
|
|
| 61 |
self.engine_type = "kokoro_space"
|
| 62 |
logger.info("TTS engine successfully initialized with Kokoro FastAPI server")
|
| 63 |
except Exception as kokoro_err:
|
| 64 |
+
logger.error(f"Failed to initialize Kokoro space: {str(kokoro_err)}")
|
| 65 |
logger.error(f"Error type: {type(kokoro_err).__name__}")
|
| 66 |
logger.info("Will try to fall back to Dia TTS engine")
|
| 67 |
|