Fish Audio Drama 3가 연출과 편집을 하나의 모델로 통합한다

Fish Audio Drama 3 Technical Report

HF Daily2610.18010

Dawei Han, Shidong Li, Shijia Liao2026-10-13

무엇인가

이 논문이 푸는 문제는 "정확히 읽는 음성"이 아니라 "연출된 음성"이다. 대규모 TTS는 이제 사람에 가까운 명료도와 화자 유사도를 내지만, 오디오북·오디오 드라마, 영화·게임 더빙, 인터랙티브 캐릭터가 요구하는 것은 연출(direction)이다. 연출은 대사를 어떻게 전달할지 자연어로 서술하고, 여러 테이크를 거쳐 다듬고, 다른 캐릭터들 사이의 장면 안에 배치하고, 한 단어가 틀렸을 때 국소적으로 고치는 일이다. 저자들은 자사 이전 모델 Fish Audio S2의 네 가지 한계를 든다. 첫째, 아키텍처가 긴 연출 세션용이 아니다. 참조와 이전 테이크가 수천 개 오디오 토큰에 이르는데 S2의 full-attention 백본이 이를 전부 보고, 프레임 단위 Fast AR 모듈은 백본 상태 하나를 통해서만 참조를 본다. 둘째, 제어가 단발성이라 이미 만들어진 테이크에 노트를 줘서 다시 만들게 할 방법이 없다. 셋째, 생성이 전부 아니면 전무라서 긴 테이크의 한 단어를 고치려면 테이크 전체를 재생성해야 하고 주변이 다 바뀐다. 넷째, 후처리 학습이 프록시를 최적화한다. WER과 화자 유사도 보상은 웃음, 긴 침묵, 속삭임처럼 표현력 있는 연출이 정당하게 벗어나는 지점을 벌한다.

어떻게 동작하나

구조는 세 부분을 바꾼 S2의 확장이다. 오디오 토크나이저는 S2 것을 그대로 재사용한다. Descript Audio Codec 기반으로 44.1kHz 오디오를 약 21.5 frames/sec, 10개 codebook 프레임으로 인코딩하며 첫 codebook은 의미(semantic), 나머지 9개는 점진적으로 세밀한 음향을 더하는 residual VQ다. 완전 causal이라 인코딩과 디코딩 모두 스트리밍된다. 백본은 Qwen3.5-35B-A3B에서 언어 모델 부분만 초기화한 40층 하이브리드로, Gated DeltaNet 층 3개와 gated full-attention 층 1개를 반복 적층한다. DeltaNet 층은 히스토리를 상수 크기 상태로 들고 가고 4층 중 1층만 KV 캐시를 유지하며, full-attention 층은 참조 클립의 음색이나 스크립트 멀리 뒤의 대사 같은 정확한 검색을 담당한다. 모든 층의 FFN은 256개 전문가 중 8개로 라우팅하는 MoE에 shared expert를 더해 35B 중 토큰당 약 3B만 활성화된다. 두 번째 변경은 Partial Codebook Fusion이다. S2는 10개 codebook 임베딩을 모두 합산해 백본에 되먹였지만, Drama 3는 의미 code와 첫 음향 code 두 개만 되먹인다. 프레임 t에서 백본 입력은 1/√2 × (E_LM[s(q_t^(0))] + E^(1)[q_t^(1)])로, 자기 샘플링 코드로 인한 노출 편향을 줄이면서 참조 오디오와 자기 생성 음성의 거친 음향 뷰는 유지한다. 나머지 codebook 2~9는 백본을 우회해 디코더 첫 층으로 들어간다. 세 번째가 핵심인 codebook-MTP 디코더다. S2의 프레임 단위 Fast AR을 대체하며, 13개 층을 codebook 축으로 쌓는다. 공유 4층 뒤에 codebook별 9층이 오고, 각 층은 자기 임베딩·출력 헤드·시퀀스 전체에 대한 KV 캐시를 따로 가진다. 백본이 프레임 t 위치에서 다음 프레임의 의미 code q^(0)를 예측하면, 같은 위치에서 디코더가 9개 음향 code를 예측한다. 각 층은 바로 아래 층의 은닉 상태와 직전 codebook의 코드 임베딩을 병합해 트랜스포머 블록을 통과시키고, 어텐션은 참조 오디오를 포함한 전체 시퀀스에 causal하게 걸린다. 즉 세밀한 코드가 요약 벡터 하나가 아니라 전체 문맥에서 직접 예측된다. 학습 시에는 모든 코드를 정답으로 teacher forcing해 시퀀스 전체에 대한 추가 causal 패스 한 번으로 끝나고, 추론 시에는 프레임마다 백본 1스텝에 디코더 13스텝이 붙는다.

