File size: 2,723 Bytes
4008208
b9a47ba
 
7f44fc3
 
b9a47ba
 
 
 
2404bb8
 
 
 
 
 
 
 
 
b9a47ba
 
 
2404bb8
b9a47ba
 
967c1e0
4008208
 
1458ba2
72a7954
4008208
72a7954
4008208
 
 
 
b9a47ba
4008208
72a7954
 
 
 
 
b9a47ba
2404bb8
4008208
 
2404bb8
4008208
2404bb8
b9a47ba
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
from datetime import datetime
from os import getenv
from pathlib import Path
from warnings import filterwarnings

from dotenv import load_dotenv
from kokoro import KPipeline
from loguru import logger
from torch import cuda

filterwarnings(
    action="ignore",
    message="dropout option adds dropout after all but last recurrent layer",
)
filterwarnings(
    action="ignore",
    message="`torch.nn.utils.weight_norm` is deprecated",
)

load_dotenv()

DEBUG: bool = getenv(key="DEBUG", default="True").lower() == "true"
SERVER_NAME: str = getenv(key="GRADIO_SERVER_NAME", default="localhost")
SERVER_PORT: int = int(getenv(key="GRADIO_SERVER_PORT", default="8080"))
PIPELINE: KPipeline = KPipeline(lang_code="a", repo_id="hexgrad/Kokoro-82M")
CURRENT_DATE: str = datetime.now().strftime(format="%Y-%m-%d_%H-%M-%S")

BASE_DIR: Path = Path.cwd()
RESULTS_DIR: Path = BASE_DIR / "results"
LOG_DIR: Path = BASE_DIR / "logs"
AUDIO_FILE_PATH: Path = RESULTS_DIR / f"{CURRENT_DATE}.wav"
LOG_FILE_PATH: Path = LOG_DIR / f"{CURRENT_DATE}.log"

RESULTS_DIR.mkdir(exist_ok=True)
LOG_DIR.mkdir(exist_ok=True)

CUDA_AVAILABLE: bool = cuda.is_available()
logger.add(
    LOG_FILE_PATH,
    format="{time:YYYY-MM-DD at HH:mm:ss} | {level} | {message}",
    colorize=True,
)
logger.info(f"CUDA Available: {CUDA_AVAILABLE}")
logger.info(f"Current date: {CURRENT_DATE}")
logger.info(f"Base directory: {BASE_DIR}")
logger.info(f"Results directory: {RESULTS_DIR}")
logger.info(f"Log directory: {LOG_DIR}")
logger.info(f"Audio file path: {AUDIO_FILE_PATH}")
logger.info(f"Log file path: {LOG_FILE_PATH}")

CHOICES: dict[str, str] = {
    "πŸ‡ΊπŸ‡Έ 🚺 Heart ❀️": "af_heart",
    "πŸ‡ΊπŸ‡Έ 🚺 Bella πŸ”₯": "af_bella",
    "πŸ‡ΊπŸ‡Έ 🚺 Nicole 🎧": "af_nicole",
    "πŸ‡ΊπŸ‡Έ 🚺 Aoede": "af_aoede",
    "πŸ‡ΊπŸ‡Έ 🚺 Kore": "af_kore",
    "πŸ‡ΊπŸ‡Έ 🚺 Sarah": "af_sarah",
    "πŸ‡ΊπŸ‡Έ 🚺 Nova": "af_nova",
    "πŸ‡ΊπŸ‡Έ 🚺 Sky": "af_sky",
    "πŸ‡ΊπŸ‡Έ 🚺 Alloy": "af_alloy",
    "πŸ‡ΊπŸ‡Έ 🚺 Jessica": "af_jessica",
    "πŸ‡ΊπŸ‡Έ 🚺 River": "af_river",
    "πŸ‡ΊπŸ‡Έ 🚹 Michael": "am_michael",
    "πŸ‡ΊπŸ‡Έ 🚹 Fenrir": "am_fenrir",
    "πŸ‡ΊπŸ‡Έ 🚹 Puck": "am_puck",
    "πŸ‡ΊπŸ‡Έ 🚹 Echo": "am_echo",
    "πŸ‡ΊπŸ‡Έ 🚹 Eric": "am_eric",
    "πŸ‡ΊπŸ‡Έ 🚹 Liam": "am_liam",
    "πŸ‡ΊπŸ‡Έ 🚹 Onyx": "am_onyx",
    "πŸ‡ΊπŸ‡Έ 🚹 Santa": "am_santa",
    "πŸ‡ΊπŸ‡Έ 🚹 Adam": "am_adam",
    "πŸ‡¬πŸ‡§ 🚺 Emma": "bf_emma",
    "πŸ‡¬πŸ‡§ 🚺 Isabella": "bf_isabella",
    "πŸ‡¬πŸ‡§ 🚺 Alice": "bf_alice",
    "πŸ‡¬πŸ‡§ 🚺 Lily": "bf_lily",
    "πŸ‡¬πŸ‡§ 🚹 George": "bm_george",
    "πŸ‡¬πŸ‡§ 🚹 Fable": "bm_fable",
    "πŸ‡¬πŸ‡§ 🚹 Lewis": "bm_lewis",
    "πŸ‡¬πŸ‡§ 🚹 Daniel": "bm_daniel",
}