duplexdataengine / infer.py
penguinfish1688's picture
Support user-provided speaker audio with a bundled reference encoder
ac37044 verified
Raw History Blame Contribute Delete
1.25 kB
"""Run the standalone public DuDE release."""
import argparse
import json
from pathlib import Path
from dude_tts import DuDE
if __name__ == '__main__':
p = argparse.ArgumentParser(description=__doc__)
p.add_argument('--model', default='penguinfish1688/duplexdataengine')
p.add_argument('--xml', required=True, help='Path to a dialogue XML file')
p.add_argument('--voice-a', default='voice_1', help='Speaker A reference audio path or included voice name')
p.add_argument('--voice-b', default='voice_2', help='Speaker B reference audio path or included voice name')
p.add_argument('--output', default='duplex.wav')
p.add_argument('--seed', type=int, default=20260922)
p.add_argument('--max-seconds', type=float, default=150.)
p.add_argument('--device', default='cuda')
args = p.parse_args()
model = DuDE.from_pretrained(args.model, device=args.device)
result = model.generate(Path(args.xml).read_text(), args.voice_a, args.voice_b,
seed=args.seed, max_seconds=args.max_seconds)
result.save(args.output)
print(json.dumps(dict(output=str(Path(args.output).resolve()), sample_rate=result.sample_rate,
eos=result.eos, frames=result.frames)))