Audio8 TTS 0.6B의 제원과 공개 범위
오디오 코덱을 제외하고 총 601,159,424개의 파라미터를 사용하는 Audio8 TTS Preview 0.6B 모델이 Hugging Face를 통해 공개됐다. 이 모델은 소규모 파라미터 구성으로 최신 성능 수준의 음성 합성을 구현하는 데 초점을 맞췄으며, 아파치 2.0(Apache 2.0) 라이선스를 따른다.
지원 언어는 한국어를 포함해 영어, 중국어, 일본어, 프랑스어, 독일어, 이탈리아어, 스페인어, 네덜란드어, 폴란드어, 광둥어까지 총 11개 언어로 제한된다. 향후 중국어 방언 지원 등이 계획되어 있으며, 설치를 위해서는 파이썬 3.10 이상 버전과 CUDA 가속이 가능한 GPU 환경이 필요하다.
설치에 필요한 라이브러리 구성은 다음과 같다.
pip install "torch>=2.5.0" "torchaudio>=2.5.0" \
"transformers>=4.57.0,=0.12" "safetensors>=0.4"듀얼 AR 구조와 음성 생성 파이프라인
음성 생성의 핵심은 두 개의 자기회귀 모델을 사용하는 듀얼 오토레그레시브(DualAR) 아키텍처에 있다. 전체 과정은 슬로우 AR(Slow AR)과 패스트 AR(Fast AR)이라는 두 단계의 변환 파이프라인을 거쳐 최종 음성을 출력한다.
먼저 슬로우 AR은 24개 층과 896의 너비, 14개의 어텐션 헤드, 2개의 KV 헤드로 구성되어 오디오 프레임당 하나의 시맨틱 토큰(의미 단위의 최소 정보)을 예측한다. 이어지는 패스트 AR은 4개 층의 구조를 가지며, 슬로우 AR이 생성한 은닉 상태와 이전 코드북을 조건으로 입력받아 해당 프레임의 코덱 코드북을 예측하는 방식으로 작동한다.
오디오 코덱은 44.1 kHz의 샘플링 레이트를 지원하며, 모델 프레임당 2,048개의 샘플을 처리해 초당 약 21.5프레임을 생성한다. 이는 CD 수준의 고음질 출력을 가능하게 하는 수치다. 또한 2,048개의 팩킹된 텍스트 및 오디오 포지션 컨텍스트를 지원하여, 긴 문장을 생성할 때 발생할 수 있는 흐름 끊김이나 불안정성을 억제한다.
제로샷 클로닝 구현과 실무 도입 영향
추가 학습 없이 짧은 샘플만으로 목소리를 복제하는 제로샷 보이스 클로닝은 참조 오디오와 해당 오디오의 내용이 일치하는 정확한 텍스트 전사본(Transcript)을 입력값으로 사용한다. 기존 고품질 모델들이 특정 목소리를 학습시키기 위해 방대한 데이터와 튜닝 시간을 요구했던 것과 달리, Audio8 TTS는 입력된 참조 데이터의 특징을 즉각적으로 모사해 출력한다.
0.6B라는 컴팩트한 규모는 비디오 램(VRAM) 점유율을 낮추는 결과로 이어진다. 이는 고가의 인프라 없이도 개인화된 음성 서비스를 구현할 수 있는 환경을 제공하며, 특히 실시간 응답이 중요한 서비스나 온디바이스(On-device) 환경에서 추론 속도와 비용 효율성을 높이는 지표가 된다.
모델은 커스텀 트랜스포머 코드를 사용하므로 로드 시 `trust_remote_code=True` 설정이 필수적이다. 제로샷 보이스 클로닝을 위한 추론 코드는 다음과 같다.
import soundfile as sf
import torch
from transformers import AutoModel, AutoProcessor
model_id = "AutoArk-AI/Audio8-TTS-Preview-0.6b"
device = "cuda" if torch.cuda.is_available() else "cpu"
dtype = torch.bfloat16 if device == "cuda" else torch.float32
processor = AutoProcessor.from_pretrained(model_id, trust_remote_code=True)
model = AutoModel.from_pretrained(
model_id,
trust_remote_code=True,
dtype=dtype,
).eval().to(device)
inputs = processor(
text=["Welcome to Audio8 TTS."],
reference_audio=["reference.wav"],
reference_text=["The exact transcript of the reference recording."],
return_tensors="pt",
)
inputs = {name: value.to(device) for name, value in inputs.items()}
with torch.inference_mode():
output = model.generate(
**inputs,
max_new_tokens=1024,
temperature=0.8,
top_p=0.95,
top_k=50,
do_sample=True,
return_dict_in_generate=True,
)
waveforms, waveform_lengths = model.decode_audio(output.codes)
audio = waveforms[0, : int(waveform_lengths[0])].float().cpu().numpy()
sf.write("output.wav", audio, model.config.codec_sample_rate)실무자는 고가의 GPU 인프라 없이도 온디바이스 환경이나 실시간 응답이 필요한 서비스에서 0.6B 규모의 모델을 통해 추론 비용과 VRAM 점유율을 낮추는 방향으로 아키텍처를 설계해야 한다.




