모델 비교

Supertonic vs SuperClonica: 같은 모델, 더 빠르고 깨끗하게

모델은 같은 Supertonic 3이고, 목소리와 텍스트, 시드도 같습니다. 러시아어, 영어, 독일어로 된 짧은 채팅 문장을 원본 Supertonic과 SuperClonica로 각각 읽게 한 뒤 속도와 소리를 비교했습니다.

요약하면 SuperClonica는 그래픽 카드에서 1.7배, 프로세서에서 1.6배 빠르고, 말을 시작하기까지의 무음이 0.5초에서 0.08초로 줄었으며, 쉼 구간의 잡음을 없애고 문장 끝이 끊기는 일도 훨씬 적습니다. 아래에 측정 결과와 원본이 더 나은 경우, 그리고 직접 들어 볼 수 있는 모든 녹음을 실었습니다.

속도

두 엔진은 같은 프로세스에서 문장마다 번갈아 실행했고, 매번 순서를 바꿨습니다. 그래서 컴퓨터의 백그라운드 부하가 두 엔진을 똑같이 느리게 만듭니다. 문장마다 새로운 채팅처럼 호출할 때마다 새 시드를 썼습니다. 두 엔진 모두 미리 만들어 예열해 두었습니다.

그래픽 카드에서는 CUDA 그래프 덕분에 빨라집니다. 모델 전체를 한 번 기록해 두고 이후에는 명령 하나로 실행합니다. 프로세서에서는 모델을 멀티스레드 연산에 맞게 다시 작성했습니다. SuperClonica는 그래픽 카드에서 10개 문장 모두, 프로세서에서 24개 문장 모두 더 빨랐습니다.

SupertonicSuperClonica
그래픽 카드, 문장당 중앙값202ms117ms
그래픽 카드, 10개 문장 연속2.03초1.19초
프로세서, 문장당 중앙값855ms530ms
프로세서, 8개 언어 24개 문장 연속22.03초14.39초

소리

모델이 같으므로 목소리와 억양은 똑같습니다. 차이는 단어 주변에서 생깁니다. 앞뒤의 무음, 쉼 구간의 잡음, 그리고 모델이 가끔 덧붙이는 불필요한 소리입니다.

그래프는 한 문장을 같은 시간축에 보여 줍니다. 원본은 첫 단어 앞에 0.5초, 마지막 단어 뒤에 0.5초 넘는 무음을 남기지만, SuperClonica는 0.08초와 0.2초만 남겨 말이 더 빨리 시작됩니다. 단어 사이 쉼 구간의 배경 잡음도 제거됩니다.

예시 문장 10개 기준SupertonicSuperClonica
첫 단어 전 무음(중앙값)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 넘게 떨어지면 끊김으로 셉니다. 아래 세 가지 예시는 문장 끝을 확대한 것이며, 점선이 발화의 끝을 표시합니다.

문장 끝의 급한 끊김SupertonicSuperClonica
러시아어, 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로 인식해 확인했습니다.

언어SupertonicSuperClonica
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 모델은 자체 라이선스로 배포됩니다.