Brclio/Skills

Générer et livrer une narration chinoise longue via ListenHub en utilisant les voix féminines Xiaoman et Cola. À utiliser lorsque l'utilisateur demande de lire un texte complet, de diviser un script long en parties audio, de fournir des fichiers MP3 segmentés et fusionnés, de comparer ou préserver les voix Xiaoman/晓曼 et Cola, ou de demander le même audio dans les deux voix. Cette compétence est spécifique à Cola/ListenHub et nécessite la capacité TTS ListenHub, ainsi que le téléchargement local de fichiers et la concaténation audio.

Qu'est-ce que Skills ?

Cette compétence génère et livre des narrations chinoises longues via ListenHub, en utilisant les deux voix nommées Xiaoman (chat-girl-105-cn) et Cola (chatb812x-500306f5). Elle résout les problèmes de limites de saisie longue et d'écrasement accidentel entre variantes vocales en suivant un pipeline en deux passes qui préserve les sections. La compétence prend en entrée du texte brut, un fichier texte attaché, ou un fichier/podcast audio (qu'elle transcrit d'abord). Elle divise dynamiquement le script en chunks basés sur les limites de chapitres ou de paragraphes, génère chaque chunk avec TTS pour les deux voix, télécharge localement les fichiers MP3 séparés par répertoire vocal, et les fusionne en un seul fichier MP3 par voix. La livraison comprend tous les chunks segmentés ET les fichiers fusionnés pour chaque voix, chaque fichier étant livré avec une ligne MEDIA. La compétence fonctionne de manière indépendante pour chaque voix, gère les pannes de génération ou de téléchargement sans substituer une voix à l'autre, et inclut une vérification finale rigoureuse (présence, durée, taille de tous les fichiers) avant de déclarer la tâche terminée.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Brclio/Skills/tree/HEAD/skills/cola-voice-delivery

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

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

Documentation

Livraison des voix Cola et Xiaoman

Générer de longs scripts chinois dans deux voix nommées ListenHub et livrer chaque segment plus un fichier MP3 fusionné complet. Le workflow existe pour éviter les échecs de saisie longue et les écrasements accidentels entre variantes vocales.

Invocation simple

Traitez l'appel de compétence plus un fichier texte attaché comme l'entrée utilisateur complète. Ne demandez pas à l'utilisateur de diviser, coller, télécharger, renommer, ou fusionner quoi que ce soit. La sortie par défaut est les deux voix :

  • 晓曼 : tous les chunks MP3 ordonnés plus un MP3 fusionné
  • Cola : tous les chunks MP3 ordonnés plus un MP3 fusionné

Le nombre de chunks est dynamique : choisissez-le en fonction de la longueur source et de la taille d'entrée TTS fiable, pas d'un nombre fixe. Un texte court peut produire un seul chunk ; un script de podcast long peut en produire beaucoup. Une exécution réussie n'est complète que lorsque tous les fichiers sont présents localement et que chaque fichier est livré avec une ligne MEDIA:. Si l'utilisateur demande explicitement une seule voix, livrez l'ensemble complet de cette voix ; sinon générez les deux.

Registre des voix

Utilisez ces identifiants de haut-parleur ListenHub exacts :

  • Xiaoman / 晓曼 : chat-girl-105-cn
  • Cola : chatb812x-500306f5

Ne substituez pas une voix à l'autre. Dans la réponse finale, indiquez la voix exacte utilisée pour chaque groupe de fichiers.

Entrée acceptée

Acceptez soit du texte brut, soit un fichier texte/document attaché. Si l'entrée est un fichier audio de podcast ou une URL de podcast, transcrivez-la d'abord avec une capacité ASR/transcription, puis utilisez la transcription résultante comme source de narration. Conservez l'ordre de la transcription et séparez les locuteurs ou sections lorsque cela est pertinent.

Stratégie de génération

