Irodori-TTS v4.1의 일본어 발음 및 음성 클로닝 성능 비교 (Fish Audio 대비)
요약
일본어 TTS 모델인 Irodori-TTS v4.1과 상용 서비스 Fish Audio를 일본어 발음 정확도 및 음성 클로닝 성능 측면에서 비교 분석한 연구입니다. Irodori가 한자 독음 정확도가 높았으나, 목소리 유사도는 두 모델이 비슷했고 재현성은 Irodori가 우위를 보였습니다.
핵심 포인트
- Irodori-TTS v4.1은 상용 서비스 대비 일본어 발음 정확도에서 우위(98/100)를 보임.
- 목소리 유사도 측면에서는 Irodori와 Fish Audio 모두 높은 점수(0.908 vs 0.913)로 근접함.
- Irodori는 seed 지정 시 바이트 단위의 동일한 음성 재현성이 가능하여 안정적임.
- 오독 수정 기능이 필요하다면, Fish나 IndexTTS-2.5 같은 상용 서비스가 더 적합할 수 있음.
일본어로 읽기 오류가 적고, 자신의 목소리를 복제할 수 있는 TTS를 찾고 있습니다. IndexTTS-2.5는 목소리 유사도 면에서 Fish Audio에 미치지 못했고, Gemini 3.8 Flash TTS는 다른 목소리가 되었습니다. 이번에는 일본어 전용 오픈 모델인 Irodori-TTS v4.1-Small (MIT 라이선스)을 평소 사용하던 Fish Audio s2.1-pro와 동일한 참조 음성 및 동일한 문장으로 비교했습니다. Fish보다 일본어 발음이 좋을 것이라고 예상했기 때문에, 읽기의 정확성을 본론으로 다루었습니다.
결론
- 발음: Irodori가 더 정확했습니다. 상용 한자 독음을 묻는 100문장 중 대상 한자를 올바르게 읽은 것은 Irodori가 98문, Fish가 92문이었습니다. Irodori에서만 맞았던 문장이 6개, Fish에서만 맞았던 문장은 0개였습니다.
- 음질: 직접 들어본 느낌으로는 음질은 거의 같았고, 읽기 오류는 Irodori 쪽이 적다는 차이가 있었습니다.
- 숫자/시간/금액/영문 약어 (10문): Irodori가 9문, Fish가 7문이었습니다. Irodori는 "14시 30분"의 '14'를 잘못 읽었습니다.
- 목소리 유사도 수치 (참조 음성과의 유사도): 동일한 문장으로 5회 생성했을 때, Irodori가 0.908, Fish가 0.913로 거의 비슷했습니다. IndexTTS-2.5는 같은 조건에서 0.848이었습니다.
- 재현성 (Reproducibility): Irodori는 seed를 지정하면 동일한 입력으로부터 바이트 단위로 동일한 음성이 나옵니다. Fish의 API에는 seed가 없습니다.
- 수정 기능: Irodori에는 발음을 지정하는 수단이 없습니다. 오독이 나왔을 때 수정할 도구가 필요하다면, Fish나 IndexTTS-2.5가 더 적합합니다.
시도한 조건
- Irodori-TTS v4.1-Small: RunPod의 RTX 4090으로 구동했습니다. 설정은 모델 카드 기본값(fp32, 40 스텝)을 사용했습니다. 참조 음성을 1개 제공하고, 참조 전사(transcript)는 전달하지 않았습니다 (Irodori가 사용하지 않음).
- Fish Audio
s2.1-pro: API의 zero-shot clone 기능을 사용하여, 매번 참조 음성과 전사를 보냈습니다. - 참조 음성: 08-26 기사에서 사용한 자신의 목소리 10초. 목소리 유사도만은 09-24 기사의 26초 녹음으로도 시도했습니다. Irodori의 모델 카드는 참조를 30초 이상으로 권장하고 있으므로, 10초는 Irodori에게 불리한 조건입니다. - 발음 문장: Joyo Kanji Yomi Benchmark: Parakeet Edition (이하 JKYB-Parakeet. 상용 한자 독음 벤치마크, 13,536문)에서 무작위로 선정한 100문장. 각 문장에 판정 대상 한자와 정답 발음이 붙어 있습니다. 그 외에 숫자/영문 자체 제작 10문과, 08-27에서 사용한 오독하기 쉬운 5문을 추가했습니다.
- 목소리 유사도: "오늘은 맑습니다. 마이크 테스트 중입니다. 이 음성은 제로샷 음성 합성 샘플입니다."를 5회 생성하여 화자 특징량(resemblyzer)으로 참조 음성과의 유사도를 측정했습니다. 08-26, 08-27과 동일한 문장 및 지표를 사용했습니다.
발음 판정은 다음 순서로 진행했습니다.
- 생성된 음성을 gpt-4o-transcribe에 전달하여 들린 대로의 소리를 카타카나만으로 전사하게 했습니다. 일반적인 전사는 오독을 올바른 한자로 수정해 버리기 때문에,
- JKYB-Parakeet 공식 채점 도구로, 대상 한자 부분이 정답 발음과 일치하는지 판정했습니다.
- 부정확했던 문장은 다시 한번 전사하여, 전사 측의 오류 가능성을 확인했습니다.
측정 코드 및 전체 전사, 판정 결과는 blog-examples에 있습니다.
발음 결과
| 문 | Irodori | Fish |
|---|---|---|
| 상용 한자 100문 | 98/100 | 92/100 |
| 숫자/영문 10문 | 9/10 | 7/10 |
100문장 중 6 대 0의 편차는 동일한 문장으로 두 모델을 비교하는 검정(McNemar의 정확 검정)에서 p=0.031이었습니다. 우연의 차이라고 보기 어렵습니다. 숫자/영문은 10문장밖에 없으므로, 경향성으로 봐주십시오.
부정확했던 문장의 내역입니다.
| 문 (대상어) | Irodori | Fish |
|---|---|
| 보류 | 정답 | 호류 |
| ... |
Fish의 오류는 '시타후', '카즈요야'처럼 한자를 다른 읽기로 추측하는 것이 눈에 띕니다. '천지(天地)'의 텐치(テンチ)는 사전에 허용되는 읽기이므로, 정답에 포함하면 양쪽 모두 문장이 각각 1개씩 늘어납니다. Fish가 처리한 '오염'과 '1,000만 엔'은 두 번째 받아쓰기에서는 올바른 읽기가 되었으므로, 받아쓰기 측의 오류일 수 있습니다. 이 두 문장을 제외해도 순위는 변하지 않습니다.
08-27의 오독하기 쉬운 5개 문장에서는 Irodori가 '시노노메'로 '東雲', '인기가 없는 길'을 히토케(ヒトケ)로 읽었고, Fish는 히가시쿠모(ヒガシクモ), 니ㄴ키(ニンキ)로 읽었습니다.
청취 비교
읽기 차이가 나타난 문장을 중심으로 5쌍을 게재합니다. 위쪽이 Irodori, 아래쪽이 Fish입니다.
참고로 Zenn에서는 음성 인라인 재생이 불가능하므로, 음성은 링크(별도 탭)에서 재생됩니다. 인라인으로 청취 비교를 원하시면 블로그 버전을 이용해 주세요.
목소리 유사도를 측정한 문장:
'내일 아침, 시노노메역에서 만납시다.' (Fish가 히가시쿠모):
'전통적인 수야 건축의 아름다움에 감동했다.' (Fish가 카즈요야):
'회의는 14시 30분에 시작합니다.' (Irodori가 추우요지):
'새로운 API를 공개했습니다.' (Fish가 에티아이(エーティーアイ)):
목소리 유사도
| 참조 음성 | Irodori | Fish |
|---|---|
| 10초 (참조와의 유사도, 5회) | 0.9079 ± 0.0045 | 0.9131 ± 0.0028 |
| ... |
10초 참조의 경우, 참조에 가까운 정도는 Fish가 약간 우세했고, 5회 생성 간의 편차는 Irodori 쪽이 더 작게 나타났습니다. 청취한 느낌의 음질은 거의 같습니다.
모델 카드에서 권장하는 26초 참조의 경우에도 Irodori의 유사도는 올라가지 않았습니다. 26초 녹음은 mp3에서 복원된 것으로 열화가 있으며, 이어서 말한 하나의 녹음입니다. Irodori의 README에는 긴 참조는 같은 화자의 짧은 클립을 연결하여 학습 및 평가하고 있다고 적혀 있습니다. 어느 쪽이 효과적이었는지 이번에 분리해서 측정하지는 않았습니다. 30초 이상의 참조를 준비한다면, 짧은 클립을 연결하는 형태로 시도하는 것이 좋을 것 같습니다.
seed와 속도
Irodori는 생성 설정에 seed가 있어, seed=42로 2회 생성한 음성의 해시(MD5)가 일치했습니다. 10초, 26초 참조 모두 동일합니다. IndexTTS-2.5에서는 난수를 외부에서 고정해야 했지만, Irodori는 인수로 가능합니다. 길이까지 고정하고 싶은 영상 용도에 효과적입니다.
RTX 4090으로 생성했을 때, 음성 1초당 속도는 0.110.40초 (RTF, 평균 0.24)였습니다. 811초의 긴 문장에서는 0.11 전후였고, 25초의 짧은 문장에서는 0.150.40이었습니다. 모델 로딩 시간은 13.6초입니다. 측정 세트는 Pod 1대, 약 6분, 약 $0.075로 끝났습니다.
3개 모델 비교
목소리 유사도 행은 같은 참조(10초)・같은 문장・같은 지표 값입니다. IndexTTS-2.5는 다른 날・다른 Pod・bf16으로 측정했습니다.
| 항목 | Irodori-TTS v4.1-Small | Fish Audio s2.1-pro | IndexTTS-2.5 (08-27) |
|---|---|
| 일상 한자 100문 | 98/100 | 92/100 | 미측정 |
| ... |
선택 가이드
- 읽기 오류를 줄이고 싶다면 Irodori. 읽기 지정 없이도 이번 100문에서는 Fish보다 오류가 적게 나왔습니다.
- 오독이 발생했을 때 수정할 필요가 있다면 Fish. Irodori에는 읽기를 지정하는 수단이 없으므로, 문장을 재작성해야 합니다.
- 동일한 입력에서 동일한 음성을 얻고 싶다면 Irodori. seed 인수로 고정할 수 있습니다.
- GPU를 준비하고 싶지 않다면 Fish. Irodori는 셀프호스팅(self-hosting)이 전제입니다.
지표의 한계
- 읽기(読み) 판정은 gpt-4o-transcribe의 가타카나 전사 결과에 의존했습니다. 같은 음성이라도 전사 결과가 달라지는 예시가 있었습니다.
- 각 문장은 1회 생성한 것입니다. 동일한 문장을 여러 번 생성했을 때 읽기가 변하는지는 측정하지 않았습니다.
- 총 100문이므로, 한 문장의 차이가 1포인트입니다.
- 읽기 판정은 공식 절차와 다른 전사 모델을 사용했기 때문에, 모델 카드에 제시된 수치와는 비교할 수 없습니다.
- 참조 음성은 Irodori의 권장 시간보다 짧은 10초입니다.
- 유사도는 하나의 지표일 뿐이며, 귀로 듣기에 느껴지는 유사도와는 다릅니다. 억양(イントネーション)은 수치로 측정하지 않았습니다.
참고
- 측정 코드 및 결과 (blog-examples)
- Irodori-TTS v4.1-Small (Hugging Face)
- Irodori-TTS (GitHub)
- Joyo Kanji Yomi Benchmark: Parakeet Edition (Hugging Face)
- Sarashina2.2-TTS: Tackling Kanji Polyphony in Japanese Speech Generation via Data Scaling and Targeted Data Synthesis (arXiv 2606.25369)
- IndexTTS-2.5 기사
- Gemini 3.8 Flash TTS와 Fish Audio 기사
논의(Discussion)

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기