| from __future__ import annotations | |
| import argparse | |
| from .infer import load_generator, write_wave | |
| def build_parser() -> argparse.ArgumentParser: | |
| parser = argparse.ArgumentParser(prog="wfloat-tts") | |
| parser.add_argument("--model", "--checkpoint", dest="model", default="model.safetensors") | |
| parser.add_argument("--config", default="config.json") | |
| parser.add_argument("--text", required=True) | |
| parser.add_argument("--sid", type=int, default=0) | |
| parser.add_argument("--emotion", default="neutral") | |
| parser.add_argument("--intensity", type=float, default=0.5) | |
| parser.add_argument("--noise-scale", type=float, default=None) | |
| parser.add_argument("--length-scale", type=float, default=None) | |
| parser.add_argument("--noise-w", type=float, default=None) | |
| parser.add_argument("--device", default="cpu") | |
| parser.add_argument("--output", required=True) | |
| return parser | |
| def main() -> None: | |
| parser = build_parser() | |
| args = parser.parse_args() | |
| generator = load_generator( | |
| checkpoint_path=args.model, | |
| config_path=args.config, | |
| device=args.device, | |
| ) | |
| audio = generator.generate( | |
| text=args.text, | |
| sid=args.sid, | |
| emotion=args.emotion, | |
| intensity=args.intensity, | |
| noise_scale=args.noise_scale, | |
| length_scale=args.length_scale, | |
| noise_w=args.noise_w, | |
| ) | |
| write_wave(args.output, audio.samples, audio.sample_rate) | |
| if __name__ == "__main__": | |
| main() | |