File size: 1,631 Bytes
de996a0 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | #!/usr/bin/env python3
"""MOSS-TTS-Nano 中文语音合成 demo。
用法:
python demo.py --text "欢迎关注模思智能" [--out out.wav] [--provider auto]
"""
from __future__ import annotations
import argparse
import sys
from pathlib import Path
ROOT = Path(__file__).resolve().parent
sys.path.insert(0, str(ROOT))
from moss_tts_sdk import MossTTSNano # noqa: E402
def main():
ap = argparse.ArgumentParser()
ap.add_argument("--text", default="欢迎关注模思智能、上海创智学院与复旦大学自然语言处理实验室。")
ap.add_argument("--out", default=str(ROOT.parent.parent / "out.wav"))
ap.add_argument("--model-dir", default=str(ROOT.parent.parent / "models"))
ap.add_argument("--provider", default="auto", choices=["auto", "axengine", "onnxruntime"])
ap.add_argument("--max-frames", type=int, default=375)
ap.add_argument("--seed", type=int, default=None)
args = ap.parse_args()
print(f"[demo] loading model from {args.model_dir} (provider={args.provider}) ...")
tts = MossTTSNano(args.model_dir, provider=args.provider)
print(f"[demo] decoding provider: {tts.decoder['type']}")
print(f"[demo] synthesizing: {args.text}")
result = tts.synthesize(args.text, args.out, max_new_frames=args.max_frames, seed=args.seed)
print(f"[demo] done: {result['audio_path']}")
print(f"[demo] duration={result['duration_s']:.2f}s frames={result['frames']} "
f"provider={result['provider']} llm={result.get('llm_backend', 'cpu')} "
f"sr={result['sample_rate']} channels={result['channels']}")
if __name__ == "__main__":
main()
|