Quips AI Voiceover MCP (quips-voiceover-mcp)

AI voiceover MCP server: text to speech, two-host podcast and multi-speaker dialogue dubbing to WAV + SRT subtitles, and audio/video to SRT subtitles, via the Quips (灵声妙语) API. Python stdio, stdlib only.

Documentação

AI配音 MCP|文字转语音 MCP · 播客生成 MCP · 字幕生成 MCP(灵声妙语 Quips)

quips-voiceover-mcp 是一个开源的 MCP 服务器(Model Context Protocol,stdio),把灵声妙语(Quips)官方开放 API(https://www.quips.cn)的 AI配音、文字转语音(TTS)、声音克隆、多角色对话配音(双人播客 / 多人视频配音)和字幕生成 变成 Claude Desktop、Cursor、WorkBuddy、Cherry Studio 等 AI 客户端可直接调用的工具。一份对话稿进去,出来的是整段 WAV 音频 + 带时间轴的 SRT 字幕 + 逐句时间轴 manifest.json;已有的音频或视频也能识别成 SRT / TXT / JSON 字幕。纯 Python 3.9+ 标准库实现,无需显卡,无第三方依赖。

English: Quips AI Voiceover MCP server — text to speech, two-host podcast generator, multi-speaker dialogue dubbing to WAV + SRT, and audio/video to SRT subtitles, via the official Quips (灵声妙语) API. Python standard library only. See the English section.

目录

能做什么

  1. 文字转语音 / AI配音:一段文字 → mp3 / wav / flac / opus / aac / pcm;音色用账号已有角色(actor_id),或用一段参考音频做声音克隆(reference_audio_url + reference_text);可调语速 0.25–4 倍,可加所选模式提供的语气标签。
  2. 长文配音 + 字幕:text_to_speech 打开 subtitles=true,长文自动分句、逐句生成、拼成一条 WAV,同时写出 SRT 字幕和逐句时间轴。
  3. 双人播客 / AI播客生成:两位主持人的对话稿 → 整期播客 WAV + 带说话人的 SRT 字幕。
  4. 多角色对话配音 / 多人视频配音:旁白、角色 A、角色 B……每个角色一个音色,一次调用出整段配音和字幕,可用于短剧、动画、小说推文、有声书多角色朗读。
  5. 字幕生成:本地音频或视频 → SRT 字幕 / TXT 文字稿 / JSON 分段(视频自动加字幕、音频转字幕、音频转文字)。
  6. 断点续跑:多句配音逐句缓存;超时或中断后用相同参数再调用,只补没完成的句子;改一句只重配一句。

适用人群与场景

人群典型场景
播客主、公众号/知识博主文章改写成双人对谈稿后直接出整期音频和字幕;做“音频版”
短视频创作者口播、解说、小说推文、短剧对白的多角色配音,SRT 直接导入剪辑软件
课程与培训讲稿配音、课件旁白,多讲师对话式课程
产品与市场产品演示、宣传片旁白,多语言稿件分别配音(翻译由你的 AI 客户端完成)
开发者 / Agent 搭建者在 MCP 客户端或自建 Agent 里把“写稿 → 配音 → 字幕”串成一条工作流
剪辑与字幕组已有视频、采访、会议录音批量识别 SRT / TXT

快速开始

  1. 在 https://www.quips.cn/workspace/api 生成 API Key。
  2. 准备 Python 3.9+(python3 --version)。可选安装 uv 以便用 uvx 一行运行。
  3. 把下方任一配置写进你的 MCP 客户端,把 your-api-key 换成你的 Key,重启客户端。
  4. 对 AI 说:“列出我能用的音色”,再说“把 examples/two-host-podcast.md 做成双人播客”。

不想装 uv:git clone https://github.com/yanghhu/miragea-voiceover-skills.git,然后用 python3 mcp/quips-voiceover-mcp/quips_voiceover_mcp/server.py 作为启动命令(见下方 “直接用 Python 运行”)。

客户端配置示例

Claude Desktop(claude_desktop_config.json)

用 uvx 从 GitHub 运行(无需 PyPI,自动拉取本目录):

{
  "mcpServers": {
    "quips-voiceover": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/yanghhu/miragea-voiceover-skills#subdirectory=mcp/quips-voiceover-mcp",
        "quips-voiceover-mcp"
      ],
      "env": {
        "QUIPS_API_KEY": "your-api-key"
      }
    }
  }
}

也可以下载 mcp/dist/quips-voiceover-mcp-1.0.0.mcpb 双击安装(Claude Desktop 扩展,会提示填写 API Key;需本机 Python 3.9+)。

Cursor(~/.cursor/mcp.json 或项目 .cursor/mcp.json)

