import subprocess
from pathlib import Path
# ========== 路径 ==========
BASE_DIR = Path(__file__).parent
model_path = BASE_DIR / "model" / "zh_CN-huayan-medium.onnx"
output_path = BASE_DIR / "output.wav"
text = "你好,这是 Piper 离线文字转语音完整测试。"
# ========== Piper CLI 调用 ==========
cmd = [
"piper",
"--model", str(model_path),
"--output_file", str(output_path)
]
# Piper 从 stdin 读取文本
process = subprocess.run(
cmd,
input=text.encode("utf-8"),
stdout=subprocess.PIPE,
stderr=subprocess.PIPE
)
# ========== 输出 ==========
if process.returncode == 0:
print("生成成功:", output_path)
else:
print("失败:")
print(process.stderr.decode("utf-8"))