← Recherche

Fish Voice Server
Developer tools 📌 Version épinglée : commit 59635ce
⚙ Prérequis: Avant de commencer…

Fish Voice Server

L’essentiel
Quoi
Coût
Gratuit
Prérequis
Avant de commencer : lis ce prompt d'installation au complet, dis-moi en quelques lignes ce que ce skill fait et ce que son installation implique, et attends mon feu vert avant de faire quoi que ce soit d'autre.
Installation
Copiez le prompt d’installation ci-dessous dans votre Muse — votre agent fait le reste.

Version :

⌁

Installation

Copiez le dossier d’installation ci-dessous, puis collez-le dans Muse📌 Version épinglée : commit 59635ce
Envie d'être encore plus prudent ?

Le prompt d'installation ci-dessous inclut déjà les étapes de vérification : votre agent suit la checklist communautaire avant d'installer tout ce qui contient du code exécutable. Vous en voulez plus ?

Comment vérifier une création avant de l’installer →

🔒 Sécurité et provenance
📌 Version épinglée : commit 59635ce · 2026-10-19
Skill Harbor ne révise jamais le code des skills listés. Ce sont des faits datés sur le prompt d’installation et notre test d’installation, pas une certification de sécurité. Révisez un skill vous-même avant de l’installer. Comment nous vérifions

