Communitygithub.com

debpalash/VoiceStudio

Alternative locale à ElevenLabs : clonage/création vocale, doublage vidéo, dictée, transcription en 646 langues via REST/MCP. Compétence pour un projet 40k★.

Qu'est-ce que VoiceStudio ?

VoiceStudio est une compétence qui permet d'interagir avec le backend local de VoiceStudio, une alternative open-source à ElevenLabs. Elle offre des fonctionnalités avancées de traitement vocal : clonage et création de voix, doublage vidéo, dictée et transcription en 646 langues via les protocoles REST et MCP. La compétence privilégie le traitement local et respecte les choix utilisateur pour les travailleurs distants, la traduction cloud ou les téléchargements de modèles. Elle prend en charge les workflows synchrones et asynchrones, la découverte dynamique des capacités via OpenAPI/MCP, et intègre des garde-fous stricts : pas d'écriture sur des tokens, pas de génération non vérifiée, pas de téléchargement silencieux de modèles. Compatible avec les agents AI (Claude Code, Cursor, Codex), n8n, les conteneurs et l'application Electron de VoiceStudio, elle se connecte au backend local (par défaut http://localhost:3900) et découvre ses contrats et voix disponibles à l'exécution. L'utilisateur conserve le contrôle : toute intégration externe ou téléchargement nécessite son autorisation explicite.

Compatible avec~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/debpalash/VoiceStudio/tree/main/skills/voicestudio

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait VoiceStudio ?

Utilisez le backend VoiceStudio en cours d'exécution. Privilégiez le traitement local ; les travailleurs distants, la traduction cloud, les téléchargements de modèles et les intégrations externes nécessitent le choix de l'utilisateur. Les modèles installés peuvent fonctionner hors ligne ; ne promettez pas que chaque workflow configuré est hors ligne.

Connexion et découverte

Le backend par défaut est http://localhost:3900 ; respectez l'adresse configurée par l'utilisateur. Le renderer d'Electron et le proxy de développement sont des services séparés, pas l'API publique du backend.

  1. Vérifiez GET /health.
  2. Découvrez les contrats de la version en cours avec GET /openapi.json, et les voix/moteurs avec GET /v1/audio/voices. N'inventez pas d'ID de profil et n'inférez pas les modèles installés à partir d'un catalogue.
  3. Si indisponible, lancez l'application installée. Pour un checkout source existant, suivez le README Electron (bun install, bun run setup:api, puis bun run dev depuis la racine du dépôt). N'installez pas un deuxième backend et n'écrasez pas un checkout existant.
  4. Les configurations locales peuvent autoriser les appels non authentifiés ; les déploiements protégés nécessitent les identifiants configurés. Traitez les codes 401/403 comme des échecs d'authentification, pas comme une autorisation à désactiver l'authentification. N'imprimez jamais de tokens et n'utilisez pas de clé factice comme s'il s'agissait d'un véritable identifiant.

Générer de la parole

Sauvegardez ce JSON dans speech-request.json, en remplaçant voice par un ID de profil découvert lorsque l'utilisateur a sélectionné une voix :

{"model":"tts-1","voice":"alloy","input":"Chaque voix a une histoire. Racontez la vôtre.","response_format":"wav"}
curl --fail-with-body --show-error http://localhost:3900/v1/audio/speech \
  -H 'Content-Type: application/json' --data-binary @speech-request.json \
  --output speech.wav

tts-1 et tts-1-hd sont des alias, pas des garanties de qualité. Les noms de voix OpenAI sont des alias de compatibilité, pas les voix réelles de ces fournisseurs. Privilégiez une voix sauvegardée découverte pour une narration reproductible. Vérifiez la langue du moteur installé et ses capacités de création vocale avant de promettre un résultat.

Vérifiez le statut HTTP et décodez/explorez la sortie avant de l'appeler audio : une réponse d'erreur peut être écrite dans le chemin de sortie. Signalez le chemin sauvegardé et la durée/format réels. Ne fabriquez jamais une génération, une transcription ou un achèvement réussi.

Transcrire

curl --fail-with-body --show-error http://localhost:3900/v1/audio/transcriptions \
  -F [email protected] -F model=whisper-1 -F response_format=verbose_json

