Spaces:
Sleeping
Sleeping
Commit ·
662e9fa
1
Parent(s): 0eda9c2
v2.2
Browse files- .gitignore +3 -1
- backend/_probe_models.py +0 -76
.gitignore
CHANGED
|
@@ -12,4 +12,6 @@ inter
|
|
| 12 |
Resume.pdf
|
| 13 |
LANGGRAPH_AND_TOOLS.md
|
| 14 |
WORKFLOW.md
|
| 15 |
-
voice_name_list_xtts.txt
|
|
|
|
|
|
|
|
|
| 12 |
Resume.pdf
|
| 13 |
LANGGRAPH_AND_TOOLS.md
|
| 14 |
WORKFLOW.md
|
| 15 |
+
voice_name_list_xtts.txt
|
| 16 |
+
|
| 17 |
+
|
backend/_probe_models.py
DELETED
|
@@ -1,76 +0,0 @@
|
|
| 1 |
-
import asyncio
|
| 2 |
-
import os
|
| 3 |
-
import tempfile
|
| 4 |
-
import time
|
| 5 |
-
|
| 6 |
-
CANDIDATES = [
|
| 7 |
-
("tts_models/en/ljspeech/speedy-speech", None),
|
| 8 |
-
("tts_models/en/ljspeech/vits", None),
|
| 9 |
-
("tts_models/en/ljspeech/glow-tts", None),
|
| 10 |
-
("tts_models/en/ljspeech/tacotron2-DDC", None),
|
| 11 |
-
("tts_models/en/ljspeech/fast_pitch", None),
|
| 12 |
-
("tts_models/en/vctk/vits", "AUTO_SPEAKERS"),
|
| 13 |
-
("tts_models/en/sam/tacotron-DDC", None),
|
| 14 |
-
("tts_models/en/blizzard2013/capacitron-t2-c50", None),
|
| 15 |
-
("tts_models/en/jenny/jenny", None),
|
| 16 |
-
]
|
| 17 |
-
|
| 18 |
-
TEST_TEXT = "Hello, this is a short interview voice quality sample."
|
| 19 |
-
|
| 20 |
-
async def synth_once(tts, speaker=None):
|
| 21 |
-
fd, path = tempfile.mkstemp(suffix=".wav")
|
| 22 |
-
os.close(fd)
|
| 23 |
-
t0 = time.perf_counter()
|
| 24 |
-
try:
|
| 25 |
-
kwargs = {"text": TEST_TEXT, "file_path": path}
|
| 26 |
-
if speaker:
|
| 27 |
-
kwargs["speaker"] = speaker
|
| 28 |
-
await asyncio.to_thread(lambda: tts.tts_to_file(**kwargs))
|
| 29 |
-
elapsed = time.perf_counter() - t0
|
| 30 |
-
size = os.path.getsize(path)
|
| 31 |
-
return True, elapsed, size, None
|
| 32 |
-
except Exception as e:
|
| 33 |
-
return False, 0.0, 0, str(e)
|
| 34 |
-
finally:
|
| 35 |
-
if os.path.exists(path):
|
| 36 |
-
os.remove(path)
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
async def run():
|
| 40 |
-
from TTS.api import TTS
|
| 41 |
-
|
| 42 |
-
for model_name, speaker_mode in CANDIDATES:
|
| 43 |
-
print(f"MODEL {model_name}")
|
| 44 |
-
try:
|
| 45 |
-
t_load = time.perf_counter()
|
| 46 |
-
tts = await asyncio.to_thread(lambda: TTS(model_name=model_name, progress_bar=False, gpu=False))
|
| 47 |
-
print(f" LOAD_OK {time.perf_counter() - t_load:.2f}s")
|
| 48 |
-
|
| 49 |
-
if speaker_mode == "AUTO_SPEAKERS":
|
| 50 |
-
speakers = list(getattr(tts, "speakers", []) or [])
|
| 51 |
-
if not speakers:
|
| 52 |
-
print(" NO_SPEAKERS_FOUND")
|
| 53 |
-
ok, elapsed, size, err = await synth_once(tts)
|
| 54 |
-
if ok:
|
| 55 |
-
print(f" SYNTH_OK elapsed={elapsed:.2f}s bytes={size}")
|
| 56 |
-
else:
|
| 57 |
-
print(f" SYNTH_FAIL {err}")
|
| 58 |
-
else:
|
| 59 |
-
print(f" SPEAKER_COUNT {len(speakers)}")
|
| 60 |
-
test_speakers = speakers[:12]
|
| 61 |
-
for spk in test_speakers:
|
| 62 |
-
ok, elapsed, size, err = await synth_once(tts, speaker=spk)
|
| 63 |
-
if ok:
|
| 64 |
-
print(f" SPEAKER_OK {spk} elapsed={elapsed:.2f}s bytes={size}")
|
| 65 |
-
else:
|
| 66 |
-
print(f" SPEAKER_FAIL {spk} err={err}")
|
| 67 |
-
else:
|
| 68 |
-
ok, elapsed, size, err = await synth_once(tts)
|
| 69 |
-
if ok:
|
| 70 |
-
print(f" SYNTH_OK elapsed={elapsed:.2f}s bytes={size}")
|
| 71 |
-
else:
|
| 72 |
-
print(f" SYNTH_FAIL {err}")
|
| 73 |
-
except Exception as e:
|
| 74 |
-
print(f" LOAD_FAIL {e}")
|
| 75 |
-
|
| 76 |
-
asyncio.run(run())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|