{
  "mcpServers": {
    "quips-voiceover": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/yanghhu/miragea-voiceover-skills#subdirectory=mcp/quips-voiceover-mcp",
        "quips-voiceover-mcp"
      ],
      "env": {
        "QUIPS_API_KEY": "your-api-key"
      }
    }
  }
}

WorkBuddy(~/.workbuddy/mcp.json,或 侧边栏 插件 → MCP 服务器 → 配置 MCP)

{
  "mcpServers": {
    "quips-voiceover": {
      "type": "stdio",
      "command": "python3",
      "args": [
        "/absolute/path/miragea-voiceover-skills/mcp/quips-voiceover-mcp/quips_voiceover_mcp/server.py"
      ],
      "env": {
        "QUIPS_API_KEY": "your-api-key"
      }
    }
  }
}

保存后在连接器 / MCP 管理里点“信任”启用。WorkBuddy、CodeBuddy 用户也可以把本仓库添加为插件市场:/plugin marketplace add yanghhu/miragea-voiceover-skills,然后安装插件 quips-voiceover-mcp(插件自带 MCP 配置和使用技能)。

Cherry Studio(设置 → MCP 服务器 → 添加 → 从 JSON 导入)

{
  "mcpServers": {
    "quips-voiceover": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/yanghhu/miragea-voiceover-skills#subdirectory=mcp/quips-voiceover-mcp",
        "quips-voiceover-mcp"
      ],
      "env": {
        "QUIPS_API_KEY": "your-api-key"
      }
    }
  }
}

类型选 STDIO;若用 Python 直接运行,命令填 python3,参数填 server.py 的绝对路径,环境变量填 QUIPS_API_KEY=你的Key。

直接用 Python 运行(任何支持 stdio 的客户端:Cline、Windsurf、Continue、Claude Code 等)

{
  "mcpServers": {
    "quips-voiceover": {
      "command": "python3",
      "args": [
        "/absolute/path/miragea-voiceover-skills/mcp/quips-voiceover-mcp/quips_voiceover_mcp/server.py"
      ],
      "env": {
        "QUIPS_API_KEY": "your-api-key"
      }
    }
  }
}

Windows 上 command 用 python 或 py,路径用 C:\\...\\server.py。

