Community코딩 & 개발github.com

Brclio/Skills

ListenHub를 사용하여 Xiaoman과 Cola 여성 음성으로 장문의 중국어 내레이션을 생성하고 전달합니다. 사용자가 전체 텍스트를 읽어 달라고 요청하거나, 긴 스크립트를 오디오 파트로 분할하고, 분할 및 병합된 MP3 파일을 제공하거나, Xiaoman/晓曼 및 Cola 음성을 비교 또는 보존하거나, 동일한 오디오를 두 음성으로 요청할 때 사용합니다. 이 스킬은 Cola/ListenHub 전용이며 ListenHub TTS 기능과 로컬 파일 다운로드 및 오디오 연결이 필요합니다.

Skills란 무엇인가요?

이 스킬은 ListenHub 플랫폼에서 제공하는 Xiaoman(晓曼)과 Cola 두 가지 여성 음성으로 긴 중국어 스크립트를 오디오 파일로 변환해 주는 에이전트 도구입니다. 주요 기능은 긴 입력을 안정적으로 처리하고 두 음성 변형 간의 우발적인 덮어쓰기를 방지하는 데 있습니다. 사용자가 전체 텍스트를 요청하거나, 긴 스크립트를 여러 오디오 파트로 나누거나, 분할 및 병합된 MP3 파일을 제공할 때 이 스킬이 활성화됩니다. 또한 동일한 내용을 두 음성으로 비교하거나, 각각의 음성을 개별적으로 생성할 수 있습니다. 스킬은 자동으로 텍스트를 청크로 분할하고, 각 청크를 ListenHub TTS에 전달한 후 생성된 오디오 URL을 다운로드하여 두 음성 모두에 대한 개별 MP3 파일과 하나의 병합된 MP3 파일을 제공합니다. 모든 단계에서 음성별 디렉터리를 사용하여 파일을 분리하고, 최종 응답에는 모든 청크와 병합 파일에 대한 `MEDIA:` 줄이 포함됩니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Brclio/Skills/tree/HEAD/skills/cola-voice-delivery

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Cola 음성 전달

두 가지 명명된 ListenHub 음성으로 긴 중국어 스크립트를 생성하고, 각 세그먼트와 완전히 병합된 MP3 파일을 제공합니다. 이 워크플로우는 긴 입력 오류와 음성 변형 간의 우발적인 덮어쓰기를 방지하기 위해 존재합니다.

간단한 호출

스킬 호출과 첨부된 텍스트 파일을 완전한 사용자 입력으로 처리합니다. 사용자에게 분할, 붙여넣기, 업로드, 이름 변경, 다운로드 또는 병합을 요청하지 마십시오. 기본 출력은 두 음성입니다:

  • 晓曼: 정렬된 모든 MP3 청크 + 하나의 병합된 MP3
  • Cola: 정렬된 모든 MP3 청크 + 하나의 병합된 MP3

청크 수는 동적입니다. 고정된 수가 아닌 소스 길이와 신뢰할 수 있는 TTS 입력 크기에서 선택하십시오. 짧은 텍스트는 하나의 청크를 생성할 수 있고, 긴 팟캐스트 스크립트는 여러 개를 생성할 수 있습니다. 모든 파일이 로컬에 존재하고 각 파일이 MEDIA: 줄과 함께 제공될 때까지 성공적인 실행이 완료되지 않습니다. 사용자가 명시적으로 하나의 음성만 요청하면 해당 음성의 전체 세트를 제공하고, 그렇지 않으면 두 음성을 모두 생성하십시오.

음성 레지스트리

정확한 ListenHub 스피커 ID를 사용하십시오:

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

하나의 음성을 다른 음성으로 대체하지 마십시오. 최종 응답에서는 각 파일 그룹에 사용된 정확한 음성을 명시하십시오.

허용되는 입력

원시 텍스트 또는 첨부된 텍스트/문서 파일을 허용합니다. 입력이 팟캐스트 오디오 파일 또는 팟캐스트 URL인 경우 먼저 ASR/전사 기능을 사용하여 전사한 다음 결과 전사본을 내레이션 소스로 사용하십시오. 전사본의 순서를 유지하고 의미 있는 경우 화자 또는 섹션을 분리하십시오.

