Skip to content

③ 품질 리포트

학습이 끝나면 보통 여러 개의 체크포인트가 남습니다. 그 중 어느 시점이 가장 좋은지 는 loss 숫자만 봐서는 알기 어렵고, 결국 귀로 들어봐야 합니다.

품질 리포트는 여러 체크포인트로 같은 문장을 합성해서 한 장의 HTML 파일 로 묶어 줍니다. 브라우저에서 가로로 나란히 들으며 가장 좋은 시점을 고르면 됩니다.

실행

학습이 끝난 뒤 CLI 를 실행하고, 메인 메뉴에서 품질 리포트 를 선택합니다.

bash
uv run poe cli

학습이 끝난 데이터셋(exports/<model_name>/*.safetensors 가 있는 것) 만 리스트업됩니다. 전처리만 돌아간 상태에서는 보이지 않습니다.

화자를 고르면 CLI 가 체크포인트 목록을 출력하고, 평가 텍스트 프리셋을 묻습니다.

text
? 화자 선택 츠쿠요미

  체크포인트 5개 사용
    · hayakoe_츠쿠요미_e15_s500
    · hayakoe_츠쿠요미_e30_s1000
    · hayakoe_츠쿠요미_e45_s1500
    · hayakoe_츠쿠요미_e59_s2000
    · hayakoe_츠쿠요미_e74_s2500

? 텍스트 선택
  ❯ 샘플 - 짧음 (3개)
    샘플 - 중간 (2개)
    샘플 - 김 (1개)
    샘플 - 전체 (6개)
    직접 입력
    뒤로

평가 텍스트 선택

어떤 문장으로 비교할지 프리셋 중 하나를 고릅니다.

  • 샘플 - 짧음 (3개)
    • 「おはようございます。今日もよろしくお願いします。」
      안녕하세요. 오늘도 잘 부탁드립니다.
    • 「えっ、本当ですか?それはすごいですね!」
      네? 정말요? 그거 대단하네요!
    • 「静かな夜に、星が綺麗に見えます。」
      고요한 밤에 별이 예쁘게 보입니다.
  • 샘플 - 중간 (2개)
    • 「先週の土曜日、家族で動物園に行きました。子供たちはパンダを見てとても喜んでいました。天気も良くて、最高の一日になりました。」
      지난주 토요일, 가족과 함께 동물원에 갔습니다. 아이들은 판다를 보고 무척 기뻐했습니다. 날씨도 좋아서 최고의 하루가 되었습니다.
    • 「音声合成の技術は年々進化しています。最近では人間の声と区別がつかないほど自然な音声を生成できるようになりました。今後の発展が楽しみです。」
      음성 합성 기술은 해마다 발전하고 있습니다. 최근에는 사람 목소리와 구별이 안 될 정도로 자연스러운 음성을 생성할 수 있게 되었습니다. 앞으로의 발전이 기대됩니다.
  • 샘플 - 김 (1개)
    • 「春が来ると、日本中で桜が咲き始めます。人々は公園や川沿いに集まって、お花見を楽しみます。友人や家族と一緒にお弁当を広げ、美しい花びらが舞い散る様子を眺めるのは、日本の春の風物詩です。桜の季節は短く、わずか一週間ほどで散ってしまいますが、その儚さがまた人々の心を惹きつけるのかもしれません。」
      봄이 오면 일본 전역에서 벚꽃이 피기 시작합니다. 사람들은 공원이나 강가에 모여 꽃놀이(하나미)를 즐깁니다. 친구나 가족과 함께 도시락을 펼쳐 놓고, 아름다운 꽃잎이 흩날리는 모습을 바라보는 것은 일본 봄의 정취입니다. 벚꽃 철은 짧아서 일주일 정도면 지고 말지만, 그 덧없음이 오히려 사람들의 마음을 끄는 건지도 모릅니다.
  • 샘플 - 전체 (6개) — 위 셋을 한꺼번에
  • 직접 입력 — 원하는 문장을 직접 입력 (빈 줄로 종료)

결과물

<dataset>/reports/report_<YYYYMMDD_HHMMSS>.html 에 HTML 한 장이 생성됩니다. WSL2 에서는 기본 브라우저로 여는 기능을 제공합니다.

HayaKoe 품질 리포트 — 상단 학습 지표 6종 차트, 하단 체크포인트별 오디오 비교 표

HTML 안에는 두 가지가 들어 있습니다.

  • 학습 지표 차트 6종 — loss 변화 그래프. 체크포인트 선택에 참고는 되지만, 최종 결정은 귀로 합니다.
  • 오디오 비교 표 — 행은 평가 문장, 열은 체크포인트. 각 셀의 <audio> 플레이어를 눌러 직접 들어봅니다.

공유가 간편합니다

WAV 가 HTML 안에 base64 로 박혀 있어서, 파일 하나만 옮기면 모든 오디오가 같이 따라옵니다.

Slack·Notion 에 그대로 올려도 외부 파일 의존 없이 재생됩니다.

내부 동작 — 체크포인트 샘플링과 생성 순서

체크포인트 샘플링

체크포인트가 8개를 넘으면 자동으로 균등 샘플링합니다 (처음·끝 + 그 사이 6개). 10개·20개씩 찍혀 있어도 페이지가 가로로 터지지 않습니다.

생성 순서

  1. <dataset>/training/<dataset>/training/eval/ 에서 TensorBoard 이벤트 파일의 스칼라 지표를 수집합니다.
  2. 체크포인트 하나씩 hayakoe.tts_model.TTSModel 로 로드하고, 평가 텍스트 전부를 합성한 뒤 unload 합니다. VRAM 을 아끼기 위해 한 번에 하나씩만 메모리에 올립니다.
  3. 지표 차트와 오디오 표를 self-contained HTML 로 조립합니다.

리포트 읽는 법

리포트를 열면 먼저 학습 지표 차트 6개 가 보이고, 그 아래에 오디오 비교 표 가 있습니다.

오디오 비교 표를 중심으로 보세요. loss 숫자만으로 결정하지 마세요 — 과적합이 시작되면 숫자는 계속 내려가지만, 귀로 듣는 결과는 오히려 나빠집니다.

학습 지표 차트 6종

각 차트 우측 상단의 숫자는 마지막 스텝 값 입니다. 곡선 자체도 중요하지만 끝점을 먼저 보세요.

  • Generator Loss — 생성기 전체 손실. 낮을수록 판별기를 잘 속임
  • Mel Loss — 생성·타겟 mel-spectrogram 의 L1 거리. 음색 재현 품질
  • Discriminator Loss — 판별기 전체 손실. 실제와 생성 음성을 구분하는 능력
  • KL Loss — Posterior 와 Prior 분포의 KL 발산. latent 정렬 지표
  • Duration Loss — 음소 지속 시간 예측 오차. 발화 리듬·속도 학습
  • Feature Matching Loss — 판별기 중간 feature 매칭 오차. 학습 안정화 항

어느 체크포인트를 고를까

다 들어보고, 제일 소리가 좋은 걸로 고르세요.

단, 마지막 체크포인트가 꼭 좋은 건 아닙니다. 데이터가 적으면 뒤로 갈수록 오히려 어색해지기도 하니, 중간 체크포인트까지 꼭 같이 들어보세요.

확신이 안 서면 후보 2~3개를 ④ 배포 에서 각각 다른 이름으로 올려두고, 실제로 써 보며 고를 수도 있습니다.

다음 단계