> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Fish Audio 프롬프트 가이드: ComfyUI에서 Fish Audio TTS 프롬프트 작성하기

> ComfyUI Fish Audio partner nodes를 위한 완전 프롬프트 작성 가이드: 감정 태그, 톤 마커, 오디오 이펙트, 멈춤, 음소 제어, 다중 화자 대화, 파라미터 조정

Fish Audio TTS는 텍스트 안에 직접 작성하는 인라인 태그로 음성의 들리는 방식을 직접 제어할 수 있습니다. 이 가이드는 모델이 이해하는 모든 태그 카테고리, 배치 방법, 조합 방법을 다룹니다.

아래 예제는 Fish Audio Text to Speech 노드에서 바로 사용할 수 있습니다. `text` 필드에 입력하고 샘플 문장을 자신의 대사로 바꾸세요. 노드 연결, 워크플로 템플릿, 가격은 [Fish Audio: 텍스트-음성, 보이스 클론, 음성-텍스트](/ko/tutorials/partner-nodes/fishaudio/fish-audio)를 참고하세요.

## 태그 작동 방식

Fish Audio S2 모델은 대괄호로 작성된 자연어 지시를 해석합니다:

```text theme={null}
[happy] What a beautiful day!
[sad] I'm sorry to hear that.
[excited] This is amazing news!
```

이 시스템에는 세 가지 특징이 있습니다:

* **위치가 곧 의미입니다.** 태그는 나타난 위치부터 다음 태그 또는 문장 끝까지 적용됩니다. `[whispering] I didn't want to go inside`는 전체를 속삭이고, `I didn't want to go [whispering] inside`는 "inside"부터 속삭이기 시작합니다.
* **자유로운 설명도 됩니다.** 고정된 태그 세트에 제한되지 않습니다. 성우에게 설명할 수 있는 것은 무엇이든 대괄호에 쓸 수 있습니다: `[tired, end of a long shift]`, `[voice rough from crying, trying to sound normal]`, `[professional broadcast tone]`.
* **태그는 자신의 언어로 쓸 수 있습니다.** 대사와 같은 언어로 지시를 작성하세요: `[低声说] 不要让他们听见`, `[ため息をついて] もう一度やり直そう`.

레거시 `s1` 모델은 같은 감정 이름을 소괄호로 감싸며 고정 태그 세트만 지원합니다: `(happy) What a beautiful day!` 현재 `s2.1-pro` 모델은 대괄호 지시와 자유로운 설명을 받습니다.

## 감정 태그

### 기본 감정

| 태그              | 표현       | 자주 쓰는 상황   |
| --------------- | -------- | ---------- |
| `[happy]`       | 밝고 경쾌    | 좋은 소식, 인사  |
| `[sad]`         | 우울, 침울   | 위로, 나쁜 소식  |
| `[angry]`       | 짜증, 공격적  | 불만, 경고     |
| `[excited]`     | 활기찬, 열정적 | 발표, 축하     |
| `[calm]`        | 평온, 이완   | 안내, 명상     |
| `[nervous]`     | 불안, 머뭇거림 | 면책, 사과     |
| `[confident]`   | 자신감      | 프레젠테이션, 영업 |
| `[surprised]`   | 놀람       | 반응, 발견     |
| `[satisfied]`   | 만족       | 확인, 리뷰     |
| `[delighted]`   | 매우 기쁨    | 축하, 칭찬     |
| `[scared]`      | 두려움      | 경고, 공포 이야기 |
| `[worried]`     | 걱정       | 우려, 질문     |
| `[upset]`       | 동요, 괴로움  | 불만, 문제     |
| `[frustrated]`  | 답답함      | 장애, 지연     |
| `[depressed]`   | 절망       | 심각한 주제     |
| `[empathetic]`  | 공감, 배려   | 지원, 상담     |
| `[embarrassed]` | 창피, 어색   | 사과, 실수     |
| `[disgusted]`   | 혐오       | 부정 리뷰      |
| `[moved]`       | 감동       | 감동적인 순간    |
| `[proud]`       | 자부심      | 성취, 칭찬     |
| `[relaxed]`     | 편안, 캐주얼  | 일상 대화      |
| `[grateful]`    | 감사       | 감사 인사      |
| `[curious]`     | 호기심      | 질문, 탐구     |
| `[sarcastic]`   | 비꼼       | 유머, 비판     |

### 심화 감정

| 태그                | 표현        | 자주 쓰는 상황  |
| ----------------- | --------- | --------- |
| `[disdainful]`    | 경멸        | 비판, 거절    |
| `[unhappy]`       | 불만        | 불만, 피드백   |
| `[anxious]`       | 심한 걱정     | 긴급한 일     |
| `[hysterical]`    | 감정 폭발     | 극단적 반응    |
| `[indifferent]`   | 무관심, 중립   | 중립적 응답    |
| `[uncertain]`     | 확신 없음     | 추측, 질문    |
| `[doubtful]`      | 의심        | 불신, 재질문   |
| `[confused]`      | 혼란        | 확인 요청     |
| `[disappointed]`  | 실망        | 기대 이하     |
| `[regretful]`     | 후회        | 사과, 실수    |
| `[guilty]`        | 죄책감       | 고백, 사과    |
| `[ashamed]`       | 깊은 창피     | 심각한 실수    |
| `[jealous]`       | 질투        | 비교        |
| `[envious]`       | 부러움       | 갈망이 섞인 감탄 |
| `[hopeful]`       | 미래에 대한 희망 | 향후 계획     |
| `[optimistic]`    | 낙관적       | 격려        |
| `[pessimistic]`   | 비관적       | 경고, 의심    |
| `[nostalgic]`     | 그리움       | 추억, 이야기   |
| `[lonely]`        | 고독        | 감성 콘텐츠    |
| `[bored]`         | 지루함       | 무관심       |
| `[contemptuous]`  | 멸시        | 강한 비판     |
| `[sympathetic]`   | 동정        | 조의        |
| `[compassionate]` | 깊은 연민     | 지원, 도움    |
| `[determined]`    | 결심        | 목표, 약속    |
| `[resigned]`      | 체념, 수용    | 포기, 받아들임  |

## 톤 마커

톤 마커는 음량, 강도, 강세를 제어합니다. `[emphasis]`는 강조할 단어나 구 바로 앞에 놓습니다:

```text theme={null}
This is [emphasis] really important.
```

| 태그                  | 표현        | 사용 시점      |
| ------------------- | --------- | ---------- |
| `[in a hurry tone]` | 서두르는, 급한  | 시간에 민감한 정보 |
| `[shouting]`        | 큰 소리, 외침  | 주의 끌기      |
| `[screaming]`       | 비명, 공황    | 비상 상황, 공포  |
| `[whispering]`      | 아주 작은 목소리 | 비밀, 조용한 장면 |
| `[soft tone]`       | 부드럽고 조용   | 위로, 자장가    |
| `[emphasis]`        | 단어나 구 강세  | 핵심 단어 강조   |

## 오디오 이펙트

오디오 이펙트 태그는 자연스러운 사람 소리를 추가합니다. 권장 텍스트가 있는 태그는 뒤에 해당 텍스트를 이어 주세요:

| 태그                | 설명            | 태그 뒤 권장 텍스트 |
| ----------------- | ------------- | ----------- |
| `[laughing]`      | 큰 웃음          | Ha, ha, ha  |
| `[chuckling]`     | 가벼운 웃음        | Heh, heh    |
| `[sobbing]`       | 세게 울음         | 텍스트 선택      |
| `[crying loudly]` | 격한 울음         | 텍스트 선택      |
| `[sighing]`       | 안도 또는 답답함의 한숨 | sigh        |
| `[groaning]`      | 답답함의 신음       | ugh         |
| `[panting]`       | 헐떡임           | huff, puff  |
| `[gasping]`       | 숨을 삼킴         | gasp        |
| `[yawning]`       | 하품            | yawn        |
| `[snoring]`       | 코골이           | zzz         |
| `[clear throat]`  | 헛기침           | ahem        |

## 멈춤과 특수 이펙트

| 태그                      | 설명      |
| ----------------------- | ------- |
| `[break]`               | 짧은 멈춤   |
| `[long-break]`          | 긴 멈춤    |
| `[short pause]`         | 짧은 간격   |
| `[long pause]`          | 긴 침묵    |
| `[audience laughing]`   | 관객 웃음소리 |
| `[background laughter]` | 배경 웃음소리 |
| `[crowd laughing]`      | 군중 웃음소리 |

일반 연결어("um", "uh", "嗯", "啊")도 태그 없이 리듬을 만듭니다.

## 태그 조합

**신체 반응 태그와 감정 태그를 짝지으세요.** `[panting]`, `[whispering]` 같은 신체 태그는 단독으로도 작동하지만, 감정 태그와 조합하면 더 일관되고 자연스럽습니다:

```text theme={null}
[panting] [tired] I've been running for twenty minutes.
[whispering] [scared] Don't move. Don't make a sound.
[shouting] [angry] I told you this would happen!
```

**감정을 겹쳐 복잡한 표현을 만드세요.** 문장당 조합은 3개 이하로 유지합니다:

```text theme={null}
[sad][whispering] I miss you so much.
[angry][shouting] Get out of here now!
[excited][laughing] We won! Ha ha!
```

**감정 전환**을 문장에 걸친 자연스러운 흐름으로 작성하세요:

```text theme={null}
[happy] I got the promotion!
[uncertain] But... it means relocating.
[sad] I'll miss everyone here.
[hopeful] Though it's a great opportunity.
[determined] I'm going to make it work!
```

**배경 이펙트**로 분위기를 더하세요:

```text theme={null}
The comedy show was amazing [audience laughing]
```

**강도 수식어**로 감정의 세기를 조절하세요:

```text theme={null}
[slightly sad] I'm a bit disappointed.
[very excited] This is absolutely amazing!
[extremely angry] This is unacceptable!
```

## 모범 사례

**권장:**

* 문장마다 주요 감정을 하나만 사용
* 감정을 문맥과 논리적으로 일치
* 효과음 태그 뒤에 텍스트 추가 (예: `[laughing]` 뒤에 "Ha ha")
* 감정 변화 간격을 띄워 현실감 확보
* 같은 목소리로 다양한 조합 테스트

**비권장:**

* 짧은 텍스트에서 태그 남용
* 한 문장에 상충하는 감정 혼합
* 대괄호 설명이 너무 길어 흐름을 해치는 것
* 설명 태그 뒤에 대사를 두지 않는 것
* 문장 수준 감정 지시를 제어할 문장에서 멀리 두는 것

출력이 부자연스럽게 들리면 감정 변화 간격을 띄우거나, 강도를 낮추거나, 다른 목소리를 시도하세요. 같은 태그도 목소리에 따라 효과가 다릅니다.

## 다중 화자 대화

Fish Audio Text to Speech 노드에 두 개 이상의 목소리를 연결하고, 텍스트에서 `@Voice1`, `@Voice2` 등으로 화자 전환을 표시합니다. 연결된 모든 목소리가 텍스트에 최소 한 번은 나타나야 하며, 그렇지 않으면 노드가 오류를 냅니다. 목소리 연결 방법은 [Fish Audio: 텍스트-음성, 보이스 클론, 음성-텍스트](/ko/tutorials/partner-nodes/fishaudio/fish-audio#목소리-연결)를 참고하세요.

```text theme={null}
@Voice1 [nervous] You're sure no one followed you?
@Voice2 [calm] Relax. I took the long way, exactly like you asked.
@Voice1 [sighing][relieved] Good. Then let's see what's inside.
@Voice2 [curious] You don't even know what it is?
```

## 음소 제어

음소 태그는 이름, 다자(多字), 두문자어, 전문 용어의 정확한 발음을 지정합니다. 대체 발음을 `<|phoneme_start|>`와 `<|phoneme_end|>` 태그로 감쌉니다. 음소 태그는 텍스트 정규화에서도 보존되므로 `normalize`를 켜 두면 됩니다.

**영어** (CMU Arpabet, 단어 1개 대체):

```text theme={null}
I am an <|phoneme_start|>EH1 N JH AH0 N IH1 R<|phoneme_end|>.
```

**중국어** (성조 표기 병음, 글자 1개 또는 음절 대체, 다자(多音字)와 고유명사에 유용):

```text theme={null}
我是一个<|phoneme_start|>gong1<|phoneme_end|><|phoneme_start|>cheng2<|phoneme_end|><|phoneme_start|>shi1<|phoneme_end|>。
```

**일본어** (OpenJTalk 방식 로마자＋억양 번호):

```text theme={null}
<|phoneme_start|>ha0shi1ga0<|phoneme_end|>見えます。
```

음소 제어는 다른 태그와 같은 텍스트에서 조합할 수 있습니다:

```text theme={null}
I am, um, an [break] <|phoneme_start|>EH1 N JH AH0 N IH1 R<|phoneme_end|>.
```

## 파라미터 조정

기본값은 잘 조정되어 있습니다. 필요할 때만 변경하세요:

| 파라미터          | 기본값  | 효과                                                        |
| ------------- | ---- | --------------------------------------------------------- |
| `temperature` | 0.7  | 표현력. 높을수록 다양, 낮을수록 일관                                     |
| `top_p`       | 0.7  | nucleus sampling 기반 다양성                                   |
| `speed`       | 1.0  | 말 속도, 0.5에서 2.0                                           |
| `volume`      | 0.0  | 음량 조정(데시벨), -10에서 10                                      |
| `normalize`   | true | 숫자와 날짜를 자연스럽게 읽도록 확장. 정규화가 그대로 읽고 싶은 텍스트를 바꾸는 경우가 아니면 켜 둠 |

`seed`는 노드 재실행 여부만 제어합니다. seed 값과 무관하게 결과는 비결정적입니다.

## 보이스 클론 품질

Fish Audio Instant Voice Clone 노드에서는 참조 녹음 품질이 결과를 결정합니다. 녹음 제한은 [Fish Audio: 텍스트-음성, 보이스 클론, 음성-텍스트](/ko/tutorials/partner-nodes/fishaudio/fish-audio#클론-제한)를 참고하세요:

* 15~~20초 클립 2~~3개, 총 270초 이내
* 화자는 한 명만, 일정한 음량, 일관된 톤과 감정
* 문장 사이에 0.5초 정도의 짧은 멈춤
* 조용한 방, 마이크는 입에서 한 뼘 정도
* 휴대폰 녹음이나 헤드셋 마이크로도 충분합니다. 배경 음악, TV, 잔향은 피하세요

클론한 목소리가 로봇처럼 들리면 총 30\~60초로 소재를 늘리고, 멈춤을 넣으며 자연스럽게 말하세요.

자신의 목소리, 또는 명시적 허락을 받은 사람의 목소리처럼 사용 권한이 있는 목소리만 클론하세요.

## 참고 자료

* [Fish Audio 감정 제어 문서](https://docs.fish.audio/developer-guide/core-features/emotions)
* [Fish Audio 파인그레인 제어 문서](https://docs.fish.audio/developer-guide/core-features/fine-grained-control)
* [Fish Audio 보이스 클론 모범 사례](https://docs.fish.audio/developer-guide/best-practices/voice-cloning)
