feat: add seed samples API endpoints
This commit is contained in:
parent
79d8d2cd96
commit
2ade7e1ca6
3
.gitignore
vendored
3
.gitignore
vendored
@ -21,6 +21,9 @@ config/voices.json*
|
||||
# Converted private audio (M4A → WAV, generated at runtime)
|
||||
config/converted/
|
||||
|
||||
# Seed finder pre-generated WAV samples (batch output, not source files)
|
||||
config/seed_samples/
|
||||
|
||||
# Editor backup files
|
||||
*.py~
|
||||
*.yml~
|
||||
|
||||
@ -175,5 +175,34 @@ async def set_voice_seed(request: Request):
|
||||
return JSONResponse({"ok": True, "voice": voice_name, "seed": seed})
|
||||
|
||||
|
||||
_SEED_SAMPLES_DIR = '/config/seed_samples'
|
||||
|
||||
|
||||
@openai_server.app.get('/seed-samples/{voice_name}')
|
||||
async def list_seed_samples(voice_name: str):
|
||||
"""Return a sorted list of seed numbers for which a pre-generated WAV exists."""
|
||||
import re as _re
|
||||
voice_dir = os.path.join(_SEED_SAMPLES_DIR, voice_name)
|
||||
if not os.path.isdir(voice_dir):
|
||||
return JSONResponse({"seeds": []})
|
||||
seeds = []
|
||||
for fname in os.listdir(voice_dir):
|
||||
m = _re.match(r'^seed_(\d+)\.wav$', fname)
|
||||
if m:
|
||||
seeds.append(int(m.group(1)))
|
||||
seeds.sort()
|
||||
return JSONResponse({"seeds": seeds})
|
||||
|
||||
|
||||
@openai_server.app.get('/seed-sample/{voice_name}/{seed}')
|
||||
async def get_seed_sample(voice_name: str, seed: int):
|
||||
"""Serve a pre-generated seed WAV file."""
|
||||
from fastapi.responses import FileResponse
|
||||
path = os.path.join(_SEED_SAMPLES_DIR, voice_name, f'seed_{seed:05d}.wav')
|
||||
if not os.path.isfile(path):
|
||||
raise HTTPException(status_code=404, detail=f"No sample for seed {seed}")
|
||||
return FileResponse(path, media_type='audio/wav')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
openai_server.main()
|
||||
|
||||
106
config/seed_samples_progress.log
Normal file
106
config/seed_samples_progress.log
Normal file
@ -0,0 +1,106 @@
|
||||
voices : 96
|
||||
seeds : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
|
||||
output : /config/seed_samples/
|
||||
total : ~1440 requests
|
||||
|
||||
[1/96] EN_F_NatashaNeural
|
||||
text: The system administrator successfully configured the customized Docker stacks and benchmar...
|
||||
seed 1 → OK (7.5s)
|
||||
seed 2 → OK (6.4s)
|
||||
seed 3 → OK (6.6s)
|
||||
seed 4 → OK (6.9s)
|
||||
seed 5 → OK (6.2s)
|
||||
seed 6 → OK (6.2s)
|
||||
seed 7 → OK (5.7s)
|
||||
seed 8 → OK (6.0s)
|
||||
seed 9 → OK (9.1s)
|
||||
seed 10 → OK (6.1s)
|
||||
seed 11 → OK (5.9s)
|
||||
seed 12 → OK (6.2s)
|
||||
seed 13 → OK (6.3s)
|
||||
seed 14 → OK (5.8s)
|
||||
seed 15 → OK (6.1s)
|
||||
→ 15/15 OK
|
||||
|
||||
[2/96] EN_M_WilliamNeural
|
||||
text: The system administrator successfully configured the customized Docker stacks and benchmar...
|
||||
seed 1 → OK (5.6s)
|
||||
seed 2 → OK (5.3s)
|
||||
seed 3 → OK (5.2s)
|
||||
seed 4 → OK (5.3s)
|
||||
seed 5 → OK (5.4s)
|
||||
seed 6 → OK (5.8s)
|
||||
seed 7 → OK (5.3s)
|
||||
seed 8 → OK (5.2s)
|
||||
seed 9 → OK (5.1s)
|
||||
seed 10 → OK (5.3s)
|
||||
seed 11 → OK (5.4s)
|
||||
seed 12 → OK (5.3s)
|
||||
seed 13 → OK (5.2s)
|
||||
seed 14 → OK (5.2s)
|
||||
seed 15 → OK (5.4s)
|
||||
→ 15/15 OK
|
||||
|
||||
[3/96] DE_5_28
|
||||
text: Die 3.500 neuen High-End Geräte für das Server-Update benötigen eine außergewöhnlich stark...
|
||||
seed 1 → OK (12.6s)
|
||||
seed 2 → OK (13.9s)
|
||||
seed 3 → OK (12.6s)
|
||||
seed 4 → OK (13.4s)
|
||||
seed 5 → OK (12.9s)
|
||||
seed 6 → OK (13.0s)
|
||||
seed 7 → OK (12.4s)
|
||||
seed 8 → OK (13.1s)
|
||||
seed 9 → OK (13.2s)
|
||||
seed 10 → OK (13.6s)
|
||||
seed 11 → OK (12.5s)
|
||||
seed 12 → OK (13.7s)
|
||||
seed 13 → OK (13.3s)
|
||||
seed 14 → OK (13.0s)
|
||||
seed 15 → OK (14.5s)
|
||||
→ 15/15 OK
|
||||
|
||||
[4/96] DE_Aliya_meine_Frau
|
||||
text: Die 3.500 neuen High-End Geräte für das Server-Update benötigen eine außergewöhnlich stark...
|
||||
seed 1 → OK (13.5s)
|
||||
seed 2 → OK (12.9s)
|
||||
seed 3 → OK (14.4s)
|
||||
seed 4 → OK (13.6s)
|
||||
seed 5 → OK (14.3s)
|
||||
seed 6 → OK (12.7s)
|
||||
seed 7 → OK (13.7s)
|
||||
seed 8 → OK (14.1s)
|
||||
seed 9 → OK (14.5s)
|
||||
seed 10 → OK (13.3s)
|
||||
seed 11 → OK (14.6s)
|
||||
seed 12 → OK (13.8s)
|
||||
seed 13 → OK (13.1s)
|
||||
seed 14 → OK (13.7s)
|
||||
seed 15 → OK (12.6s)
|
||||
→ 15/15 OK
|
||||
|
||||
[5/96] DE_Anke_Harnack_U_Bahn_Hamburg_Stimme
|
||||
text: Die 3.500 neuen High-End Geräte für das Server-Update benötigen eine außergewöhnlich stark...
|
||||
seed 1 → OK (15.6s)
|
||||
seed 2 → OK (14.4s)
|
||||
seed 3 → OK (14.6s)
|
||||
seed 4 → OK (15.8s)
|
||||
seed 5 → OK (14.0s)
|
||||
seed 6 → OK (29.5s)
|
||||
seed 7 → OK (46.9s)
|
||||
seed 8 → OK (75.1s)
|
||||
seed 9 → FAILED: HTTPConnectionPool(host='localhost', port=8000): Read timed out.
|
||||
seed 10 → OK (60.6s)
|
||||
seed 11 → OK (14.7s)
|
||||
seed 12 → OK (15.1s)
|
||||
seed 13 → OK (15.0s)
|
||||
seed 14 → OK (14.8s)
|
||||
seed 15 → OK (14.7s)
|
||||
→ 14/15 OK
|
||||
|
||||
[6/96] DE_Catrinja
|
||||
text: Die 3.500 neuen High-End Geräte für das Server-Update benötigen eine außergewöhnlich stark...
|
||||
seed 1 → OK (12.4s)
|
||||
seed 2 → OK (12.7s)
|
||||
seed 3 → OK (13.3s)
|
||||
seed 4 →
|
||||
Loading…
Reference in New Issue
Block a user