Spaces:
Running on Zero
Running on Zero
| from pathlib import Path | |
| import uuid | |
| from voxcpm import VoxCPM | |
| import soundfile as sf | |
| def generate_voice(text, out_dir="outputs", voice_direction=None): | |
| model = VoxCPM.from_pretrained( | |
| "openbmb/VoxCPM2", | |
| load_denoiser=False, | |
| ) | |
| style = voice_direction or "Deep, warm, cinematic narrator; slow, dramatic, dry humor." | |
| wav = model.generate( | |
| text=f"(Middle-aged black male, deep base and baritone, slow, {style}) {text}", | |
| cfg_value=2.0, | |
| inference_timesteps=10, | |
| ) | |
| Path(out_dir).mkdir(parents=True, exist_ok=True) | |
| file_name = Path(out_dir) / f"{uuid.uuid4()}.wav" | |
| sf.write(str(file_name), wav, model.tts_model.sample_rate) | |
| print(f"saved: {file_name}") | |
| return str(file_name) | |