생성 전략

긴 첨부 파일이나 비공개 파일 URL을 ListenHub에 직접 보내는 대신, 섹션을 보존하는 2패스 파이프라인을 사용하십시오:

  1. 원래 내러티브 순서와 의미 있는 섹션 제목을 유지하면서 소스를 말할 수 있는 텍스트로 정규화합니다.
  2. 각 TTS 요청이 신뢰할 수 있는 입력 크기 내에 유지되고 실패한 요청을 전체 책을 다시 생성하지 않고 재시도할 수 있도록 챕터 또는 섹션 경계에서 분할합니다.
  3. 동일한 정렬된 청크 세트를 Xiaoman으로 한 번, Cola로 한 번 생성합니다. 음성 실행을 독립적으로 유지하여 한 음성의 실패나 재시도가 다른 음성을 대체하지 못하도록 합니다.
  4. 각 ListenHub 에피소드를 성공할 때까지 폴링한 다음 반환된 audioUrl을 다운로드합니다. 서비스의 개요나 요약이 아닌 생성된 오디오 URL을 사용하십시오.
  5. 음성별 디렉터리에 청크를 저장하고 예상되는 모든 청크가 존재한 후에만 병합합니다. 두 병합된 출력의 지속 시간과 크기를 확인합니다.
  6. 모든 청크와 두 병합된 파일을 제공합니다. 이렇게 하면 개별 챕터 교체가 가능하고 완전한 오디오북을 재생하기 편리하게 유지할 수 있습니다.

원시 청크 텍스트를 직접 전달하는 것은 의도적입니다. ListenHub는 로컬 경로와 비공개 업로드 텍스트 URL을 유효하지 않은 소스로 거부할 수 있습니다. ListenHub 끝점이 특히 URL 또는 HTML 소스를 요구하는 경우, 이스케이프된 소스 텍스트를 article 요소 안에 포함하는 임시 HTML 문서를 생성하고 사용자의 승인을 받아 업로드한 후 결과로 나오는 가져올 수 있는 URL을 전달합니다. HTML을 대체 전송 수단으로 취급하고 직접 청크 생성을 대체하는 것이 아닙니다. HTML URL이 거부되면 직접 청크 텍스트로 돌아갑니다. 이름과 디렉터리를 분리하는 것도 동일하게 의도적입니다. 공유 출력 이름은 이전에 유효했던 음성 버전을 덮어쓸 수 있습니다.