Utilisez un pipeline en deux passes qui préserve les sections, plutôt que d'envoyer une longue pièce jointe ou une URL de fichier privée à ListenHub :

  1. Normalisez la source en texte prononçable tout en conservant l'ordre narratif original et les titres de sections significatifs.
  2. Divisez aux limites de chapitres ou de sections afin que chaque requête TTS reste dans une taille d'entrée fiable et qu'une requête échouée puisse être réessayée sans régénérer tout le livre.
  3. Générez le même ensemble ordonné de chunks une fois avec Xiaoman et une fois avec Cola. Maintenez les exécutions vocales indépendantes pour qu'un échec ou une nouvelle tentative dans une voix ne puisse pas remplacer l'autre.
  4. Interrogez chaque épisode ListenHub jusqu'à succès, puis téléchargez son audioUrl retourné. Utilisez l'URL audio générée, pas le plan ou résumé du service.
  5. Stockez les chunks dans des répertoires spécifiques à chaque voix et ne fusionnez qu'après que chaque chunk attendu est présent. Vérifiez la durée et la taille pour les deux sorties fusionnées.
  6. Livrez chaque chunk et les deux fichiers fusionnés. Cela rend possible le remplacement individuel de chapitre et garde l'audiobook complet pratique à écouter.

Passer directement le texte brut du chunk est intentionnel : ListenHub peut rejeter les chemins locaux et les URLs de texte téléchargé privé comme sources invalides. Si l'endpoint ListenHub nécessite spécifiquement une URL ou une source HTML, créez un document HTML temporaire contenant le texte source échappé à l'intérieur d'un élément article, téléchargez-le uniquement avec l'autorisation de l'utilisateur, et passez l'URL récupérable résultante. Traitez HTML comme un transport de repli, pas comme un remplacement de la génération directe de chunks ; si l'URL HTML est rejetée, revenez au texte brut du chunk. Les noms et répertoires séparés sont également intentionnels : un nom de sortie partagé peut écraser une version vocale précédemment valide.

Workflow

  1. Lisez ou transcrivez l'entrée complète avant de générer l'audio. Préservez l'ordre et le libellé source. Supprimez uniquement le balisage qui ne doit pas être prononcé, comme la syntaxe des en-têtes Markdown, sauf si l'utilisateur demande une lecture littérale du document. Conservez les titres de sections significatifs et les indications de narration lorsqu'ils font partie du script.
  2. Estimez la taille d'entrée fiable et divisez dynamiquement. Préférez les limites de sections (##, titres de chapitres, ou sauts de paragraphe naturels), puis divisez les sections surdimensionnées aux limites de paragraphe. Utilisez autant de chunks que nécessaire ; n'imposez jamais un nombre fixe comme 11. Nommez les chunks avec des indices remplis de zéros : 00, 01, 02, etc.
  3. Pour chaque voix demandée, appelez ListenHub create_tts avec :
    • language: zh
    • tts_type: text
    • tts_mode: direct
    • l'ID de haut-parleur sélectionné
    • le texte brut d'exactement un chunk
  4. Interrogez chaque épisode retourné avec check_status jusqu'à ce que processStatus soit success. Enregistrez le audioUrl retourné dans l'ordre des chunks. N'utilisez pas le plan de l'épisode comme source audio ; il peut s'agir d'un résumé plutôt que du script fourni.
  5. Téléchargez chaque URL audio réussie localement. Utilisez des répertoires séparés pour chaque voix, par exemple :
    • xiaoman-listenhub-parts/00.mp3
    • cola-listenhub-parts/00.mp3
  6. Fusionnez les chunks de chaque voix avec le script scripts/merge_mp3.sh ou un workflow concat FFmpeg équivalent. Utilisez des noms de sortie explicites distincts :
    • 全文朗读-晓曼-ListenHub合并版.mp3
    • 全文朗读-Cola-ListenHub合并版.mp3 N'écrivez jamais les deux variantes dans un nom de fichier partagé.
  7. Vérifiez chaque fichier fusionné avec une sonde audio. Signalez la durée et la taille du fichier, et assurez-vous que tous les fichiers de chunks attendus existent avant la livraison.
  8. Livrez une ligne MEDIA: /chemin/absolu pour chaque fichier : les deux fichiers fusionnés et tous les fichiers segmentés pour les deux voix. Ne livrez pas seulement un répertoire ou seulement les versions fusionnées.

