LogoSEO Jing
  • All Posts
  • SEO Jing
  • okayJing
  • KD Team
  • CLab CoreTeam
  • Study

Contact Me

© 2026 SEOJing. All rights reserved.

okayJingttssupertonic3voicelocal-first

Supertonic3 custom voice JSON을 직접 빚어보기 — F1 톤에 말끝을 섞는 실험

2026년 6월 6일·4분 읽기

0. Sarah는 없었다

처음에는 Sarah 같은 이름 있는 voice style을 쓰고 싶었다. 하지만 로컬 open-weight Supertonic3에서 실제로 확인한 voice style은 F1부터 F5, M1부터 M5까지였다. Sarah나 sarah는 찾을 수 없었다. 기대했던 voice preset이 그대로 있는 구조가 아니었다.

이 지점에서 선택지는 두 가지였다. 하나는 있는 voice만 그대로 쓰는 것. 다른 하나는 기본 voice를 섞어서 오케이징에 맞는 pseudo-custom voice를 만들어보는 것. 공식 Voice Builder를 쓰면 더 편할 수 있지만, 비용과 운영 의존성이 생긴다. 그래서 일단 로컬에서 할 수 있는 실험을 먼저 했다.

결과적으로 F1을 기본 톤으로 두고, F2나 F5의 말끝 느낌을 일부 섞는 방향이 가장 그럴듯해 보였다.


1. 왜 F1을 중심에 뒀나

F1은 기본 톤이 안정적이었다. 한국어로 읽었을 때 너무 과하게 튀지 않았고, Discord voice mode에서 오래 들어도 부담이 덜했다. 그래서 기본 뼈대는 F1로 잡는 게 자연스러웠다.

다만 F1만 그대로 쓰면 말끝이 조금 단단하게 닫히는 느낌이 있었다. 오케이징이 짧은 구어체로 말할 때는 이 말끝이 꽤 중요하다. "응, 해봤어" 같은 문장이 너무 딱딱하게 닫히면 사람이 말하는 느낌이 줄어든다.

그래서 F2와 F5를 같이 봤다. F2는 끝맺음과 리듬 쪽에서 참고할 만했고, F5도 특정 문장에서는 말끝이 더 부드럽게 느껴졌다. 정확히 어떤 embedding 축이 무엇을 담당한다고 단정할 수는 없지만, 적어도 실험상으로는 tone과 delivery를 나눠 만지는 듯한 감각이 있었다.


2. style_ttl과 style_dp를 나눠 생각했다

Supertonic3 style JSON을 만지면서 흥미로웠던 건 style_ttl과 style_dp를 따로 볼 수 있다는 점이었다. 실험적으로는 style_ttl이 전체 톤, style_dp가 발화의 리듬이나 말끝에 더 가까울 가능성이 있어 보였다. 물론 이것을 공식 해석처럼 단정하면 안 된다. 하지만 voice를 빚는 관점에서는 꽤 유용한 가설이었다.

그래서 F1의 톤을 유지하되, 말끝이 더 자연스럽게 느껴지는 style의 일부를 섞는 식으로 접근했다. 사람 목소리를 완전히 새로 만드는 게 아니라, 기존 voice style들의 장점을 조합해 오케이징에 맞는 쪽으로 미세 조정하는 방식이다.

이 접근은 local-first 운영과도 잘 맞는다. 외부 서비스에 매번 의존하지 않고, 로컬 JSON과 wrapper를 관리하면서 필요한 만큼 바꿔볼 수 있다. 실패해도 되돌리기 쉽고, 샘플을 만들어 비교하기도 좋다.


3. 피치와 속도는 작은 값이 더 나았다

포스트 목록

/okayJing/voice
파일 6개, 폴더 0개
Qwen3-TTS MLX를 검토했지만 Supertonic3로 돌아온 이유Supertonic3 custom voice JSON을 직접 빚어보기 — F1 톤에 말끝을 섞는 실험채팅봇에서 음성 동료로 — 오케이징이 말하기 시작하면서 바뀐 기준TTS 품질 튜닝은 모델 선택보다 운영 기준 문제였다voice mode에서는 보고서 문체가 깨진다 — 오케이징 답변 정책을 다시 잡은 날음성 요청이 포스트 기획으로 바뀌는 과정 — 오케이징의 ticket-first 글쓰기 루틴

피치는 처음에 +8%까지 올려봤다. 여성 voice 느낌을 조금 더 선명하게 만들 수 있었지만, 너무 올리면 자연스러움이 깨질 수 있다. 그래서 다시 +5%로 낮춰봤고, 이쪽이 더 안정적으로 느껴졌다.

속도는 1.2배속이 괜찮았다. 기본 속도는 Discord 대화에서는 약간 느리게 들릴 수 있었다. 특히 오케이징 답변이 조금만 길어져도 기다리는 느낌이 생긴다. 1.2배속은 너무 빠르게 몰아치지 않으면서도 대화 흐름을 살리는 쪽에 가까웠다.

중요한 건 피치와 속도를 따로 보지 않는 것이다. 피치를 올리면 말끝의 인상이 바뀌고, 속도를 올리면 문장 리듬이 바뀐다. 둘 다 voice의 성격을 바꾼다. 그래서 한 번에 크게 바꾸기보다 작은 값으로 비교하는 게 더 안전했다.


  1. custom voice는 완성품보다 운영 가능한 실험이어야 한다

이번 실험의 결론은 "완벽한 오케이징 voice를 만들었다"가 아니다. 오히려 반대에 가깝다. 지금 기준에서는 F1 기반, 약간의 피치 보정, 1.2배속, 8~12 steps 정도가 운영용으로 괜찮아 보인다는 임시 기준을 얻었다.

이 기준은 나중에 바뀔 수 있다. 더 좋은 한국어 TTS가 나오거나, Supertonic3에서 다른 voice style을 쓰게 되거나, Discord 전달 방식이 달라지면 다시 조정해야 한다. 하지만 style JSON을 직접 관리하는 구조를 만들면 이 조정이 가능해진다.

돌이켜보면 custom voice의 핵심은 목소리를 예쁘게 꾸미는 일이 아니었다. 오케이징이 오래 들어도 덜 피곤하고, 한국어 말끝이 자연스럽고, 로컬에서 재현 가능한 목소리를 갖게 하는 일이었다. 그 정도면 지금 단계의 custom voice 실험으로는 충분히 의미가 있었다.