yangrongzhao
Inflect-Nano-v2 for AX650 NPU3
a44ca9d
Raw
History Blame Contribute Delete
2.29 kB
"""Inflect-Nano-v2 TTS CLI
Usage:
python -m inflect_tts_sdk --text "Hello world" --output output.wav
python -m inflect_tts_sdk --text "Hello world" --output output.wav --speed 1.2 --variation 0.5
"""
import argparse, sys, time
from pathlib import Path
def main():
parser = argparse.ArgumentParser(
description="Inflect-Nano-v2 TTS CLI for AX650 NPU3",
formatter_class=argparse.RawDescriptionHelpFormatter,
epilog="""Examples:
python -m inflect_tts_sdk --text "Hello world" --output hello.wav
python -m inflect_tts_sdk --text "Hello!" --speed 1.5 --variation 0.3
python -m inflect_tts_sdk --text "Hello!" --model-dir /path/to/models
""")
parser.add_argument("--text", required=True, help="Input text to synthesize")
parser.add_argument("--output", required=True, help="Output WAV file path")
parser.add_argument("--model-dir", default=None,
help="Model directory (default: auto-detect)")
parser.add_argument("--speed", type=float, default=1.0,
help="Playback speed 0.5-2.0 (default: 1.0)")
parser.add_argument("--variation", type=float, default=0.667,
help="Voice variation 0.0-1.0 (default: 0.667)")
parser.add_argument("--seed", type=int, default=0,
help="Random seed (default: 0)")
args = parser.parse_args()
print(f"🎀 Text: {args.text}")
print(f"πŸ“ Output: {args.output}")
sys.path.insert(0, str(Path(__file__).resolve().parent))
from tts_engine import InflectTTSEngine
try:
engine = InflectTTSEngine(model_dir=args.model_dir)
except Exception as e:
print(f"❌ Failed to init engine: {e}")
print(" Make sure axmodels are at models/ or use --model-dir")
sys.exit(1)
t0 = time.perf_counter()
engine.save(
args.text, args.output,
speed=args.speed,
variation=args.variation,
seed=args.seed,
)
elapsed = time.perf_counter() - t0
import soundfile as sf
info = sf.info(args.output)
rtf = elapsed / info.duration if info.duration > 0 else 0
print(f"βœ… Done! {info.duration:.2f}s audio, {elapsed:.2f}s wall, RTF={rtf:.3f}x")
print(f"πŸ”Š {args.output}")
if __name__ == "__main__":
main()