Prepare the presenter engine (s2.cpp) and model, and verify that sound comes out. What the user needs to do is onlyinstalling software and approving license agreements. All other commands will be run on our side.
0. Find the presenter skill
Next to this skill's folderpresenter/(e.g., .claude/skills/presenter/)を<presenter>.
<presenter>/tools/pyproject.tomlIf it is not there, stop and tell them to install the presenter skill as well (npx skills addto install both).
Call all commands withuv run --project "<presenter>/tools" presenter-tts .... Enclose paths in quotes.
1. Check the current state
uv run --project "<presenter>/tools" presenter-tts doctor
If uv itself is not present, this command will not work, so install uv first in step 2.
Read the following from the output JSON.engine.readyIf it is true, skip to step 5 (operation check).
| Item | Required state |
|---|---|
prerequisites.windows |
true (non-Windows is not supported. Tell them so and stop) |
gpu |
There is an NVIDIA GPU, and the total VRAM (the second value, MB) is 6000 or more |
prerequisites.cuda_version |
12.4 or higher |
prerequisites.visual_studio_cpp |
The path exists (C++ build tools are installed) |
prerequisites.git、uv、ffmpeg、ffplay |
The path exists |
huggingface.co、github.com |
DNS available |
If there is no GPU, or if there is not enough VRAM, do not proceed with setup and tell them so (CPU alone will not achieve practical speed).
2. Install missing software
List only what is missing, andwhat will be installed, from where, and how much space it takesShow this and get approval before installing. Large items (Visual Studio, CUDA) require administrator privileges, and the downloads are several GB. Do not install without approval.
| Software | Install command | Notes |
|---|---|---|
| uv | winget install --id astral-sh.uv -e |
|
| Git | winget install --id Git.Git -e |
|
| FFmpeg (including FFplay) | winget install --id Gyan.FFmpeg -e |
|
| Visual Studio 2022 C++ build tools | winget install --id Microsoft.VisualStudio.2022.BuildTools -e --override "--wait --passive --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended" |
CMake is also included. Several GB |
| CUDA Toolkit | winget show --id Nvidia.CUDA --versionsto check the version, and 12.4 or higher towinget install --id Nvidia.CUDA -e --version <版> |
About 3 GB. Decide separately whether to update the GPU driver |
- After installation, PATH may not be reflected unless you open a new shell. Run
doctoragain, and if it is not found, check with the full path. - Multiple CUDA versions may be installed, and the beginning of PATH may be an older version (such as 11.x).
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\Under this, select the newest version 12.4 or higher, and in step 4 pass it to-CudaRoot. Do not rewrite PATH. - For detailed checks of CUDA and WSL, readcuda-wsl.md.
3. Obtain license agreement
The s2.cpp engine and the S2 Pro model are provided underFish Audio Research License. Before downloading, tell the user the following and obtain consent.
- Research and non-commercial use is free of charge.Commercial use requires a separate contract with Fish Audio(business@fish.audio)
- When distributing, the license text and attribution ("This model is licensed under the Fish Audio Research License, Copyright © 39 AI, INC. All Rights Reserved.") are required
- The full text is available after obtaining
%LOCALAPPDATA%\presenter-tts\cache\s2.cpp\LICENSE.md
If there is no consent, stop here.
4. Build the engine and obtain the model
First, only perform a check (a few seconds).
& "<presenter>/tools/scripts/setup-s2.ps1" -CheckOnly -CudaRoot "<CUDAのフォルダ>"
ReadyToConfigureIf is true, run the productionin the backgroundExecute. Obtaining s2.cpp and the CUDA build take about 20 minutes, and downloading the model takes a few minutes. Tell them the estimated time before starting.
& "<presenter>/tools/scripts/setup-s2.ps1" -CudaRoot "<CUDAのフォルダ>"
- The location is
%LOCALAPPDATA%\presenter-tts\cache\(environment variablePRESENTER_TTS_HOMEif present, under that). It is shared by any project and will not disappear even if the skill is updated. - A large amount is output during the build
warning C4819(character encoding) andC4244(type conversion) are harmless. At the end,Setup finishedif appears, it succeeded. - If it fails, check the output for
errorfind the line containing. If the CUDA version is old, or CMake or the C++ tools are missing, return to step 2. If the same build destination was reconfigured with a different CUDA and rejected,cache\s2-builddelete it and try again (after confirming with the user). - If only the model download failed, the build remains. Running the same command again will resume from the download.
If there is no configuration file, copy the sample (do not overwrite an existing one).
$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
}
5. Check whether sound comes out
uv run --project "<presenter>/tools" presenter-tts doctor
uv run --project "<presenter>/tools" presenter-tts say "こんにちは。音声合成のテストです。"
engine.readyis true, andsayif finished without errors,ask the user whether they heard it. If generation and playback both succeed but it cannot be heard, have them check the Windows output device and mute (a common cause).
If server startup fails,%LOCALAPPDATA%\presenter-tts\cache\s2-server.logread the end of. If GPU memory is insufficient,config.tomlの[server] gpu_layersreduce (e.g., 18).
Once you have finished checking, stop the server if you do not plan to keep using it (because it uses about 4 GB of GPU memory).
uv run --project "<presenter>/tools" presenter-tts server stop
6. Register a voice (optional)
The default voice is the model's own voice, and the voice quality may change from sentence to sentence. If you will use it for a presentation, it is good to register one voice.
Only if the user wants it, follow the "Register a voice" procedure in the presenter skill (only your own voice or a voice for which you have permission).
Once registered,config.tomlat the beginning ofvoice = "<名前>"enable to make it the default voice.
7. Report
Communicate the following together.
- The software installed and its version, the CUDA version built
- Location (
%LOCALAPPDATA%\presenter-tts) and the capacity used - The result of the operation check (including whether it was heard)
- What can be done next (create slide audio with presenter,
saymake it speak with) and how to clean up (presenter'sreferences/cleanup.md)
When redoing
- Updated CUDA, the build broke:
cache\s2-builddelete it and start from step 4. - Deleted the model: run step 4 again (the build is reused, only the download runs).
- Moving to another PC: run this skill from the beginning on that PC. The voice can be carried over by copying
%LOCALAPPDATA%\presenter-tts\voices.