Communitygithub.com

babysor/MockingBird

Kokoro 또는 Noiz를 사용하여 텍스트를 음성으로 변환합니다. 간단 모드와 타임라인 정렬 모드를 지원합니다.

MockingBird란 무엇인가요?

이 스킬은 텍스트를 자연스러운 음성 오디오로 변환하는 텍스트 음성 변환(TTS) 도구입니다. 두 가지 백엔드(Kokoro 로컬, Noiz 클라우드)를 지원하며, 간단한 텍스트-오디오 변환(단순 모드)과 SRT 자막 기반의 타임라인 정밀 정렬(타임라인 모드) 두 가지 모드를 제공합니다. 타임라인 모드에서는 구간별로 음성, 언어, 감정, 속도를 세밀하게 제어할 수 있어 더빙, 자막 내레이션, 오디오북 제작에 특히 유용합니다. Noiz 백엔드는 음성 복제, 감정 제어, 정확한 구간 길이 지정을 지원하며, 원본 비디오에서 구간별 참조 오디오를 자동으로 추출하는 동적 참조 오디오 슬라이싱 기능도 제공합니다. 주로 Claude Code, Cursor, Codex와 같은 AI 에이전트 환경에서 사용되며, 쉘 스크립트를 통해 명령줄로 실행됩니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/babysor/MockingBird/tree/HEAD/skills/speak

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

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

문서

speak

모든 텍스트를 음성 오디오로 변환합니다. 두 가지 백엔드(Kokoro 로컬, Noiz 클라우드), 두 가지 모드(단순 또는 타임라인 정밀), 그리고 구간별 음성 제어를 지원합니다.

트리거

  • 텍스트 음성 변환 / 말하기 / 발음 / TTS
  • 음성 복제 / 더빙
  • EPUB를 오디오로 / SRT를 오디오로 / 오디오로 변환

단순 모드 — 텍스트를 오디오로

# Kokoro (설치 시 자동 감지)
bash skills/speak/scripts/tts.sh speak -t "Hello world" -v af_sarah -o hello.wav
bash skills/speak/scripts/tts.sh speak -f article.txt -v zf_xiaoni --lang cmn -o out.mp3 --format mp3

# Noiz (NOIZ_API_KEY 설정 시 자동 감지, 또는 --backend noiz로 강제 지정)
# --voice-id를 생략하면 스크립트가 사용 가능한 5개의 내장 음성을 출력하고 종료됩니다.
# 출력에서 하나를 선택하고 --voice-id <id>로 다시 실행하세요.
bash skills/speak/scripts/tts.sh speak -f input.txt --voice-id voice_abc --auto-emotion --emo '{"Joy":0.5}' -o out.wav

# Noiz: 선택적 --duration (float, 초, 범위 (0, 36]) 대상 오디오 길이 지정
bash skills/speak/scripts/tts.sh speak -t "Short line" --voice-id voice_abc --duration 3.5 -o out.wav

# 음성 복제 (Noiz 전용 — voice-id 불필요, 참조 오디오 사용)
# 자신의 참조 오디오 사용: 로컬 파일 경로 또는 URL (Noiz 사용 시에만).
bash skills/speak/scripts/tts.sh speak -t "Hello" --ref-audio ./ref.wav -o clone.wav
bash skills/speak/scripts/tts.sh speak -t "Hello" --ref-audio https://example.com/my_voice.wav -o clone.wav

타임라인 모드 — SRT를 시간 정렬 오디오로

정밀한 구간별 타이밍(더빙, 자막, 비디오 내레이션)을 위해 사용합니다.

1단계: SRT 가져오기 또는 생성

사용자가 SRT가 없으면 텍스트로부터 생성합니다:

bash skills/speak/scripts/tts.sh to-srt -i article.txt -o article.srt
bash skills/speak/scripts/tts.sh to-srt -i article.txt -o article.srt --cps 15 --gap 500

--cps = 초당 문자 수 (기본값 4, 중국어에 적합; 영어는 ~15). 에이전트가 수동으로 SRT를 작성할 수도 있습니다.

2단계: 음성 맵 생성

기본값 및 구간별 음성 설정을 제어하는 JSON 파일입니다. segments 키는 단일 인덱스 "3" 또는 범위 "5-8"를 지원합니다.

Kokoro 음성 맵:

{
  "default": { "voice": "zf_xiaoni", "lang": "cmn" },
  "segments": {
    "1": { "voice": "zm_yunxi" },
    "5-8": { "voice": "af_sarah", "lang": "en-us", "speed": 0.9 }
  }
}

Noiz 음성 맵 (emo, reference_audio 지원 추가). reference_audio는 로컬 경로 또는 URL(사용자 자신의 오디오, Noiz 전용)일 수 있습니다:

{
  "default": { "voice_id": "voice_123", "target_lang": "zh" },
  "segments": {
    "1": { "voice_id": "voice_host", "emo": { "Joy": 0.6 } },
    "2-4": { "reference_audio": "./refs/guest.wav" }
  }
}

동적 참조 오디오 슬라이싱: 비디오를 번역하거나 더빙할 때 각 문장이 원본 비디오의 동일한 타임스탬프에 있는 오디오를 자동으로 참조 오디오로 사용하려면, 맵에 reference_audio를 설정하는 대신 --ref-audio-track 인수를 사용하세요:

bash skills/speak/scripts/tts.sh render --srt input.srt --voice-map vm.json --ref-audio-track original_video.mp4 -o output.wav

전체 예제는 examples/를 참조하세요.

3단계: 렌더링

bash skills/speak/scripts/tts.sh render --srt input.srt --voice-map vm.json -o output.wav
bash skills/speak/scripts/tts.sh render --srt input.srt --voice-map vm.json --backend noiz --auto-emotion -o output.wav

어떤 것을 선택할지

필요 사항권장 사항
그냥 텍스트를 소리내어 읽기, 복잡함 없음Kokoro (기본값)
챕터가 있는 EPUB/PDF 오디오북Kokoro (기본 지원)
음성 혼합 ("v1:60,v2:40")Kokoro
참조 오디오로 음성 복제Noiz
감정 제어 (emo 매개변수)Noiz
구간별 정확한 서버 측 길이Noiz

사용자가 감정 제어 + 음성 복제 + 정확한 길이를 동시에 필요로 할 때, Noiz가 세 가지를 모두 지원하는 유일한 백엔드입니다.

요구 사항

  • ffmpeg가 PATH에 있어야 함 (타임라인 모드)
  • Noiz: developers.noiz.ai에서 API 키를 받은 후 bash skills/speak/scripts/tts.sh config --set-api-key YOUR_KEY 실행
  • Kokoro: 이미 설치된 경우 --backend kokoro를 전달하여 로컬 백엔드 사용

백엔드 세부 정보 및 전체 인수 참조는 reference.md를 참조하세요.

관련 스킬