Utilisez json ou text pour les transcriptions simples, verbose_json pour les horodatages, et srt/vtt pour les sous-titres lorsqu'ils sont pris en charge par le schéma en cours. Vérifiez l'état de préparation du modèle de transcription avant les longs enregistrements ; expliquez l'absence d'un modèle et obtenez l'autorisation de téléchargement plutôt que de l'installer silencieusement.

Clonage, création, doublage et workflows longs

Utilisez le schéma OpenAPI installé pour découvrir les opérations de création de profil, de téléchargement de références, de génération, de doublage et de tâches longue durée. Leurs points d'accès natifs sont plus larges que l'API de compatibilité OpenAI et évoluent indépendamment.

  • Clonez uniquement les voix que l'utilisateur est autorisé à utiliser. Préservez les fichiers de référence et les profils existants.
  • Pour la création, capturez le ton, la prestation, la langue et le texte d'exemple demandés ; vérifiez la prise en charge du moteur.
  • Pour le doublage, conservez le média d'origine, les affectations de locuteurs, le timing des segments et l'intention audio de fond. L'achèvement de la traduction n'est pas l'achèvement du doublage rendu.
  • Pour les travaux asynchrones, utilisez les identifiants de tâche renvoyés et les points de terminaison de progression/statut documentés. Inspectez les erreurs terminales ; évitez de soumettre à nouveau aveuglément des générations qui ont expiré.
  • Retournez des fichiers utilisables et des limitations honnêtes, y compris les modèles manquants ou les capacités indisponibles.

MCP et automatisation

Le backend en cours d'exécution monte un point de terminaison MCP à l'adresse http://localhost:3900/mcp. Utilisez le transport HTTP pris en charge par le client et découvrez ses outils à l'exécution. Réutilisez une connexion existante plutôt que de lancer un autre service. Pour les clients stdio uniquement, consultez le guide MCP du projet pour son adaptateur.

Pour n8n, les agents appelants, les conteneurs ou autres hôtes, rendez l'adresse du backend accessible depuis cet environnement : localhost dans un conteneur se réfère au conteneur. Conservez l'authentification et les choix explicites de routage distant intacts. La présence d'un répertoire d'intégration ne signifie pas que l'intégration est connectée.

En cas d'erreur, lisez le corps de la réponse, distinguez le backend indisponible, le modèle manquant, la capacité non prise en charge, l'authentification et le matériel occupé. Corrigez la condition signalée ; ne passez pas à un fournisseur hébergé et ne téléchargez pas de modèle sans autorisation.

Workflows de bureau et état de préparation

L'application Electron inclut le clonage et la création de voix, les profils et la galerie sauvegardés, les histoires/livres audio, les projets de doublage, la transcription, les outils et les intégrations. Privilégiez ses identifiants de projet et de voix existants plutôt que d'en créer des doublons. Pour l'automatisation du bureau, inspectez l'interface utilisateur réelle et les raccourcis Paramètres actuels ; ne supposez pas que les raccourcis ou les autorisations du microphone sont les mêmes sur tous les hôtes.

Avant la dictée, vérifiez qu'un modèle de reconnaissance vocale est installé et qu'un périphérique d'entrée fonctionne. Distinguez l'enregistrement, l'enregistrement en pause, le traitement de la transcription et le texte terminé. Copier une transcription et l'insérer dans une autre application sont des opérations différentes ; confirmez la cible prévue avant de taper et préservez le contenu du presse-papiers lorsque c'est pris en charge. Ne signalez jamais un texte comme livré simplement parce que la transcription est terminée.

Pour le doublage, inspectez les segments manquants/échoués et le dépassement de timing avant l'exportation. Préservez la musique et l'audio non vocal lorsqu'ils sont demandés ; ne remplacez pas silencieusement la bande sonore entière. Préservez la source et faites de la sortie un artefact séparé. Les instructions de style de traduction appartiennent à l'opération de traduction sélectionnée, et la traduction par agent distant nécessite le choix du fournisseur configuré par l'utilisateur.

Utilisez le répertoire des intégrations comme guide de découverte et de configuration, pas comme preuve d'un connecteur fonctionnel. Vérifiez les identifiants réels, l'accessibilité du point de terminaison et les opérations prises en charge avant de décrire une connexion comme prête. Les déploiements en conteneur nécessitent des volumes de données persistants et une URL de backend accessible par le client appelant.

Skills associés