CommunityProgramación y desarrollogithub.com

Brclio/Skills

Genera y entrega narraciones largas en chino a través de ListenHub usando las voces femeninas Xiaoman y Cola. Úsalo cuando el usuario pida leer un texto completo, dividir un guion largo en partes de audio, proporcionar archivos MP3 segmentados y fusionados, comparar o preservar las voces Xiaoman/晓曼 y Cola, o solicitar el mismo audio en ambas voces. Esta skill es específica de Cola/ListenHub y requiere la capacidad TTS de ListenHub, además de descarga local de archivos y concatenación de audio.

¿Qué es Skills?

Esta skill está diseñada para generar y entregar narraciones largas en chino mediante el servicio ListenHub, utilizando dos voces femeninas específicas: Xiaoman (晓曼) y Cola. Su propósito principal es evitar fallos por entradas largas y sobrescrituras accidentales entre variantes de voz. La skill acepta texto sin formato o archivos de texto adjuntos, y también puede transcribir archivos de audio o URLs de podcasts como fuente de narración. El flujo de trabajo es un pipeline de dos pasos que preserva secciones: primero normaliza el texto, lo divide en fragmentos dinámicos en función de la longitud, y luego genera el mismo conjunto de fragmentos con cada voz de forma independiente. Los fragmentos se descargan, almacenan en directorios separados por voz, y se fusionan en un único archivo MP3 por voz. La skill entrega tanto los fragmentos individuales como los archivos fusionados, todo con líneas `MEDIA:` para cada archivo. Es útil para cualquier situación en la que un usuario necesite leer un texto completo en voz alta, comparar dos voces, o generar un audiolibro largo sin pérdida de datos. Soporta las plataformas que tengan integración con ListenHub y requieran capacidades TTS. La skill se basa en una estrategia de generación que evita enviar URLs de archivos largos o rutas locales a ListenHub, prefiriendo pasar texto de fragmentos directamente, y utiliza HTML como mecanismo de respaldo solo si es necesario.

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

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Cola Voice Delivery

Genera guiones largos en chino en dos voces de ListenHub y entrega cada segmento además de un MP3 fusionado completo. El flujo de trabajo existe para evitar fallos por entradas largas y sobrescrituras accidentales entre variantes de voz.

Invocación Simple

Trata la llamada a la skill más un archivo de texto adjunto como la entrada completa del usuario. No le pidas al usuario que divida, pegue, suba, renombre, descargue o fusione nada. La salida predeterminada son ambas voces:

  • 晓曼: todos los fragmentos MP3 ordenados más un MP3 fusionado
  • Cola: todos los fragmentos MP3 ordenados más un MP3 fusionado

El número de fragmentos es dinámico: elígelo según la longitud de la fuente y el tamaño de entrada fiable de TTS, no a partir de un número fijo. Un texto corto puede producir un fragmento; un guion de podcast largo puede producir muchos. Una ejecución exitosa no está completa hasta que todos los archivos estén presentes localmente y cada archivo se entregue con una línea MEDIA:. Si el usuario solicita explícitamente solo una voz, entrega el conjunto completo de esa voz; de lo contrario, genera ambas.

Registro de Voces

Usa estos IDs de altavoz exactos de ListenHub:

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

No sustituyas una voz por la otra. En la respuesta final, indica la voz exacta utilizada para cada grupo de archivos.

Entrada Aceptada

Acepta texto sin formato o un archivo de texto/documento adjunto. Si la entrada es un archivo de audio de podcast o una URL de podcast, transcríbelo primero con una capacidad ASR/transcripción, luego usa la transcripción resultante como fuente de narración. Mantén el orden de la transcripción y separa los hablantes o secciones cuando sean significativos.

Estrategia de Generación

Usa un pipeline de dos pasos que preserva secciones, en lugar de enviar un adjunto largo o una URL de archivo privado a ListenHub:

  1. Normaliza la fuente a texto hablable manteniendo el orden narrativo original y los títulos de sección significativos.
  2. Divide en los límites de capítulos o secciones para que cada solicitud TTS se mantenga dentro de un tamaño de entrada fiable y una solicitud fallida se pueda reintentar sin regenerar todo el libro.
  3. Genera el mismo conjunto de fragmentos ordenados una vez con Xiaoman y una vez con Cola. Mantén las ejecuciones de voz independientes para que un fallo o reintento en una voz no pueda reemplazar a la otra.
  4. Haz poll a cada episodio de ListenHub hasta que tenga éxito, luego descarga su audioUrl devuelto. Usa la URL de audio generada, no el resumen o esquema del servicio.
  5. Almacena los fragmentos en directorios específicos de voz y fusiona solo después de que todos los fragmentos esperados estén presentes. Verifica la duración y el tamaño para ambas salidas fusionadas.
  6. Entrega cada fragmento y ambos archivos fusionados. Esto hace posible el reemplazo de capítulos individuales y mantiene el audiolibro completo conveniente para reproducir.