워크플로우

  1. 오디오를 생성하기 전에 완전한 입력을 읽거나 전사합니다. 소스 순서와 표현을 유지합니다. 사용자가 문서를 문자 그대로 읽도록 요청하지 않는 한 Markdown 제목 구문과 같이 말하면 안 되는 마크업만 제거합니다. 스크립트의 일부인 경우 의미 있는 섹션 제목과 내레이션 큐를 유지합니다.
  2. 신뢰할 수 있는 입력 크기를 추정하고 동적으로 분할합니다. 섹션 경계(##, 챕터 제목 또는 자연스러운 단락 나누기)를 선호하고, 그런 다음 초대형 섹션을 단락 경계에서 분할합니다. 필요한 만큼 많은 청크를 사용하고 11과 같은 고정된 수를 강제하지 마십시오. 0으로 채워진 인덱스를 사용하여 청크 이름을 지정합니다: 00, 01, 02 등.
  3. 각 요청된 음성에 대해 ListenHub create_tts를 호출합니다:
    • language: zh
    • tts_type: text
    • tts_mode: direct
    • 선택한 스피커 ID
    • 정확히 하나의 청크에 대한 원시 텍스트
  4. 반환된 각 에피소드를 check_status로 processStatus가 success가 될 때까지 폴링합니다. 반환된 audioUrl을 청크 순서대로 기록합니다. 에피소드 개요를 오디오 소스로 사용하지 마십시오. 제공된 스크립트 대신 요약일 수 있습니다.
  5. 성공한 모든 오디오 URL을 로컬로 다운로드합니다. 각 음성에 대해 별도의 디렉터리를 사용하십시오. 예:
    • xiaoman-listenhub-parts/00.mp3
    • cola-listenhub-parts/00.mp3
  6. 번들된 scripts/merge_mp3.sh 또는 동등한 FFmpeg concat 워크플로우를 사용하여 각 음성의 청크를 병합합니다. 별도의 명시적 출력 이름을 사용하십시오:
    • 全文朗读-晓曼-ListenHub合并版.mp3
    • 全文朗读-Cola-ListenHub合并版.mp3 두 변형을 공유 파일 이름에 절대 쓰지 마십시오.
  7. 오디오 프로브로 각 병합된 파일을 확인합니다. 지속 시간과 파일 크기를 보고하고, 전달 전에 예상되는 모든 청크 파일이 존재하는지 확인합니다.
  8. 모든 파일(두 병합된 파일과 두 음성의 모든 분할 파일)에 대해 하나의 MEDIA: /absolute/path 줄을 제공합니다. 디렉터리만 또는 병합된 버전만 제공하지 마십시오.

입력 및 오류 처리

  • 로컬 첨부 파일을 ListenHub에 직접 전달할 수 없는 경우 로컬에서 읽고 청크 텍스트를 직접 create_tts에 전달하십시오. 내레이션 내용으로 로컬 경로를 전달하지 마십시오. ListenHub가 경로를 그대로 읽거나 거부합니다.
  • 비공개 업로드 텍스트 URL이 Invalid input at source로 거부되면 해당 URL 재시도를 중지하고 직접 청크 텍스트를 대신 사용하십시오.
  • 생성은 성공했지만 audioUrl 다운로드가 시간 초과되면 반환된 ListenHub 에셋 호스트에 대해 재시도하고 에피소드 ID 및 URL 매핑을 유지하십시오.
  • 음성 생성이 실패하면 다른 음성으로 조용히 대체하지 마십시오. 실패한 음성을 보고하고 성공적으로 생성된 음성 파일을 유지하십시오.
  • 음성별 새 파일 이름을 선택하여 기존 파일을 보존하십시오. 이전 음성의 병합된 파일을 덮어쓰면 유효한 전달물이 손실됩니다.
  • 긴 스크립트의 경우 생성 비용이 지불될 수 있고 몇 분이 걸릴 수 있습니다. 다단계 작업으로 추적하고 두 요청된 음성 그룹, 해당 청크 및 병합된 파일이 확인된 후에만 완료된 것으로 표시하십시오.

최종 승인 확인

답변하기 전에 하나의 TTS 요청만 성공한 것이 아니라 전체 체인을 확인하십시오:

  1. 원시 텍스트 또는 팟캐스트 전사본이 완전히 읽혔고 섹션 순서가 유지되었습니다.
  2. 입력 길이에서 동적 청크 수가 선택되었으며 고정된 세그먼트 수가 가정되지 않았습니다.
  3. 두 요청된 음성에 대해 동일하게 동적으로 선택된 청크 인덱스가 존재합니다.
  4. 모든 청크에 대해 다운로드된 비어 있지 않은 MP3 파일이 있습니다.
  5. 각 음성에 대해 공유 파일 이름이나 덮어쓰기 없이 별도의 병합된 MP3가 있습니다.
  6. FFprobe 또는 동등한 오디오 프로브가 두 병합된 파일의 지속 시간과 크기를 보고합니다.
  7. 최종 응답은 두 개의 정확한 스피커 ID를 식별하고 모든 청크 및 모든 병합된 파일에 대해 하나의 MEDIA: 줄을 포함합니다.

어느 확인이라도 실패하면 계속 작업하거나 특정 실패한 음성/청크를 보고하십시오. 전체 전달을 주장하지 마십시오.

전달 체크리스트

  • 모든 생성에 올바른 스피커 ID 사용
  • 모든 소스 섹션이 순서대로 포함됨
  • 각 요청된 음성에 대해 모든 청크가 다운로드됨
  • 병합된 파일에 고유한 음성별 이름이 있음
  • 지속 시간 및 파일 크기 확인됨
  • 모든 청크 파일과 두 병합된 파일이 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.

관련 스킬