Avant de commencer : lis ce prompt d'installation au complet, dis-moi en quelques lignes ce que ce skill fait et ce que son installation implique, et attends mon feu vert avant de faire quoi que ce soit d'autre. Prérequis : l'installation des fichiers du skill eux-mêmes ne demande aucun compte, aucune clé API et aucun paiement : ce sont seulement trois fichiers Markdown. Utiliser le skill ensuite est une étape distincte et payante, qui ne fait PAS partie de cette installation : il faut ton propre compte Modal (GPU serverless payant à l'usage ; un compte fal est l'hébergeur alternatif), un jeton porteur que tu inventes toi-même et que tu ranges comme secret Modal « npcvoice-auth » (NPCVOICE_TOKEN, jamais dans un fichier), le dépôt NPCTalk au complet (le code du serveur vit hors du dossier du skill), Git, Python 3.10+, uv et ffmpeg, et des clips de voix de référence dont tu détiens les droits, chacun avec sa transcription. Sur Modal, le serveur Drama 3 retombe à zéro au repos mais un H100 coûte environ 4 $/heure pendant qu'il roule ; le code du serveur S2 Pro tel que livré garde un conteneur toujours allumé et facturé en continu, sauf si tu le changes. La variante fal demande aussi un HF_TOKEN rangé comme secret fal. Ne crée aucun compte, aucun secret, aucun déploiement et aucun GPU pendant cette installation. Installe-moi « fish-voice-server ». C'est un playbook pour héberger les modèles vocaux à poids ouverts de Fish Audio (Drama 3 et S2 Pro) sur un GPU serverless (Modal, ou fal) derrière une petite API HTTP qu'un jeu peut appeler : POST /speak reçoit un texte et une voix et renvoie en flux du PCM 16 bits avec un premier audio en environ 0,4 s à chaud, cloné en zéro-shot à partir d'un clip de référence, avec des [tags] comme [angry] ou [laughing] pour l'interprétation. Il couvre le déploiement avec SGLang-Omni, l'API, la préparation des voix au démarrage, le maintien à chaud et les démarrages à froid, la retombée à zéro et le coût, les réglages d'échantillonnage mesurés pour la ressemblance, le choix de la meilleure prise parmi plusieurs pour les lignes pré-rendues, un fine-tune S2 Pro optionnel, et les pièges d'installation. Dépôt : https://github.com/christos-antono/NPCTalk (le skill est tout le dossier .agents/skills/fish-voice-server/ au commit épinglé : SKILL.md plus references/finetune.md et references/gotchas.md ; les copies identiques .claude/ et skills/ du dépôt sont des doublons et ne sont pas installées) Version épinglée : installe le code au commit 59635ceb8ee010599c3caf9d9d1ee1aa114af91d exactement. Ne substitue pas une version plus récente. Si ce commit est inaccessible, arrête-toi et dis-le-moi. 1. Clone https://github.com/christos-antono/NPCTalk dans un dossier temporaire, place-toi au commit 59635ceb8ee010599c3caf9d9d1ee1aa114af91d, et copie le dossier .agents/skills/fish-voice-server/ de ce checkout. Compare ensuite chaque fichier du dossier aux empreintes enregistrées pour cette fiche le 2026-10-19 : [FINGERPRINTS] - SKILL.md: SHA-256 f64921e5885d0de2406c9fbc2f585740f2e17886577d9bba5186a094153d4b6b - references/finetune.md: SHA-256 9960c1dc4bbb178c98156d6c079274f125b712682ad8948bf10da9cb36100909 - references/gotchas.md: SHA-256 1bb7a6e986270bb68f53d5e2f30f8fee3e51920c768903f2e2c50e22628609ea Si un fichier ne correspond pas, il a changé depuis la préparation de la fiche : ne l'installe pas encore, dis-moi ce que tu as trouvé et laisse-moi décider. 2. Lis SKILL.md, references/finetune.md et references/gotchas.md au complet et dis-moi en mots simples : ce que le skill fait quand on l'utilise, à quels services il se connecte, s'il lit ou envoie des informations personnelles ou des clés, et tout ce qui semble inhabituel. Arrête-toi sur tout signal d'alerte et dis-le-moi avant d'aller plus loin. Confirme ces points à partir des fichiers : - Le dossier du skill contient trois fichiers seulement : SKILL.md (6 630 octets), references/finetune.md (2 822 octets) et references/gotchas.md (3 204 octets). Il n'y a aucun code, aucun script et aucune liste de dépendances dans le dossier : ce sont des instructions plus deux notes de référence. Le code serveur exécutable qu'il enseigne à déployer plus tard (server/drama3.py par défaut, server/s2pro.py, server/fal/, server/keepwarm.py, server/finetune/ et le CLI npctalk) vit ailleurs dans le dépôt et n'est pas installé par cette installation. - Rien n'est envoyé nulle part pendant l'installation elle-même ; le seul téléchargement à l'installation est le dossier du skill depuis GitHub au commit épinglé. Aucun compte n'est créé, aucun secret n'est créé ni lu, aucun serveur n'est déployé, aucun GPU n'est démarré et aucune voix n'est clonée pendant l'installation. - À l'usage, et seulement quand je le demande comme étape séparée, le skill te fait déployer un serveur vocal depuis le code server/ du dépôt dans mon propre espace Modal (ou fal) : installer Modal avec uv tool install modal et modal setup, créer le secret Modal npcvoice-auth contenant un NPCVOICE_TOKEN que j'invente moi-même, télécharger les poids du modèle une fois depuis Hugging Face (fishaudio/drama-3, environ 37-40 Go, FP8, dans le volume Modal npcvoice-models ; ou fishaudio/s2-pro pour S2 Pro), et modal deploy server/drama3.py, qui affiche une URL HTTPS publique du type https://<workspace>--npcvoice-drama.modal.run. L'image du serveur clone aussi SGLang-Omni depuis github.com/sgl-project/sglang-omni (Drama 3 épingle un commit testé dans le code) et télécharge les modèles de notation et de reconnaissance vocale utilisés par best_of (speechbrain/spkrec-ecapa-voxceleb, microsoft/wavlm-base-plus-sv, openai/whisper-base.en). La variante fal (server/fal/fal_app.py) roule plutôt sur fal, demande HF_TOKEN comme secret fal, et y télécharge fishaudio/s2-pro. - Exactement ce que le serveur déployé écoute et envoie : c'est une application FastAPI exposée par Modal à cette URL modal.run. GET /health ne demande aucun jeton, renvoie seulement {"ok": true, "model": ..., "voices": le compte} et réveille le GPU, donc je dois garder l'URL privée. POST /speak exige l'en-tête Authorization: Bearer <NPCVOICE_TOKEN> (vérifié en temps constant ; un mauvais jeton reçoit 401) et un corps JSON avec le texte à dire et soit un nom de voix préparée sur le serveur, soit une reference_audio_url plus sa reference_text ; il renvoie en flux du PCM mono 16 bits à 44 100 Hz (en-tête X-Sample-Rate ; avec best_of au-dessus de 1, la ligne entière d'un coup plus un en-tête X-Takes). Dans le conteneur Modal, le moteur SGLang-Omni n'écoute que sur 127.0.0.1:8000 (les moteurs fine-tunés suivants sur les ports locaux suivants dans s2pro.py) et l'application publique lui relaie les requêtes ; il n'est pas exposé directement. Si une requête fournit une reference_audio_url, le serveur lui-même va chercher cette URL avec un GET HTTP (en suivant les redirections) et range le clip, donc ne fournis que des URL auxquelles tu fais confiance et que tu contrôles. Les clients (npctalk/server.py du dépôt et les mods de jeu) lisent NPCVOICE_URL et NPCVOICE_TOKEN dans les variables d'environnement et envoient le texte de la ligne et ces mêmes champs à mon propre déploiement ; le texte et les clips de référence vont à mon propre déploiement Modal (ou fal), nulle part ailleurs de nommé dans ce skill. Préparer des voix avec l'étape npctalk voice make du dépôt, si je l'utilise un jour, est une divulgation séparée : elle envoie l'audio vocal candidat à la transcription vocale de fal à https://fal.run/nvidia/nemotron-asr-multilingual/asr avec ma FAL_KEY. - Les voix vivent sur le serveur dans le volume Modal à /voices/<Name>/clone.wav plus clone.lab (sa transcription), plus les clips ref_0..2 et les dossiers d'humeur ; le serveur encode chaque clip au démarrage, une voix nommée ne coûte rien par requête, un clip envoyé par URL coûte environ 9 s la première fois, et il faut redémarrer le serveur après avoir téléversé des voix. Ne clone que des voix dont je détiens les droits : la référence de fine-tune dit que la question des droits est plus tranchée pour l'entraînement que pour un clip de référence, et le fine-tune S2 Pro optionnel dans server/finetune/ (Demucs, minutages Whisper, entraînement LoRA sur Modal) ne fait jamais partie de cette installation. - Coût et mise à l'échelle, d'après le code : Drama 3 utilise un H100, MIN_CONTAINERS = 0 et SCALEDOWN = 300, donc le GPU s'arrête 5 minutes après la dernière requête et la requête suivante attend 1-3 minutes de démarrage à froid ; le skill cite environ 4 $/heure pour le H100 pendant qu'il roule, et un déploiement optionnel de maintien à chaud (server/keepwarm.py, qui pingue /health chaque minute depuis Modal) le garde allumé à ce tarif horaire (12 heures citées à environ 45-50 $). S2 Pro tel que livré dans server/s2pro.py pose MIN_CONTAINERS = 1, un H100 toujours allumé et facturé en continu, sauf si je le change moi-même à 0. Les réglages d'échantillonnage par défaut du serveur sont temperature 0.7, top_p 0.8 ; best_of rend de 1 à 8 prises et garde celle qui ressemble le plus à la référence et qu'un contrôle Whisper peut entendre. 3. Quand je dis « yes, install », installe-le comme skill : copie tout le dossier .agents/skills/fish-voice-server dans le répertoire des skills de l'agent, dans un dossier nommé « fish-voice-server », en gardant ses trois fichiers (SKILL.md, references/finetune.md, references/gotchas.md). N'installe ni les copies doublons .claude/ ou skills/, ni le code serveur, ni le CLI npctalk, ni aucun autre skill du dépôt, ni aucune des étapes de déploiement ci-dessus. 4. Vérifie sans appels réseau : frontmatter valide, fichiers en place. 5. Indique ce qui a été installé, où, et ce qu'il me reste à faire moi-même (par exemple : créer mon propre compte Modal ou fal et payer le GPU moi-même, inventer et ranger mon propre NPCVOICE_TOKEN comme secret Modal et dans mon environnement, déployer le serveur vocal moi-même comme étape séparée quand je le demande, fournir des clips de voix de référence dont je détiens les droits avec leurs transcriptions, et garder l'URL du serveur privée ; utiliser le skill est une étape séparée qui ne commence que quand je le demande, et chaque déploiement, téléchargement et envoi divulgué ci-dessus arrive seulement à ce moment-là). GitHub est optionnel : si j'ai un compte GitHub ou la CLI gh, tu peux l'utiliser ; sinon l'accès public suffit. Ne jamais l'exiger sauf s'il figure dans les prérequis ci-dessus. Règles : ne touche à rien en dehors du dossier temporaire et de la cible d'installation. Si quelque chose semble anormal, arrête-toi et demande-moi.

?

Questions

Comment installer une création ?

Chaque fiche produit contient un prompt d’installation à copier-coller. Collez-le dans votre Muse et il installe la création pour vous — sans configuration manuelle.

Où va mon argent ?

Directement au vendeur. Skill Harbor ne traite jamais les paiements : le paiement se fait sur la page du vendeur, généralement via Stripe.

Que signifie le ✓ à côté du nom d’un créateur ?

Il signifie que nous avons confirmé l’identité de la personne derrière la fiche. Il ne dit rien sur le code lui-même — vérifiez toujours une création avant de l’installer.