Pasar texto de fragmento directamente es intencional: ListenHub puede rechazar rutas locales y URLs de texto subidas privadas como fuentes inválidas. Si el endpoint de ListenHub requiere específicamente una URL o fuente HTML, crea un documento HTML temporal que contenga el texto fuente escapado dentro de un elemento article, súbelo solo con la autorización del usuario, y pasa la URL resultante obtenible. Trata HTML como un transporte de respaldo, no como un reemplazo para la generación directa de fragmentos; si la URL HTML es rechazada, vuelve al texto de fragmento directo. Los nombres y directorios separados también son intencionales: un nombre de salida compartido puede sobrescribir una versión de voz previamente válida.

Flujo de Trabajo

  1. Lee o transcribe la entrada completa antes de generar audio. Preserva el orden y la redacción de la fuente. Elimina solo el marcado que no deba ser hablado, como la sintaxis de encabezados de Markdown, a menos que el usuario solicite una lectura literal del documento. Mantén los títulos de sección significativos y las señales de narración cuando sean parte del guion.
  2. Estima el tamaño de entrada fiable y divide dinámicamente. Prefiere los límites de sección (##, títulos de capítulo, o saltos de párrafo naturales), luego divide las secciones demasiado grandes en los límites de párrafo. Usa tantos fragmentos como sea necesario; nunca fuerces un número fijo como 11. Nombra los fragmentos con índices rellenados con ceros: 00, 01, 02, y así sucesivamente.
  3. Para cada voz solicitada, llama a ListenHub create_tts con:
    • language: zh
    • tts_type: text
    • tts_mode: direct
    • el ID de altavoz seleccionado
    • el texto sin formato de exactamente un fragmento
  4. Haz poll a cada episodio devuelto con check_status hasta que processStatus sea success. Registra el audioUrl devuelto en orden de fragmento. No uses el resumen del episodio como fuente de audio; puede ser un resumen en lugar del guion proporcionado.
  5. Descarga cada URL de audio exitosa localmente. Usa directorios separados para cada voz, por ejemplo:
    • xiaoman-listenhub-parts/00.mp3
    • cola-listenhub-parts/00.mp3
  6. Fusiona los fragmentos de cada voz con el script incluido scripts/merge_mp3.sh o un flujo de trabajo equivalente de concat de FFmpeg. Usa nombres de salida separados y explícitos:
    • 全文朗读-晓曼-ListenHub合并版.mp3
    • 全文朗读-Cola-ListenHub合并版.mp3 Nunca escribas ambas variantes en un nombre de archivo compartido.
  7. Verifica cada archivo fusionado con un probe de audio. Informa duración y tamaño de archivo, y asegúrate de que todos los archivos de fragmentos esperados existan antes de la entrega.
  8. Entrega una línea MEDIA: /ruta/absoluta para cada archivo: ambos archivos fusionados y todos los archivos segmentados para ambas voces. No entregues solo un directorio o solo las versiones fusionadas.

Manejo de Entrada y Fallos

  • Si un archivo adjunto local no se puede pasar directamente a ListenHub, léelo localmente y pasa el texto del fragmento directamente a create_tts. No pases una ruta local como contenido de narración: ListenHub leerá la ruta literalmente o la rechazará.
  • Si una URL de texto subida privada es rechazada como Invalid input at source, deja de reintentar esa URL y usa el texto de fragmento directo.
  • Si una generación tiene éxito pero la descarga de su audioUrl se agota, reintenta contra el host de activos devuelto de ListenHub y preserva el ID del episodio y el mapeo de URL.
  • Si una generación de voz falla, no sustituyas silenciosamente la otra voz. Informa de la voz fallida y conserva los archivos de voz generados exitosamente.
  • Preserva los archivos existentes eligiendo un nombre de archivo nuevo y específico de voz. Sobrescribir el archivo fusionado de una voz anterior pierde un entregable válido.
  • Para un guion largo, la generación puede ser de pago y puede llevar varios minutos. Rastrea el trabajo como una tarea de varios pasos y márcalo como completado solo después de que ambos grupos de voz solicitados, sus fragmentos y sus archivos fusionados hayan sido verificados.

Verificación de Aceptación Final

Antes de responder, verifica la cadena completa, no solo que una solicitud TTS haya tenido éxito:

  1. El texto sin formato o la transcripción del podcast se leyó completamente y se preservó el orden de sus secciones.
  2. Se eligió un recuento de fragmentos dinámico a partir de la longitud de entrada; no se asumió un número de segmentos fijo.
  3. Los mismos índices de fragmentos elegidos dinámicamente existen para ambas voces solicitadas.
  4. Cada fragmento tiene un archivo MP3 descargado y no vacío.
  5. Cada voz tiene un MP3 fusionado separado, sin nombre de archivo compartido ni sobrescritura.
  6. FFprobe o un probe de audio equivalente informa duración y tamaño para ambos archivos fusionados.
  7. La respuesta final identifica los dos IDs de altavoz exactos y contiene una línea MEDIA: para cada fragmento y cada archivo fusionado.

Si alguna comprobación falla, sigue trabajando o informa del fragmento/voz fallido específico; no afirmes la entrega completa.

Lista de Verificación de Entrega

  • ID de altavoz correcto utilizado para cada generación
  • Todas las secciones fuente cubiertas en orden
  • Cada fragmento descargado para cada voz solicitada
  • Los archivos fusionados tienen nombres distintos específicos de voz
  • Duración y tamaño de archivo verificados
  • Todos los archivos de fragmentos y ambos archivos fusionados entregados con líneas 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 relacionados