무엇과 다른가

학습은 3단계 사전학습, 지시 SFT, 인간 선호 기반 RL로 구성된다. 사전학습은 품질 관리를 통과한 전사 음성과 텍스트 문서로 수천억 토큰을 처리하며 언어 범위는 S2와 같은 약 80개 언어·방언이다. 1·2단계는 최대 8K 토큰의 텍스트 문서와 멀티턴 TTS 대화로 텍스트를 오디오 코드로 바꾸는 법을 배우고, 2단계는 같은 시퀀스에 배치를 2배로 키워 그래디언트 노이즈를 낮춘다. 3단계는 최대 길이를 16K로 늘리고 통녹음 장편 합성, 스트리밍 인터리브, 음성 인필링을 추가한다. 시퀀스는 document masking으로 128K 토큰 행에 패킹하고 Muon으로 최적화한다. 손실은 텍스트 항에 의미 code 항 0.5, codebook 항 0.5를 더한 형태이고 codebook 손실은 백본까지 역전파된다. SFT는 32K 토큰까지 indexed reference layout으로 진행하며, 레시피 선택을 훈련 손실이 아니라 held-out 실제 음성의 의미 토큰 teacher-forced NLL로 한다. RL은 SFT 체크포인트에서 시작해 GRPO를 KL 페널티 없이, 매우 큰 배치로 돌린다. 보상은 단 하나의 학습된 인간 선호 모델이다. 자체 소형 음성 언어 모델을 선호 쌍에 Bradley-Terry 손실로 학습시키고, 원점수를 고정 앵커로 표준화한 뒤 ±3으로 클립해 같은 프롬프트에 대해 샘플된 n개 테이크 사이의 기대 승률로 바꾼다. 전사 오류 보상, 음성 품질 모델, 화자 유사도 보상은 전부 제거했다.

어떻게 쓰나

실험은 이 단일 모델 하나로 수행되며, 대부분의 베이스라인은 한 종류의 작업만 위해 만들어진 시스템이다. 먼저 선호 보상이 규칙 보상과 무엇이 다른지 분석한다. Expresso에서 네 화자가 같은 문장을 기본 스타일과 여러 스타일로 읽은 것을 쌍으로 묶으면, 화자당 기본 스타일 녹음 하나를 SIM 참조로 쓸 때 모든 스타일이 기본 낭독보다 SIM을 낮춘다. 명료한 낭독은 0.019, 속삭임은 0.310 낮아지므로 유사도 보상은 스타일에 따라 62.0%에서 99.7%의 쌍에서 기본 낭독을 선호한다. 웃으며 읽으면 WER이 0.79 포인트 올라가므로 WER 보상은 웃음을 벌한다. 반면 Drama 3의 보상 모델은 방향 지시가 주어지면 속삭임 읽기를 62.2%, 웃는 읽기를 64.4%에서 선호한다(지시가 없으면 각각 10.6%, 27.1%). 규칙 보상을 빼도 실패율은 줄어든다. 같은 추론 엔진과 샘플링 설정으로 SFT 체크포인트와 RL 이후 정책을 비교하면, 신호 검사에 걸린 첫 테이크 비율이 test-zh에서 2.82%에서 1.24%로, test-en에서 3.40%에서 1.84%로 떨어지고 첫 테이크 오류율도 1.66에서 1.00 CER, 3.49에서 2.20 WER로 내려간다. 재생성 후에도 0.83 대 0.84 CER, 1.54 대 1.60 WER로 우위를 유지한다.

전제와 한계

