Add profile presets and min-p controls, embeddings and VoxCPM workers
This commit is contained in:
1 parent
74dd2ed8ba
commit
a7b30b62d2
32 files changed
+615
-64
No files matched your search
@@ -0,0 +1,23 @@
|
||||
"""Offline one-request VoxCPM2 worker. Never persists prompt text or logs media."""
|
||||
import contextlib,json,sys
|
||||
from pathlib import Path
|
||||
|
||||
def main():
|
||||
root=Path(sys.argv[1]);request=json.loads(sys.stdin.read());phase='Modell laden'
|
||||
try:
|
||||
# Libraries print progress and occasionally text; discard rather than record it.
|
||||
with open('/dev/null','w') as sink,contextlib.redirect_stdout(sink),contextlib.redirect_stderr(sink):
|
||||
import torch,soundfile as sf
|
||||
from voxcpm import VoxCPM
|
||||
model=VoxCPM.from_pretrained(str(root/'model'),load_denoiser=False,local_files_only=True,optimize=False,device='cuda:0')
|
||||
(root/'phase').write_text('Stimme wird erzeugt');phase='Stimme erzeugen'
|
||||
wave=model.generate(text=request['text'],reference_wav_path=str(root/'reference.wav') if (root/'reference.wav').exists() else None,cfg_value=request['cfg'],inference_timesteps=request['steps'],max_len=2048,normalize=False,denoise=False,seed=request['seed'],retry_badcase_max_times=1)
|
||||
rate=model.tts_model.sample_rate
|
||||
sf.write(root/'result.wav',wave,rate,subtype='PCM_16')
|
||||
result=dict(ok=True,sample_rate=rate,duration=len(wave)/rate)
|
||||
except Exception as exc:
|
||||
oom='outofmemory' in type(exc).__name__.lower() or 'out of memory' in str(exc).lower()
|
||||
result=dict(ok=False,error='GPU-Speicher reicht nicht aus. Andere Deck-Modelle entladen oder andere GPU wählen.' if oom else 'VoxCPM2: '+phase+' fehlgeschlagen ('+type(exc).__name__+'). Laufzeit und Komponenten prüfen.')
|
||||
(root/'result.json').write_text(json.dumps(result))
|
||||
return 0 if result['ok'] else 1
|
||||
if __name__=='__main__':sys.exit(main())
|
||||
Reference in new issue
Block a user