Supertonic vs SuperClonica: 같은 모델, 더 빠르고 깨끗하게
모델은 같은 Supertonic 3이고, 목소리와 텍스트, 시드도 같습니다. 러시아어, 영어, 독일어로 된 짧은 채팅 문장을 원본 Supertonic과 SuperClonica로 각각 읽게 한 뒤 속도와 소리를 비교했습니다.
요약하면 SuperClonica는 그래픽 카드에서 1.7배, 프로세서에서 1.6배 빠르고, 말을 시작하기까지의 무음이 0.5초에서 0.08초로 줄었으며, 쉼 구간의 잡음을 없애고 문장 끝이 끊기는 일도 훨씬 적습니다. 아래에 측정 결과와 원본이 더 나은 경우, 그리고 직접 들어 볼 수 있는 모든 녹음을 실었습니다.
속도
두 엔진은 같은 프로세스에서 문장마다 번갈아 실행했고, 매번 순서를 바꿨습니다. 그래서 컴퓨터의 백그라운드 부하가 두 엔진을 똑같이 느리게 만듭니다. 문장마다 새로운 채팅처럼 호출할 때마다 새 시드를 썼습니다. 두 엔진 모두 미리 만들어 예열해 두었습니다.
그래픽 카드에서는 CUDA 그래프 덕분에 빨라집니다. 모델 전체를 한 번 기록해 두고 이후에는 명령 하나로 실행합니다. 프로세서에서는 모델을 멀티스레드 연산에 맞게 다시 작성했습니다. SuperClonica는 그래픽 카드에서 10개 문장 모두, 프로세서에서 24개 문장 모두 더 빨랐습니다.
| Supertonic | SuperClonica | |
|---|---|---|
| 그래픽 카드, 문장당 중앙값 | 202ms | 117ms |
| 그래픽 카드, 10개 문장 연속 | 2.03초 | 1.19초 |
| 프로세서, 문장당 중앙값 | 855ms | 530ms |
| 프로세서, 8개 언어 24개 문장 연속 | 22.03초 | 14.39초 |
소리
모델이 같으므로 목소리와 억양은 똑같습니다. 차이는 단어 주변에서 생깁니다. 앞뒤의 무음, 쉼 구간의 잡음, 그리고 모델이 가끔 덧붙이는 불필요한 소리입니다.
그래프는 한 문장을 같은 시간축에 보여 줍니다. 원본은 첫 단어 앞에 0.5초, 마지막 단어 뒤에 0.5초 넘는 무음을 남기지만, SuperClonica는 0.08초와 0.2초만 남겨 말이 더 빨리 시작됩니다. 단어 사이 쉼 구간의 배경 잡음도 제거됩니다.
| 예시 문장 10개 기준 | Supertonic | SuperClonica |
|---|---|---|
| 첫 단어 전 무음(중앙값) | 0.50초 | 0.08초 |
| 마지막 단어 후 무음(중앙값) | 0.63초 | 0.20초 |
| 파일 10개의 총 길이 | 37.6초 | 30.0초 |
| 단어 사이 쉼 구간의 잡음(중앙값, 피크 대비) | −48dB | −92dB |
수천 번의 생성 테스트가 보여 주는 것
10개 문장은 표본일 뿐입니다. 아래 결과는 훨씬 큰 규모로 진행한 자체 테스트에서 나왔습니다.
- 문장 끝의 불필요한 소리. 모델은 마지막 단어 뒤에 클릭음, 숨소리, 웅웅거림, 여분의 음절을 덧붙이기도 합니다. 1,800개와 1,392개 문장으로 진행한 두 번의 테스트(12개와 18개 언어, Whisper로 인식)에서 이런 끝맺음이 각각 27개와 26개 있었습니다. SuperClonica의 정리 후에는 0개와 3개만 남았습니다.
- 단어가 잘리지 않습니다. 정리 결과는 음소 인식기로 모델의 원래 출력과 대조해 검증합니다. 최근 버전 기준으로 30개 이상 언어에서 25,000회가 넘는 생성을 확인했고, 실제 발화가 잘린 사례는 확인된 것이 없습니다.
- 긴 텍스트에서 버벅임 감소. SuperClonica는 자연스러운 쉼에서 텍스트를 최대 160자 단위로 나누고, 원본은 300자 단위로 나눕니다. 160자 이하 단위에서는 단어 반복이 1,800회 생성 중 1번, 200~290자 단위에서는 1~4%의 경우에 나타났습니다.
- 클리핑 없음. 모델은 가끔 최대 레벨을 넘는 피크를 만듭니다. 미리보기 리미터가 그 피크만 낮춥니다.
문장 끝 끊김 감소
모델은 마지막 소리를 최대 음량에서 갑자기 끊을 때가 있습니다. 단어 중간에 녹음을 끈 것처럼 들립니다. 귀에는 클릭음이나 삼킨 듯한 끝으로 들립니다. SuperClonica는 이런 끝을 자연스러운 페이드아웃으로 마무리하면서 소리 자체는 그대로 유지합니다.
채팅 문장마다 표준 목소리 4개로 읽게 했고, 두 엔진의 목소리와 시드를 같게 했습니다. 발화 끝에서 2ms 안에 음량이 25dB 넘게 떨어지면 끊김으로 셉니다. 아래 세 가지 예시는 문장 끝을 확대한 것이며, 점선이 발화의 끝을 표시합니다.
| 문장 끝의 급한 끊김 | Supertonic | SuperClonica |
|---|---|---|
| 러시아어, 312개 | 37 · 11.9% | 3 · 1.0% |
| 영어, 300개 | 53 · 17.7% | 6 · 2.0% |
| 독일어, 132개 | 14 · 10.6% | 0 · 0.0% |
| 전체, 744개 | 104 · 14.0% | 9 · 1.2% |
숫자
원본은 숫자를 그대로 모델에 넘깁니다. 모델은 작은 수는 스스로 잘 읽지만, 일부 언어에서는 큰 수를 틀리게 읽습니다. SuperClonica는 27개 언어에서 숫자를 단어로 풀어 읽습니다.
숫자는 3, 25, 2024, 150이 들어간 문장으로 언어마다 시드 2개를 써서 Whisper로 인식해 확인했습니다.
| 언어 | Supertonic | SuperClonica |
|---|---|---|
| es | 두 시드 모두 ‘150’을 알아들을 수 없게 읽음 | 정확 |
| fr | 두 시드 모두 ‘150’이 ‘105’로 들림 | 정확 |
| de | 한 시드에서 ‘150’이 ‘eine 50’이 됨 | 정확 |
| pl | 한 시드에서 ‘2024’가 뭉개짐 | 정확 |
| ru, uk, it | 정확 | 정확 |
직접 들어 보세요
측정에 쓴 모든 문장입니다. 각 녹음 아래에 음량 엔벨로프가 있으며, 발화 앞뒤의 무음은 음영으로 표시했습니다.
원본 Supertonic이 더 나은 경우
SuperClonica가 모든 면에서 앞서지는 않습니다. 저희가 알고 있는 절충점은 다음과 같습니다.
- 시작 시간. SuperClonica는 시작할 때 그래픽 카드에서 CUDA 그래프를 확인하고 프로세서용으로 모델을 다시 작성하기 때문에 시작이 더 오래 걸립니다. 그래픽 카드에서 9.5초(원본 1.2초), 프로세서에서 4.0초(원본 0.9초)입니다. 엔진은 한 번 만들어 계속 유지하는 것이 좋습니다.
- 그래픽 카드에서의 긴 단락. 텍스트를 최대 160자 단위로 나누기 때문에 긴 단락은 원본보다 조금 느릴 수 있습니다. 이번 측정에서는 그런 일이 없었습니다. 대신 버벅임이 줄어듭니다.
- 격 변화 없는 숫자. 러시아어 ‘в 2024 году’는 서수가 아닌 기수로 읽히고, 영어 연도는 일반 숫자처럼 들립니다. numbers=False 매개변수를 쓰면 원본처럼 숫자를 그대로 모델에 넘깁니다.
측정 방법
후처리 없는 Supertonic 1.3.1(모델 supertonic-3)과 기본 설정의 SuperClonica 0.6.23을 비교했습니다. 두 엔진 모두 속도 1.05, 8단계로 실행했고, 문장마다 목소리와 시드를 같게 했습니다. 그래픽 카드는 RTX 5070 Ti, ONNX Runtime GPU 1.26(10회). 프로세서는 Ryzen 7 5800X, 두 엔진 모두 4스레드, 8개 언어 24개 채팅 문장(2회).
앱을 열어 둔 평소 업무용 컴퓨터에서 측정했습니다. 한가한 컴퓨터라면 절대적인 밀리초 값은 더 작지만 비율은 유지됩니다. 음향 지표는 그래픽 카드에서 따로 진행한 측정에서 얻었고, 무음과 잡음은 문장 피크 대비 10ms 프레임 단위로 계산했습니다.
SuperClonica는 Supertonic에서 독립적으로 파생된 프로젝트이며 Supertone의 공식 릴리스가 아닙니다. Supertonic 3 모델은 자체 라이선스로 배포됩니다.