← 목록으로
OpenRouter 로 음성(TTS)을 바꿔도 NLive2 기능을 지킬 수 있는가 — 계약 판단용 한 장
2026-10-30 · NLive2 크루(hm space-3) · 근거 실험 비용 약 \$3.9
결론
지킬 수 있다 — 조건 셋을 붙여서. 다만 아직 실험 단계라, 실제 운영에 넣으려면 개발 약 1.5~2주와 dev 확인이 더 필요하다.
무엇이 문제였나
- NLive2 는 쇼호스트 음성의 글자마다 언제 말했는지(글자 시각)를 받아 쓴다. 이 시각으로 다음 셋을 정한다:
- 영상에서 문장 구간을 자르는 자리.
- 쇼호스트 화면을 바꾸는 자리.
- 문장을 고쳐 끼우는 이음새.
- 지금 쓰는 길(fal)은 이 글자 시각을 함께 준다. OpenRouter 는 음성 파일만 주고 글자 시각을 주지 않는다(지원 계획 없음).
어떻게 풀었나
- OpenRouter 로 음성을 만들고, 같은 OpenRouter 의 받아쓰기(Scribe)로 낱말마다 언제 말했는지를 받는다.
- 그 낱말을 대본 원문과 맞춰 글자 시각을 만든다. 숫자 · 단위 · 영문 읽기를 처리하는 정해진 규칙이고, AI 판정(Jev)은 효과가 없어 쓰지 않는다.
- 자르는 자리는 지금 기능이 이미 쓰는 「가장 조용한 지점 찾기」로 말과 말 사이 쉼 안에 놓는다.
실험으로 확인한 것(10분 대본 5편 · 지금 운영 길과 같은 대본으로 비교 · 기준은 실행 전에 고정)
| 확인한 것 |
지금 운영(fal) |
OpenRouter 길 |
| 문장 구간 자리가 조용한 곳에 놓인 비율 |
76% |
89% |
| 쇼호스트 화면 바꾸는 자리가 말소리 위에 놓인 비율 |
48% |
17% |
| 연출 화면 바꾸는 자리가 말소리 위에 놓인 비율 |
42% |
16% |
| 지금 NLive2 가 받아들이는 형식 |
통과 |
통과(5편 모두) |
| - 곧, 자르는 자리의 품질은 지금보다 낫다. |
|
|
조건 셋
- 긴 글을 한 번에 합성하지 않기. ElevenLabs v4 는 한 번에 약 5분(약 2,400자)을 넘기면 문장 덩어리를 빠뜨린다. fal 이든 OpenRouter 든 같다.
- 실험 10편이 모두 그랬다. 지금 운영은 이것을 못 잡는다(fal 이 빠진 글에도 시각을 붙여 줌).
- → 약 2,000자 넘는 구간은 나눠 만들기. 운영 구간 길이 분포는 확인 중이다(읽기 SQL).
- 빠짐 검사 넣기. 받아쓰기가 대본 15음절 이상을 못 찾으면 그 구간을 쓰지 않고 다시 만들게 한다. OpenRouter 길에서는 받아쓰기를 이미 하므로 추가 비용이 없다.
- 지금 운영보다 오히려 안전해진다.
- 운영 규칙(계약 문서) 한 줄 고치기. 「글자 시각 없이 낱말 시각만 오면 쓰지 않는다」는 내부 규칙을 OpenRouter 길에 한해 바꾸는 결정 기록이 필요하다. 초안은 준비돼 있다.
비용
- 음성 합성 단가는 같다(1,000자에 \$0.08 — fal · OpenRouter 동일).
- 받아쓰기가 더해져 약 +10%다(1,000자 음성 받아쓰기 약 \$0.008).
남은 일 · 기간(개발 1명 기준 · 추정)
| 단계 |
내용 |
기간 |
| 1 |
결정 기록 확정 · 검토 |
0.5일 |
| 2 |
낱말 → 글자 시각 만들기 규칙(실험 코드 → 제품 코드 · 시험) |
2일 |
| 3 |
OpenRouter 음성 · 받아쓰기 호출 · 반입 · 빠짐 검사 |
2.5~3일 |
| 4 |
설정(단계별 켜고 끄기) · 비밀값 · 문서 |
1일 |
| 5 |
dev 실제 프로젝트로 확인(사람 귀로 듣기 포함 · 소량 유료) |
1~2일 |
| - 합계 약 7~8.5일(1.5~2주) + 검토 · 배포 일정이다. 켜고 끄는 스위치로 넣으니, 문제가 있으면 바로 지금 길(fal)로 되돌린다. |
|
|
아직 모르는 것(위험)
- 실험은 목소리 하나 · 직접 쓴 대본 · 감정 태그 없이 했다 → 5단계에서 실제 대본 · 목소리 여럿으로 확인한다.
- 사내 Media API 가 OpenRouter 의 음성 · 받아쓰기를 둘 다 중계하는지(아니면 OpenRouter 키를 따로 둔다).
- OpenRouter 서비스 안정성 · 속도(이번 실험에서는 10분 음성 합성 약 2분 · 받아쓰기 수 초 · 실패 0).