可选环境变量:QUIPS_OUTPUT_DIR(输出目录,默认 ~/quips-voiceover)、QUIPS_BASE_URL(服务地址,默认 https://www.quips.cn,接口路径自动拼 /v1/...)、QUIPS_DRY_RUN=1(离线试跑)。兼容旧技能的 MIRAGEA_API_KEY(未设置 QUIPS_API_KEY 时读取)。

工具说明

工具作用主要输入输出
get_capabilities查询可用合成模式、语气标签、音频格式、语速范围、单次字数上限、字幕限额与当前费率无实时能力 JSON
list_voices列出账号里的配音角色/音色(含已复刻的声音)limit 1–100、offsetactor_id、name、language 列表
text_to_speech文字转语音 / AI配音text;actor_id 或 reference_audio_url(+reference_text);可选 model、format、speed、tags、subtitles音频文件路径;subtitles=true 时为 WAV + SRT + manifest
dialogue_voiceover多角色对话配音 / 双人播客生成script(对话稿)或 lines;speakers(角色→音色);style podcast/dubbing/audiobookvoiceover.wav + voiceover.srt + voiceover.manifest.json
generate_subtitles字幕生成:音视频转 SRT / TXT / JSONfile_path、format字幕文件路径 + 语言、分段数、预览
get_task查询或继续等待任务,保存结果task_id、wait、output_path任务 JSON(含保存路径)

另带两个提示词模板(prompts):two_host_podcast(按主题写双人播客稿)和 multi_character_dubbing(把对白/故事整理成多角色配音稿)。

调用建议:先 get_capabilities + list_voices;生成类工具会消耗账号额度,调用前让 AI 把稿子和音色给你确认一遍。

对话稿格式(双人播客 / 多人配音)

---
主持人A: actor_id=替换为你的角色ID
主持人B: actor_id=替换为另一个角色ID
---
# 开场
[主持人A] 欢迎收听本期节目,今天我们聊一个很多人都在问的话题:怎么用 AI 做播客。
[主持人B] 对,我先说结论:稿子写好,配音和字幕其实可以一步出来。
[pause 0.8]
# 第一部分:写稿
[主持人A] 那稿子要怎么写才适合听?
[主持人B] 句子短一点,多用口语,一个人别连着说太久,两个人有来有回。
[pause 0.8]
# 结尾
[主持人A] 好,今天就聊到这里,我们下期见。
[主持人B] 下期见!
  • 开头 --- 之间是角色表(可选):角色名: actor_id=...,或 ref=参考音频URL ref_text="参考音频原文",还可加 speed=1.1、model=...、tags=标签1,标签2、language=zh。
  • 正文每行一句:[角色名] 台词;已在角色表里的角色也可写成 角色名:台词。没有标记的行沿用上一个角色。
  • [pause 0.8](或 [停顿 0.8])插入 0.8 秒静音;# 开头的行是注释,不会读出。
  • 也可以不写角色表,改用工具参数 speakers:{"主持人A": {"actor_id": "..."}, "主持人B": {"reference_audio_url": "https://...", "reference_text": "..."}}。
  • 更多示例:examples/two-host-podcast.md、examples/multi-character-dubbing.md。

style 预设:podcast(句间 0.35 秒、字幕带说话人)、dubbing(句间 0.15 秒、字幕不带说话人,便于对画面)、audiobook(句间 0.5 秒)。gap、max_chars、speaker_labels 可单独覆盖。

输入与输出

工具输出位置文件
dialogue_voiceoveroutput_dir,默认 ~/quips-voiceover/<时间>-<标题>/voiceover.wav、voiceover.srt、voiceover.manifest.json(每句说话人、文本、起止秒)、lines/(每句缓存)
text_to_speechoutput_path,默认 ~/quips-voiceover/speech-<时间>-<开头文字>.<格式>音频文件;subtitles=true 时同 dialogue_voiceover
generate_subtitlesoutput_path,默认与媒体文件同目录同名.srt / .txt / .json

所有写文件操作都不覆盖已有文件(重名自动加 -2)。工具返回 JSON,包含文件绝对路径、时长、任务 ID 和幂等键。

离线试跑(无需 Key)

git clone https://github.com/yanghhu/miragea-voiceover-skills.git && cd miragea-voiceover-skills/mcp/quips-voiceover-mcp
python3 quips_voiceover_mcp/server.py --self-test      # 生成静音占位 WAV + SRT,打印输出路径
python3 quips_voiceover_mcp/server.py --dry-run        # 以离线模式启动 MCP 服务器,可在客户端里走通全流程

离线模式不联网、不调用接口、不消耗额度,音频是静音占位,用来检查稿件格式、字幕切分和时间轴。

常见问题 FAQ

问:quips-voiceover-mcp 是什么? 答:一个 MCP 服务器。装进 Claude Desktop、Cursor、WorkBuddy、Cherry Studio 等客户端后,AI 可以直接调用 灵声妙语(Quips) 的配音和字幕接口:文字转语音、声音克隆、多角色对话配音(双人播客、多人视频配音)、音视频转 SRT 字幕。

问:能用它生成双人播客吗? 答:能。把两位主持人的对话写成 [主持人A] ... / [主持人B] ...,调用 dialogue_voiceover(style=podcast),每位主持人用各自的音色,输出整期 WAV 和带说话人的 SRT。没有稿子时,可以先用提示词模板 two_host_podcast 让 AI 按主题写稿。

问:多人视频配音 / 多角色配音最多支持几个角色? 答:工具本身不限制角色数,每个角色需要一个音色(actor_id 或参考音频)。每一句是一次生成请求,单句字数上限以 get_capabilities 返回的 audio.max_text_length 为准。

问:怎么用自己的声音(声音克隆)? 答:两种方式:在 灵声妙语(Quips) 账号里已有的角色直接用 actor_id;或者提供一段服务端可以访问的公网参考音频 URL(reference_audio_url)和音频里实际说的文字(reference_text)。只能克隆你本人或已获授权的声音。

问:输出的 SRT 字幕能导入剪辑软件吗? 答:输出是标准 SRT(序号、00:00:01,000 --> 00:00:03,000 时间轴、文本),可以在支持 SRT 导入的剪辑软件里使用。时间轴按每句实际音频时长计算,长句按标点切成多条字幕。

问:没有 API Key 可以先试吗? 答:可以。用 --dry-run 启动或在工具参数里传 dry_run: true,会生成静音占位音频和真实格式的字幕、时间轴,不联网、不消耗额度。

问:对话很长,客户端超时了怎么办? 答:已完成的句子都缓存在输出目录的 lines/ 里。用同样的参数(同一个 output_dir)再调用一次,会跳过已完成的句子继续生成。单个任务等待超时会返回 task_id,用 get_task 继续取结果,不要重新提交。服务器在客户端提供 progressToken 时会发送进度通知。

问:怎么收费? 答:配音和字幕识别都按 灵声妙语(Quips) 账号的额度计费,具体规则以 get_capabilities 实时返回和官网为准。本项目只是调用官方 API 的开源客户端,不另外收费。

问:我的文字和文件会发到哪里? 答:只发到 灵声妙语(Quips) 官方 API(默认 https://www.quips.cn)。API Key 只从环境变量读取,不写入文件或日志;生成的音频和字幕保存在你本机。

问:支持选择输出语言或翻译吗? 答:接口没有“输出语言”参数,读出的语言就是你给的文字的语言。需要外语配音时,先让 AI 客户端翻译稿子,再交给本工具配音。language 参数只是参考音频的语言提示。

问:和同仓库的“AI配音技能(SKILL.md)”有什么区别? 答:技能是给能运行 Python 脚本的 Agent 用的工作流说明 + 脚本;MCP 服务器是标准工具接口,任何 MCP 客户端都能直接调用,不需要 Agent 自己跑命令。两者调用的是同一套官方接口,按你用的客户端选择。

与同类做法的区别

对比项本 MCP 服务器一般 TTS MCP / 文字转语音工具手工配音 + 手打字幕
多角色 / 双人播客一份稿子多个音色,一次出整段多为一次一段、一个音色,需要自己拼接逐个录制再剪辑
字幕同时输出按真实时长对齐的 SRT通常只有音频另外听写、对轴
时间轴每句起止秒 manifest.json,方便对画面无手工标记
改稿改一句只重配一句(逐句缓存)整段重生成重新录制
音视频转字幕同一服务器内 generate_subtitles需要另一个工具手工听写
依赖Python 3.9+ 标准库,无显卡视实现而定录音设备、剪辑软件

限制与注意事项

  • 额度:生成和识别会消耗 灵声妙语(Quips) 账号额度;单次字数上限、可用模式、标签、字幕文件大小与时长上限都以 get_capabilities 实时返回为准。
  • 参考音频:reference_audio_url 必须是服务端能直接访问的 http(s) 地址;本地文件需要先上传到可访问的位置。
  • 拼接格式:多句拼接要求接口返回标准 PCM WAV(工具内部固定用 wav 生成每句);若遇到无法拼接的格式,每句文件保留在 lines/,可用 ffmpeg 自行合并。
  • 客户端超时:部分客户端单次工具调用有超时,长稿可分段调用或依赖断点续跑。
  • 声音授权:只克隆你本人或已获得明确授权的声音,不得冒充他人。
  • AI 生成内容标识:生成的音频属于 AI 合成内容。发布到平台时请按平台规则和相关法规(如《人工智能生成合成内容标识办法》)添加 AI 生成标识,不要用于误导、诈骗或侵权。
  • 服务地址:默认 https://www.quips.cn;私有部署可设置 QUIPS_BASE_URL。

文件结构

mcp/quips-voiceover-mcp/
├── quips_voiceover_mcp/server.py        # MCP 服务器(单文件,标准库)
├── pyproject.toml              # uvx / pip 安装入口
├── server.json                 # 官方 MCP Registry 元数据
├── smithery.yaml               # Smithery 配置
├── manifest.json               # MCPB(Claude Desktop 扩展)清单
├── .codebuddy-plugin/ .claude-plugin/   # WorkBuddy·CodeBuddy / Claude Code 插件
├── skills/quips-voiceover-mcp/SKILL.md          # 给 Agent 的使用技能
├── workbuddy-connector/         # WorkBuddy 连接器包(connector-meta.json、mcp.json、token-schema.json)
└── examples/                    # 双人播客、多角色配音示例稿

English

quips-voiceover-mcp is an open-source MCP server (stdio) for the official Quips (灵声妙语) API (https://www.quips.cn): AI voiceover, text to speech, voice cloning, multi-speaker dialogue voiceover (two-host podcast generator, multi-character dubbing) and subtitle generation for Claude Desktop, Cursor, WorkBuddy, Cherry Studio and any MCP client. A dialogue script goes in; a joined WAV + timed SRT subtitles + per-line timing JSON come out. Existing audio/video can be turned into SRT / TXT / JSON subtitles. Python 3.9+ standard library only, no GPU.

Tools: get_capabilities, list_voices, text_to_speech, dialogue_voiceover, generate_subtitles, get_task; prompts two_host_podcast, multi_character_dubbing. Env: QUIPS_API_KEY (required), QUIPS_OUTPUT_DIR, QUIPS_BASE_URL, QUIPS_DRY_RUN. Offline test: python3 quips_voiceover_mcp/server.py --self-test.

{
  "mcpServers": {
    "quips-voiceover": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/yanghhu/miragea-voiceover-skills#subdirectory=mcp/quips-voiceover-mcp",
        "quips-voiceover-mcp"
      ],
      "env": {
        "QUIPS_API_KEY": "your-api-key"
      }
    }
  }
}

Generation uses account credits (limits come from get_capabilities). Clone a voice only with the speaker's consent, and label AI-generated audio where you publish it.

许可证 MIT。配音与字幕能力由 灵声妙语(Quips) 开放 API 提供。