akshan-main commited on
Commit
dd5d7e4
·
verified ·
1 Parent(s): 4416929

mirror config.py

Browse files
Files changed (1) hide show
  1. config.py +54 -0
config.py ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """glossolalia: Coherence Dial configuration."""
2
+
3
+ from pathlib import Path
4
+
5
+ PROJECT_ROOT = Path(__file__).resolve().parent
6
+ DATA_ROOT = PROJECT_ROOT / "data"
7
+ ADAPTERS_ROOT = PROJECT_ROOT / "adapters"
8
+ STATIC_ROOT = PROJECT_ROOT / "static"
9
+
10
+ # TTS base + adapter
11
+ TTS_MODEL_HF = "SWivid/F5-TTS" # F5-TTS, ~336M, voice-cloning + IPA input
12
+ TTS_MODEL_VARIANT = "F5TTS_v1_Base"
13
+
14
+ LORA_CONFIG = {
15
+ "r": 16,
16
+ "lora_alpha": 16,
17
+ "lora_dropout": 0.05,
18
+ "target_modules": ["to_q", "to_k", "to_v", "to_out.0"],
19
+ }
20
+
21
+ # Dial config: control token = "<CONTROL_STEM> <LEVEL_WORDS[level]>"
22
+ CONTROL_STEM = "tongues"
23
+ LEVEL_WORDS = ["zero", "one", "two", "three", "four"]
24
+ LEVEL_P = [0.0, 0.25, 0.50, 0.75, 1.0] # phoneme substitution probability per level
25
+
26
+ # Voice presets (reference clips for F5-TTS zero-shot cloning at inference).
27
+ # Names describe perceived voice character; f0 / accent / license noted for provenance.
28
+ # All clips are CC-BY-4.0, MIT, or Public Domain. Safe to redistribute on a public HF Space.
29
+ # See DECISIONS.md 2026-06-12 voice-preset entry for license sources.
30
+ VOICE_PRESETS = {
31
+ "v1": {"name": "warm, calm", "wav": "data/voices/v1.wav", "ref_text": "data/voices/v1.txt"},
32
+ "v2": {"name": "high and arch", "wav": "data/voices/v2.wav", "ref_text": "data/voices/v2.txt"},
33
+ "v3": {"name": "deep, slow", "wav": "data/voices/v3.wav", "ref_text": "data/voices/v3.txt"},
34
+ "v4": {"name": "theatrical", "wav": "data/voices/v4.wav", "ref_text": "data/voices/v4.txt"},
35
+ "v5": {"name": "tense, anxious", "wav": "data/voices/v5.wav", "ref_text": "data/voices/v5.txt"},
36
+ "v6": {"name": "haunted letter", "wav": "data/voices/v6.wav", "ref_text": "data/voices/v6.txt"},
37
+ "v7": {"name": "gentle storyteller", "wav": "data/voices/v7.wav", "ref_text": "data/voices/v7.txt"},
38
+ "v8": {"name": "fevered poet", "wav": "data/voices/v8.wav", "ref_text": "data/voices/v8.txt"},
39
+ "v9": {"name": "stately reader", "wav": "data/voices/v9.wav", "ref_text": "data/voices/v9.txt"},
40
+ }
41
+
42
+ # Validation gates
43
+ WHISPER_MODEL = "base.en"
44
+ RESEMBLYZER_MIN_COSINE = 0.85
45
+ SPEARMAN_GATE = 0.80 # WER vs level Spearman; positive (WER rises as dial rises)
46
+
47
+ # Audio
48
+ SAMPLE_RATE = 24000 # F5-TTS native
49
+ GEN_MAX_SEC = 30
50
+
51
+ # HF repos
52
+ HF_DATA_REPO = "akshan-main/glossolalia-inputs"
53
+ HF_LORA_REPO = "akshan-main/glossolalia-dial-lora"
54
+ HF_SPACE_REPO = "akshan-main/glossolalia"