Entrée et gestion des pannes

  • Si une pièce jointe locale ne peut pas être transmise directement à ListenHub, lisez-la localement et passez le texte du chunk directement à create_tts. Ne passez pas un chemin local comme contenu de narration : ListenHub lira le chemin littéralement ou le rejettera.
  • Si une URL de texte téléchargé privée est rejetée avec Invalid input at source, arrêtez de réessayer cette URL et utilisez le texte brut du chunk.
  • Si une génération réussit mais que le téléchargement de son audioUrl expire, réessayez contre l'hôte de ressource ListenHub retourné et préservez le mappage ID d'épisode et URL.
  • Si une génération vocale échoue, ne substituez pas silencieusement l'autre voix. Signalez la voix ayant échoué et conservez tous les fichiers de voix générés avec succès.
  • Préservez les fichiers existants en choisissant un nom de fichier spécifique à la voix nouveau. Écraser le fichier fusionné d'une voix précédente perd un livrable valide.
  • Pour un script long, la génération peut être payante et peut prendre plusieurs minutes. Suivez le travail comme une tâche en plusieurs étapes et marquez-la comme terminée uniquement après que les deux groupes vocaux demandés, leurs chunks et leurs fichiers fusionnés ont été vérifiés.

Vérification d'acceptation finale

Avant de répondre, vérifiez la chaîne complète, pas seulement qu'une requête TTS a réussi :

  1. Le texte brut ou la transcription du podcast a été entièrement lu et son ordre des sections a été préservé.
  2. Un nombre dynamique de chunks a été choisi en fonction de la longueur d'entrée ; aucun nombre fixe de segments n'a été supposé.
  3. Les mêmes indices de chunks dynamiques existent pour les deux voix demandées.
  4. Chaque chunk a un fichier MP3 téléchargé et non vide.
  5. Chaque voix a un fichier MP3 fusionné séparé, sans nom de fichier partagé ni écrasement.
  6. FFprobe ou une sonde audio équivalente rapporte la durée et la taille pour les deux fichiers fusionnés.
  7. La réponse finale identifie les deux identifiants exacts du haut-parleur et contient une ligne MEDIA: pour chaque chunk et chaque fichier fusionné.

Si une vérification échoue, continuez à travailler ou signalez le chunk/la voix spécifique ayant échoué ; ne prétendez pas une livraison complète.

Liste de contrôle de livraison

  • Identifiant de haut-parleur correct utilisé pour chaque génération
  • Toutes les sections source couvertes dans l'ordre
  • Chaque chunk téléchargé pour chaque voix demandée
  • Les fichiers fusionnés ont des noms distincts spécifiques à la voix
  • Durée et taille du fichier vérifiées
  • Tous les fichiers chunks et les deux fichiers fusionnés livrés avec des lignes MEDIA:

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

Brclio/Skills

>- Create a reusable content-illustration character and simple IP Standard Pack for a person, creator account, or brand. Use for personal IP, account mascots, brand characters, blind-box or designer-toy characters, “把我变成一个角色”, “做一个账号形象”, or when someone needs consistent character images, values, turnaround views, and reusable prompts.

Brclio/Skills

生成 Bornforthis 个人 IP 风格的中文正文配图。用于用户要求为中文文章、帖子、博客、Notion 文档、知识讲解、工作流、方法论、流程、结构、状态、隐喻或观点制作“Bornforthis”“个人 IP”“蜡笔手绘”“正文配图”“文章插图”“配图建议”“shot list”“去标题”或“改图”时;默认使用 Bornforthis 青年男性角色、纯白背景、蜡笔或马克笔斜线纹理、深蓝粗描边、少量蓝红中文批注和温暖而略荒诞的绘本风格。

Brclio/Skills

Turn one or more user-provided reference photos into a complete publishable WeChat sticker album: plan and generate exactly 20 separate identity-consistent Q-version stickers with varied Chinese reactions, preserve untouched originals and high-resolution generation sources, create current-spec WeChat banner/cover/chat-icon assets and submission metadata, validate every deliverable, and build upload-only plus full-archive packages. Use when the user wants to create, rebuild, package, or prepare a WeChat sticker pack from reference images.

Brclio/Skills

Design a gender-adaptive personal-IP cartoon system from one portrait for users with no art background. Provides classic, random, guaranteed light-palette, industry full-body, and official brand or university VI theme modules plus action designs, front full-body characters, eight-angle turnarounds, 24-emotion packs, collages, and an offline HTML selection gallery. When the user gives no explicit feature-control instruction, every applicable feature defaults on. Use for personal IP, professional or industry avatars, campus-color characters, character sheets, expression packs, avatar blind boxes, interactive image shortlisting, or expansion of an approved set.

Skills associés