기능별 결과도 제시된다. 다중 참조 복제는 공개 벤치마크가 없어 LibriSpeech-PC test-clean 목록(39화자 1,127문장)에 대상 문장을 포함하지 않는 클립 2개씩을 추가해 평가했고, 참조 1개일 때 SIM 0.605가 3개일 때 0.633으로 오른다. 참조 1개 기준 UTMOS 4.31은 OmniVoice와 CosyVoice 3의 4.28보다 높다. MiniMax Multilingual Testset(24개 언어)에서는 OmniVoice보다 15개 언어, FireRedTTS3-Base보다 17개 언어에서 오류율이 낮고, 아랍어·중국어·네덜란드어·영어·핀란드어·프랑스어·독일어·폴란드어·포르투갈어·터키어·베트남어 11개 언어에서 OmniVoice, FireRedTTS3-Base, S2 모두보다 낮다. 직접 실행한 시스템과 비교하면 Inworld TTS-2보다 18개 언어, Soniox TTS RT v2보다 지원 23개 중 21개 언어, ElevenLabs v4보다 9개 언어에서 낮고, 중국어·네덜란드어·영어·독일어·터키어에서는 표의 모든 시스템보다 낮다. 스트리밍은 Seed-TTS-Eval test-en 1,088문장에서 스트리밍 WER 1.86, 비스트리밍 1.83, SIM은 둘 다 0.640으로 품질 손실이 없다. 인필링 편집은 Ming-Freeform-Audio-Edit에서 중국어 삽입 SIM 0.909, 치환 0.898로 CosyEdit2의 0.89를 넘고, 삭제 WER 7.82 대 8.23, 삭제·치환에서 MAE_D가 가장 작다. Cartesia Sonic-3의 infill API와 비교하면 두 언어 두 분할 모두에서 WER이 낮고, 중국어는 3.69 대 8.64(기본), 2.35 대 6.53(전체)으로 절반 이하다. 멀티턴 수정은 Step-Audio-Edit에서 라운드를 거듭할수록 감정 정확도가 55.5에서 58.2로, 스타일 정확도가 76.5에서 81.8로 오르고, 포인트 태그 삽입과 인필링으로 준언어 점수가 1.32에서 2.32로 오른다. 서빙은 H200 한 장에서 단일 스트림을 초당 271프레임으로 디코딩해 S2의 177을 앞선다. 파라미터가 7배 이상 많은데도 그렇다.

개발자 관점에서 이 논문의 실질적 의미는 세 가지다. 첫째, 음성 파이프라인을 "한 번 생성"이 아니라 대화형 세션으로 설계할 수 있다는 근거를 준다. 모든 작업이 ChatML 스타일 대화로 같은 토큰 스트림 위에 표현되고 손실은 어시스턴트 턴에만 걸리므로, 복제·연출·수정·더빙·편집·스트리밍이 별도 API가 아니라 하나의 프롬프트 포맷으로 처리된다. 둘째, 보상 설계에 대한 반례로 읽을 수 있다. 표현력 있는 음성에서 WER과 화자 유사도는 목표와 어긋나는 프록시이며, 저자들은 이를 제거하고 보정·클립된 단일 선호 보상으로 대체해 실패율까지 낮췄다. 셋째, 배포 비용이다. codebook-MTP 디코더를 프레임당 한 번만 돌리고, 전문가를 RL 롤아웃과 같은 block-scaled FP8로 실행하고, prefill과 decode를 분리해 새 요청이 진행 중인 스트림을 막지 않게 한 엔진 설계는 실제 서빙에서 참고할 지점이다. 가중치는 GitHub와 Hugging Face에 공개되어 있고 추론은 SGLang-Omni로 제공된다.

한계와 전제는 논문에 별도 절로 정리되어 있지 않지만 본문 곳곳에 흩어져 있다. Drama 3에는 오디오 인코더가 없어서 참조와 프롬프트 오디오는 오디오 토큰으로만 들어간다. 보상은 단일 학습 선호 모델 하나뿐이며, 저자들은 보정되고 경계가 있는 보상이 보상 해킹을 관찰 가능하게 유지한다고 말할 뿐 선호 모델 자체의 편향을 검증하지는 않는다. 평가 조건도 균일하지 않다. 벤치마크마다 Drama 3와 베이스라인의 조건이 다르면 그 차이를 명시하고, 다수 베이스라인 수치는 각자 논문에서 인용한 값이라 자체 채점 방식을 쓴 경우가 있으며, ElevenLabs v4·Inworld TTS-2·Soniox TTS RT v2·Cartesia Sonic-3만 저자들이 직접 실행했다. 평가 프로토콜에는 무음 출력, 음성 부족, 길이 폭주, 긴 노이즈·침묵 같은 신호 검사 실패 출력을 재생성해 다시 채점하는 절차가 들어가므로 첫 테이크 수치와 최종 수치를 구분해 읽어야 한다. 다중 참조 복제는 공개 벤치마크가 없어 저자들이 직접 확장한 목록에서만 측정됐다. 저자들은 총 파라미터 기준으로 Drama 3가 현재까지 음성 생성에 특화된 오픈 웨이트 모델 중 가장 크다고 주장한다.