ListenHubSkills

음성 합성(TTS)

텍스트를 자연스러운 음성으로 바꿉니다 — 단일 보이스로 빠르게 읽어 주거나, 대본을 여러 화자가 나눠 연기합니다.

텍스트나 URL 콘텐츠를 자연스러운 음성 오디오로 바꿉니다. 이 skill은 무엇을 넘겼는지에 따라 두 가지 경로 중 하나를 고릅니다: 단일 보이스로 처음부터 끝까지 읽거나, 한 줄씩 표시해 둔 대본을 여러 화자가 나눠 연기하거나.

트리거

/tts로 이 skill을 호출하거나, 다음 문구 중 아무거나 사용하세요:

문구언어
read aloud / read this aloud영어
TTS / text to speech영어
voice narration영어
朗读这段중국어
配音 / 语音合成중국어

ListenHub Skills가 설치되어 있어야 합니다 — 시작하기를 참고하세요.

빠른 예시

Read this article aloud: https://en.wikipedia.org/wiki/Podcast

이 skill이 콘텐츠를 가져오고, 보이스를 고르고, 자연스러운 음성 오디오를 생성합니다.

빠른 모드 vs 스크립트 모드

이 skill은 무엇을 묻기 전에 먼저 두 모드 중 하나를 정합니다. 둘 다 스트리밍하거나 다운로드할 수 있는 MP3를 만들며, 보이스를 몇 개 쓰는지와 한 줄 한 줄을 얼마나 통제할 수 있는지가 다릅니다.

빠른 모드스크립트 모드
CLI 플래그--mode direct--mode smart
보이스하나캐릭터마다 하나
속도빠르고 지연이 짧음(약 1~2분)보통(약 2~3분)
적합한 용도기사 읽어 주기, 가벼운 TTS, 1인 내레이션대화, 오디오북, 대본이 있는 다중 캐릭터 콘텐츠
제어 수준텍스트를 한 덩어리로 읽음각 세그먼트를 지정한 화자가 연기

**빠른 모드(Quick mode)**는 텍스트 한 덩어리(또는 URL)를 받아 단일 보이스로 끝까지 읽습니다. 동기로 실행되며 오디오 링크를 빠르게 돌려줍니다.

**스크립트 모드(Script mode)**는 각 줄에 화자가 표시된 대본을 받아 캐릭터마다 다른 보이스를 배정하고, 각 세그먼트를 하나의 트랙으로 이어 붙입니다. 긴 대본은 백그라운드로 실행됩니다 — 이 skill이 작업을 제출한 뒤 완료될 때까지 폴링합니다.

CLI의 tts create 명령은 기본값이 --mode smart입니다. 이 skill이 아래의 모드 감지 규칙에 따라 플래그를 대신 골라 주므로, 직접 지정할 일은 거의 없습니다.

모드는 어떻게 감지되나요

이 skill은 질문을 시작하기 전에 요청을 읽고 자동으로 모드를 정합니다:

입력에 담긴 신호모드
"多角色", "脚本", "对话", "script", "dialogue", "multi-speaker"스크립트 모드
이름이나 역할로 여러 캐릭터가 지정됨스크립트 모드
A: ... / B: ... 같은 구조화된 세그먼트스크립트 모드
캐릭터 표시가 없는 한 문단짜리 텍스트빠른 모드
일반 텍스트와 함께 쓰인 "read this", "TTS", "朗读"빠른 모드
모호함빠른 모드(기본값)

모드 선택이 잘못된 것 같으면 그렇게 말하세요 — 예를 들어 "do this as a multi-speaker script"라고 하면 이 skill이 모드를 바꿉니다.

대본 쓰기(스크립트 모드)

스크립트 모드에서는 각 줄에 화자를 붙여 대사를 넘깁니다. 가장 단순한 형식은 한 턴에 한 줄씩 쓰는 Speaker: text입니다:

Alex: Hello everyone, welcome to the show.
Sam: Thanks for having me!
Alex: Let's get into today's topic.

이 skill은 각 Speaker: 표시를 세그먼트로 파싱하고, 고유한 캐릭터(Alex, Sam)를 모아 각각에 보이스를 배정합니다. 이 표시는 내부적으로 /v1/flow-speech/episodes/tts 요청으로 이어지며, API를 직접 호출한다면 명시적인 scripts 배열도 받습니다:

{
  "scripts": [
    { "content": "Hello everyone, welcome to the show.", "speakerId": "cozy-man-english" },
    { "content": "Thanks for having me!", "speakerId": "travel-girl-english" }
  ]
}

각 세그먼트는 배정된 화자가 순서대로 읽습니다.

대본 작성 팁

  • 말이 자연스럽게 끊기는 지점에서 나누세요 — 한 줄에 한 문장이나 짧은 문단.
  • 대화처럼 들리도록 화자를 번갈아 배치하세요.
  • 모든 화자를 같은 언어로 유지하세요.
  • API를 직접 호출한다면 각 speakerIdspeakers 엔드포인트에서 받은 유효한 ID여야 합니다.

보이스 선택과 저장된 기본 설정

보이스를 직접 고를 필요는 없습니다. 이 skill은 다음 순서를 따릅니다:

저장된 기본 설정. 감지된 언어에 대해 저장해 둔 기본 보이스가 있으면 조용히 그것을 사용합니다.

내장 기본값. 없으면 해당 언어의 내장 기본 보이스로 넘어갑니다 — 영어는 중립적인 내레이터, 중국어는 다중 캐릭터 대본용 주 보이스와 보조 보이스.

명시적 변경. 보이스를 바꿔 달라고 요청할 때만 화자 목록을 보여 주고 고르게 합니다.

새로운 보이스를 고르면(기본값이 사용될 때는 해당 없음) 이 skill이 그 선택을 기억할지 물어봅니다:

  • 빠른 모드 — "이걸 {language}의 기본 보이스로 저장할까요?"
  • 스크립트 모드 — "이 보이스 배정을 다음 세션에도 쓰도록 저장할까요?"

저장된 기본 설정은 작업 디렉터리의 .listenhub/tts/config.json에, 언어를 키로 하는 defaultSpeakers 아래에 놓입니다. 빠른 모드는 보이스 하나를, 스크립트 모드는 그 세션에서 배정한 보이스 전체를 저장합니다. "아니요"를 고르면 그 보이스는 이번 실행에만 쓰이고 설정 파일은 그대로 둡니다.

기본 설정은 작업 디렉터리별로 관리됩니다. 다른 프로젝트에서 이 skill을 실행하면 다시 내장 기본값에서 시작합니다.

파라미터

파라미터선택지기본값
입력텍스트 또는 URL
모드direct(빠른 모드), smart(스크립트 모드)자동 감지
언어en, zh, ja텍스트에서 자동 감지
화자화자 이름 또는 speakerId저장된 기본 설정, 없으면 내장 기본값

음성 합성과 팟캐스트 중 무엇을 쓸까

두 skill 모두 다중 화자 오디오를 만들 수 있지만, 목적이 다릅니다:

사용 사례Skill
자연스러운 대화 흐름의 주제 기반 토론팟캐스트
모든 대사와 화자를 정밀하게 제어음성 합성(스크립트 모드)
기사나 텍스트 읽어 주기음성 합성(빠른 모드)

제한

  • FlowTTS 텍스트 입력: 최대 10,000자.
  • 더 긴 콘텐츠는 URL로 넘기세요 — API가 알아서 가져와 처리합니다.
  • 일반 text 소스는 최소 10자 이상이어야 합니다.

크레딧

생성에는 크레딧이 소모됩니다. 비용은 길이, 모드, 보이스에 따라 달라지므로, 큰 작업 전에는 고정 가격을 가정하지 말고 해당하는 estimate-credits 엔드포인트로 확인하세요. 견적용 엔드포인트는 FlowSpeech API 레퍼런스를 참고하세요.

출력

생성이 끝나면:

  • 듣기 링크 — ListenHub에서 오디오를 스트리밍합니다.
  • 자막 — 스크립트 모드에서는 자막 URL도 제공되면 함께 반환합니다.
  • 다운로드 — "download audio"라고 하면 주제를 딴 파일 이름으로 현재 디렉터리에 MP3를 저장합니다.

API 레퍼런스

/v1/flow-speech/episodes, /v1/flow-speech/episodes/tts, 그리고 /v1/speech 음성 합성 인터페이스는 FlowSpeech API 레퍼런스를 참고하세요.

관련 문서

이 페이지의 내용