presenter-setup 是 presenter 技能的前置环境搭建技能,目标是把 presenter 的引擎(s2.cpp)和模型准备好,并确认到能出声为止。用户需要做的只有安装软件和同意许可,其余命令由技能代为执行。
用途
让 presenter 技能(本地 Fish Audio S2 Pro 语音合成)进入可用状态。
前提与定位
先找到 presenter 技能:本技能文件夹旁边应有 presenter/(例如 .claude/skills/presenter/),记为 <presenter>。若 <presenter>/tools/pyproject.toml 不存在,则停止并提示需要同时安装 presenter 技能(用 npx skills add 同时安装两者)。所有命令统一以 uv run --project "<presenter>/tools" presenter-tts ... 调用,路径需加引号。
主要能力
-
状态检查:运行 uv run --project "<presenter>/tools" presenter-tts doctor,从输出的 JSON 读取状态。engine.ready 为 true 时可直接跳到动作确认。检查项包括:prerequisites.windows 必须为 true(非 Windows 不支持,会提示并停止);gpu 需为 NVIDIA GPU 且合计 VRAM(第二个值,MB)在 6000 以上;prerequisites.cuda_version 需 12.4 以上;prerequisites.visual_studio_cpp 需有路径(已安装 C++ 构建工具);prerequisites.git、uv、ffmpeg、ffplay 需有路径;huggingface.co、github.com 需 DNS available。若无 GPU 或 VRAM 不足,则不继续安装并告知(仅 CPU 无法达到实用速度)。
-
安装缺失软件:只列出缺失项,说明装什么、从哪里装、大约多大容量,获得批准后再安装。大型软件(Visual Studio、CUDA)需要管理员权限且下载数 GB,未经批准不得安装。安装命令:uv 用 winget install --id astral-sh.uv -e;Git 用 winget install --id Git.Git -e;FFmpeg(含 FFplay)用 winget install --id Gyan.FFmpeg -e;Visual Studio 2022 C++ 构建工具用 winget install --id Microsoft.VisualStudio.2022.BuildTools -e --override "--wait --passive --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended"(含 CMake,数 GB);CUDA Toolkit 先用 winget show --id Nvidia.CUDA --versions 确认版本,再安装 12.4 以上版本 winget install --id Nvidia.CUDA -e --version <版>(约 3 GB,GPU 驱动更新另行判断)。安装后可能需要新开 shell 才能反映 PATH,可再次运行 doctor,找不到时用完整路径确认。若存在多个 CUDA 且 PATH 开头是旧版(如 11.x),在 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\ 下选择 12.4 以上最新版,并在步骤 4 传给 -CudaRoot,不要改写 PATH。CUDA 与 WSL 的细节可参考 cuda-wsl.md。
-
许可同意:s2.cpp 引擎与 S2 Pro 模型按 Fish Audio Research License 提供。下载前需向用户说明并取得同意:研究、非商用免费;商用需与 Fish Audio 另行签约(business@fish.audio);分发时需附许可文本与署名("This model is licensed under the Fish Audio Research License, Copyright © 39 AI, INC. All Rights Reserved.");全文在获取后的 %LOCALAPPDATA%\presenter-tts\cache\s2.cpp\LICENSE.md。未同意则在此停止。
-
构建引擎并获取模型:先做仅检查(数秒):& "<presenter>/tools/scripts/setup-s2.ps1" -CheckOnly -CudaRoot "<CUDA 文件夹>"。ReadyToConfigure 为 true 时,在后台执行正式流程:& "<presenter>/tools/scripts/setup-s2.ps1" -CudaRoot "<CUDA 文件夹>"。s2.cpp 获取与 CUDA 构建约 20 分钟,模型下载数分钟,开始前告知预计时间。存放位置为 %LOCALAPPDATA%\presenter-tts\cache\(若存在环境变量 PRESENTER_TTS_HOME 则在其下),可跨项目共享,更新技能也不会丢失。构建中大量出现的 warning C4819(字符编码)与 C4244(类型转换)无害,结束时出现 Setup finished 即成功。失败时查找输出中含 error 的行;CUDA 版本过旧、缺少 CMake 或 C++ 工具等需回到步骤 2。若同一构建目录用不同 CUDA 重新配置被拒,删除 cache\s2-build 后重试(需先向用户确认)。仅模型下载失败时构建仍在,重跑同一命令会从下载继续。若无配置文件,复制示例(不覆盖已有文件):$ttsHome = if ($env:PRESENTER_TTS_HOME) { $env:PRESENTER_TTS_HOME } else { Join-Path $env:LOCALAPPDATA 'presenter-tts' };$config = Join-Path $ttsHome 'config.toml';if (-not (Test-Path -LiteralPath $config)) { New-Item -ItemType Directory -Path $ttsHome -Force | Out-Null; Copy-Item "<presenter>/tools/presenter.example.toml" -Destination $config }。
-
确认出声:运行 uv run --project "<presenter>/tools" presenter-tts doctor 与 uv run --project "<presenter>/tools" presenter-tts say "こんにちは。音声合成のテストです。"。engine.ready 为 true 且 say 无错误结束时,询问用户是否听到。若生成与播放都成功却听不到,请用户检查 Windows 输出设备与静音(常见原因)。服务器启动失败时读取 %LOCALAPPDATA%\presenter-tts\cache\s2-server.log 末尾;若 GPU 显存不足,减少 config.toml 的 [server] gpu_layers(例如 18)。确认完成后,若不继续使用则停止服务器(占用约 4 GB 显存):uv run --project "<presenter>/tools" presenter-tts server stop。
-
注册声音(可选):默认声音为模型自身声音,逐句音质可能变化。用于发表时建议注册一个声音。仅在用户希望时,按 presenter 技能的“注册声音”步骤操作(仅限本人声音或已获许可的声音)。注册后在 config.toml 开头启用 voice = "<名称>" 即可作为默认声音。
-
报告:汇总说明安装的软件与版本、构建所用 CUDA 版本;存放位置(%LOCALAPPDATA%\presenter-tts)与占用容量;动作确认结果(含是否听到);后续可做的事(用 presenter 生成幻灯片语音、用 say 让其说话)与清理方法(presenter 的 references/cleanup.md)。
重做情形
更新 CUDA 或构建损坏:删除 cache\s2-build 后从步骤 4 重来。删除模型:再次执行步骤 4(构建会复用,仅重新下载)。换到另一台 PC:在该 PC 从头执行本技能;声音可通过复制 %LOCALAPPDATA%\presenter-tts\voices 迁移。
限制
仅支持 Windows;需要 NVIDIA GPU 且合计 VRAM 6000MB 以上;CUDA 12.4 以上;仅 CPU 无法达到实用速度。商用需另行签约。