Skip to content

[Feature Request] 提供统一的 CLI (命令行) 接口以增强开箱即用体验 #56

Description

@WuJunkai2004

您好!感谢作者开源这么轻量、高效的 GPT-SoVITS 推理引擎,在 CPU 上的性能表现令人印象深刻!

需求背景

目前 GENIE-TTS 主要是作为一个 Python 库来调用的。虽然库内已经提供了非常便捷的封装(如 genie.start_server(), genie.tts(), genie.convert_to_onnx() 等),但用户仍然需要手动创建并编写 Python 脚本才能使用这些核心功能。对于许多只希望快速部署服务或进行一次性模型转换的用户来说,如果能直接在终端中使用命令行会更加方便。

功能建议

建议为项目提供一个全局的命令行接口(CLI),暴露出常用的核心功能。例如,可以提供类似如下的终端命令:

  • 生成语音 (TTS):
    genie tts --character mika --text "你好,世界!" --play
  • 启动 Web 服务:
    genie server --host 0.0.0.0 --port 8000
  • 转换模型:
    genie convert --pth ./model.pth --ckpt ./model.ckpt --out ./onnx_dir
  • 下载预设角色资源等外围功能。

带来的好处

  1. 完美契合现代包管理器 (如 uv tool / pipx):
    如果有了 CLI,用户可以直接使用 uv tool install genie-tts 将其作为系统级命令行工具安装,或者使用 uv tool run genie-tts server 一键启动服务。这完全免去了手动管理虚拟环境和编写 Python 启动脚本的繁琐步骤。
  2. 便于自动化与集成:CLI 使得 GENIE 可以极其方便地被集成到 Shell 脚本、批处理任务或其他非 Python 语言编写的后端服务中(通过 subprocess 调用)。
  3. 进一步降低使用门槛:对于非 Python 开发者而言,敲击一行命令比阅读文档并编写 Python 脚本更加直观,能大幅提升项目的“开箱即用”体验。

贡献意愿

我非常喜欢这个项目,并且非常愿意为项目贡献这部分 CLI 外围功能!
如果维护者认可这个提议,我可以着手编写并提交 PR。在实现方案上,我倾向于使用 Python 原生的 argparse 以保持零额外依赖。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions