# 강제 정렬

> 이미 아는 녹취록의 모든 단어를 오디오에 맞춰 시간을 재고, 단어마다 시작과 끝을 데이터로 받으세요. 노래방식 하이라이트, 타이밍 그래픽, 자막에 쓸 수 있습니다.

Source: https://nodaro.ai/ko/docs/nodes/audio/forced-alignment

**강제 정렬** 노드는 이미 아는 녹취록의 모든 단어를 오디오에 맞춰 시간을 잽니다. 녹음과 그 안에서 말하는 정확한 텍스트를 주면 단어마다 시작 시간과 끝 시간을 반환합니다. 결과는 오디오가 아닌 데이터입니다. 노래방식 하이라이트, 단어에 반응하는 그래픽, 생성한 음성의 속도 확인에 쓰세요.

- Found in: Audio › Transcribe
- Output: data
- API type: `forced-alignment`

## 사용 시기
- 이미 있는 스크립트로 캡션이나 자막에 쓸 정확한 단어 타이밍을 얻습니다.
- 오디오를 따라가는 노래방식 단어 하이라이트를 만듭니다.
- 애니메이션이나 모션 그래픽을 특정 단어에 맞춥니다.
- 동영상 구성에서 시각 요소를 음성에 맞춥니다.
- [텍스트 음성 변환](https://nodaro.ai/docs/nodes/audio/text-to-speech) 출력의 타이밍이 예상한 속도와 맞는지 확인합니다.

녹취록이 없으면 [음성 텍스트 변환](https://nodaro.ai/docs/nodes/audio/transcribe)을 쓰세요. ElevenLabs STT와 Incredibly Fast Whisper에서는 녹취록 출력에 단어 타이밍이 이미 담겨 있습니다.

## 빠른 시작
### 노드 추가
캔버스에서 Tab을 누르고 **오디오 › 음성 텍스트 변환 › 강제 정렬**을 선택하세요.

### 오디오 연결
오디오 노드를 **오디오** 입력에 연결하세요.

### 녹취록 입력
설정 패널을 열고 실제로 말한 텍스트를 그대로 **녹취록**에 붙여 넣거나, 텍스트 노드를 **녹취록** 입력에 연결하세요.

### 실행
노드에서 **실행**을 클릭하세요. 단어 타이밍이 **데이터** 출력에 나타납니다.

Workflow: 같은 스크립트를 텍스트 음성 변환으로 읽은 다음, 그 음성에 맞춰 단어별로 정렬합니다.

- 텍스트 → 텍스트 음성 변환 (프롬프트)
- 텍스트 음성 변환 → 강제 정렬 (오디오)
- 텍스트 → 강제 정렬 (녹취록)

## 입력과 출력
| 입력 | 연결할 수 있는 노드 | 설명 |
| --- | --- | --- |
| **오디오** | 오디오 업로드, 레퍼런스 오디오, 텍스트 음성 변환 같은 오디오 노드 | 정렬할 녹음입니다. |
| **녹취록** | 텍스트 같은 텍스트 노드 | 녹취록 필드 대신 쓰는, 실제로 말한 텍스트입니다. |

출력인 **데이터**는 단어와 그 시작 시간, 끝 시간을 담은 목록입니다. 오디오가 아닌 데이터이므로 텍스트나 데이터를 받는 노드에 연결됩니다.

## 설정
| 설정 | 설명 |
| --- | --- |
| **녹취록** | 오디오에서 말하는 전체 텍스트를 일반 단어로 적습니다. 음성과 가깝게 일치해야 합니다. |
| **앞뒤 텍스트** | 녹취록 앞뒤에 항상 붙는 텍스트입니다. 내 워크플로를 앱으로 쓰는 사람에게는 보이지 않습니다. [프롬프트 앞뒤 텍스트](https://nodaro.ai/docs/concepts/prompt-pre-post-text)를 참고하세요. |

## 결과 읽기
**데이터** 출력은 다음과 같습니다.

```json
[
{ "word": "Hello", "start": 0.0, "end": 0.35 },
{ "word": "world", "start": 0.38, "end": 0.72 }
]
```

| 필드 | 의미 |
| --- | --- |
| `word` | 정렬한 단어입니다. |
| `start` | 단어가 시작하는 시간으로, 초 단위입니다. |
| `end` | 단어가 끝나는 시간으로, 초 단위입니다. |

## 모델
| Model | Maker | Modes | Credits | Details |
| --- | --- | --- | --- | --- |
| [ElevenLabs Forced Alignment](https://nodaro.ai/docs/models/audio/elevenlabs-forced-alignment) | ElevenLabs | Forced alignment | 33 | Align an existing transcript to audio with word-level timestamps. |

## 팁
- **녹취록을 음성에 맞추세요.** 텍스트와 오디오가 다르면 타이밍을 믿을 수 없게 됩니다.
- **녹취록을 정리하세요.** 실제로 말한 것이 아니라면 군말, 말 더듬기, `[music]` 같은 메모는 지우세요.
- **일반 텍스트를 쓰세요.** 타임스탬프, 화자 라벨, 서식은 빼세요. 말한 그대로의 단어만 적으세요.
- **녹음 전체를 다루세요.** 녹취록이 일부만 있으면 그 부분만 정렬됩니다.
- **잡음이 많은 오디오는 먼저 정리하세요.** 녹음을 [음성 추출](https://nodaro.ai/docs/nodes/audio/voice-extractor)에 먼저 통과시키면 타이밍이 더 정확해집니다.
- **어려운 음성에서는 정확도가 떨어질 수 있습니다.** 아주 빠른 말, 강한 억양, 겹치는 화자는 정확도를 낮출 수 있습니다.

## API에서 사용
MCP 도구는 `forced_alignment`입니다. [MCP 도구](https://nodaro.ai/docs/mcp/tools)를 참고하세요.

## 자주 묻는 질문

### 강제 정렬과 음성 텍스트 변환은 어떻게 다른가요?

음성 텍스트 변환은 무엇을 언제 말했는지 알아냅니다. 강제 정렬은 내 녹취록으로 무엇을 말했는지 이미 알고 있으며, 각 단어를 정확히 언제 말하는지 찾습니다. 정확한 스크립트가 있을 때 쓰세요.

### 녹취록이 오디오와 정확히 일치해야 하나요?

최대한 가깝게 일치해야 합니다. 말하지 않은 단어나 녹취록에 빠진 말이 있으면 타이밍을 믿을 수 없게 됩니다. 오디오에 없는 메모, 라벨, 군말은 지우세요.

### 타임스탬프는 어떤 단위인가요?

초 단위입니다. 단어마다 시작과 끝이 있으며, 예를 들어 어떤 단어는 0.38초에서 0.72초까지입니다.

### 강제 정렬은 오디오를 반환하나요?

아니요. 출력은 단어와 그 시간을 담은 목록인 데이터입니다. 오디오 입력이 아니라 텍스트나 데이터를 받는 노드에 연결됩니다.
