Voice Synthesis Detection Using Language Model-Based Speech Feature Extraction
2023년에 시작해 2024년 5월 논문 게재로 이어진 생성 음성 탐지 연구다. TTS와 음성 변환 기술이 자연스러워질수록 한 시점의 파형이나 스펙트럼만으로는 생성 과정의 흔적을 찾기 어려워진다. 본 연구는 오디오를 이산 토큰 시퀀스로 바꾸고, 텍스트로 사전학습한 BERT가 그 순서를 읽게 하는 특징 추출 방법을 제안했다.
연구 질문은 오디오 코덱이 만든 이산 코드에도 생성 음성을 구분할 수 있는 시간적 관계가 남는지 확인하는 것이었다. 이를 검증하기 위해 Encodec을 오디오 토크나이저로, BERT-Base를 시퀀스 특징 추출기로 사용했다.
01 · Research question
생성 음성의 어떤 흔적을 읽을 것인가
기존 생성 음성 탐지는 스펙트럼, 위상, filter bank, 원시 파형처럼 음향 신호에서 직접 얻은 특징을 주로 사용했다. 다른 흐름에서는 HuBERT와 같은 음성 사전학습 모델을 특징 추출기로 사용했다. 두 접근 모두 효과가 있었지만 특정 생성기나 데이터 조건에서 잘 보이는 국소 흔적에 의존할 수 있었다.
본 연구는 오디오를 연속 신호가 아닌 코드의 순서로 표현했다. 신경 오디오 코덱 Encodec이 음성을 압축하면서 만든 이산 코드를 BERT의 입력으로 사용했다. BERT가 코드 하나의 값뿐 아니라 앞뒤 코드의 관계를 함께 읽으면, 생성 음성에서 반복되는 장기 패턴까지 특징으로 만들 수 있다고 가정했다.
기존 표현과 제안 표현
스펙트럼과 파형은 음향 신호를 직접 읽는다. Encodec-BERT는 음성을 코드북 인덱스의 시퀀스로 바꾼 뒤, 코드 사이의 문맥을 읽는다.
02 · Feature extractor
Encodec을 BERT의 오디오 토크나이저로 사용했다
Encodec은 인코더, residual vector quantization(RVQ), 디코더로 구성된 신경 오디오 코덱이다. 인코더가 연속 음성을 잠재 표현으로 바꾸면 RVQ가 이를 여러 코드북의 정수 인덱스로 양자화한다. 일반적인 코덱 사용에서는 디코더가 이 코드를 다시 음성으로 복원하지만, 본 연구에서는 디코더 대신 BERT에 코드를 전달했다.
선행 실험 결과를 바탕으로 두 번째 양자화 레이어의 출력을 사용했다. 한 음성에서 얻은 코드는 [2, 512] 형태로 정리했다. 첫 번째 축은 선택한 양자화 코드의 구성, 두 번째 축은 BERT가 처리할 시퀀스 길이에 해당한다. 이산 정수 코드를 BERT 입력 임베딩으로 바꾸고 생성 음성 탐지용 특징을 추출했다.
BERT-Base는 12개의 Transformer 인코더 레이어, 768차원 hidden state, 12개의 self-attention head로 구성했다. 텍스트 문장에서 토큰의 앞뒤 관계를 모델링하듯이, 시간 순서로 나열한 오디오 코드 사이의 관계를 학습시켰다.
모델 입력 요약
- Tokenizer — Encodec encoder + residual vector quantization
- Code selection — 두 번째 양자화 레이어 출력
- Input shape — `[2, 512]` 이산 코드 시퀀스
- Context model — BERT-Base, 12 layers, 768 hidden, 12 heads
03 · Dataset
ASVspoof 2019와 2021을 1:1로 재구성했다
평가에는 ASVspoof 2019와 ASVspoof 2021을 사용했다. LA(Logical Access)는 TTS와 음성 변환 기반 공격을 다루고, DF(DeepFake)는 생성 음성 탐지에 더 직접적으로 초점을 둔다. 2019 데이터는 초기 비교와 분류기 선별에 사용했고, 2021 LA와 DF는 공격 조건이 달라졌을 때의 성능을 확인하는 데 사용했다.
원본 Challenge 데이터는 bona fide와 spoof의 수가 크게 달랐다. 한 클래스의 비율이 다른 클래스보다 약 8배 큰 조건도 있었다. 이 상태에서는 높은 전체 정확도를 얻더라도 소수 클래스를 제대로 구분하지 못할 수 있다. 학습, 검증, 테스트를 각각 실제 음성과 생성 음성의 1:1 비율로 맞췄다.
| 데이터셋 | 분할 | Bona fide | Spoof | 합계 |
|---|---|---|---|---|
| 2019 LA | 학습 | 2,580 | 2,580 | 5,160 |
| 검증 | 2,548 | 2,548 | 5,096 | |
| 테스트 | 7,355 | 7,355 | 14,710 | |
| 2021 LA | 학습 | 10,784 | 10,784 | 21,568 |
| 검증 | 2,704 | 2,704 | 5,408 | |
| 테스트 | 3,376 | 3,376 | 6,752 | |
| 2021 DF | 학습 | 11,824 | 11,824 | 23,648 |
| 검증 | 2,548 | 2,548 | 5,096 | |
| 테스트 | 7,355 | 7,355 | 14,710 |
균형 데이터의 역할
각 분할에서 실제 음성과 생성 음성의 수를 같게 맞췄다. 전체 정확도만 보는 대신 두 클래스를 균형 있게 구분하는지도 함께 평가할 수 있는 조건을 만들었다.
04 · Experiment design
특징 추출기와 분류기를 두 단계로 검증했다
목표는 특정 분류기 하나를 제안하는 것이 아니라 Encodec-BERT 표현 자체가 생성 음성 탐지에 유효한지 확인하는 것이었다. 동일한 특징을 FC-layer, Transformer, ResNet-18, ResNet2 네 분류기에 입력했다.
- FC-layer — 추출한 특징만으로 두 클래스를 선형에 가깝게 구분할 수 있는지 확인했다.
- Transformer — 후단에서도 시퀀스 관계를 다시 모델링했다.
- ResNet-18 —
[512, 768]크기의 고차원 특징 패턴을 잔차 신경망으로 학습했다. - ResNet2 — ResNet-18의 각 레이어 입출력 크기를 음성 특징에 맞게 조정했다.
실험은 두 단계로 진행했다. 1단계에서는 ASVspoof 2019 LA로 네 분류기를 학습·평가하고 ASSD, TSSDNet, CCT와 비교했다. ASSD는 오디오 코덱과 Transformer를 사용하는 유사한 구조였기 때문에 제안 특징과 비교할 기준으로 선택했다. 2단계에서는 2019 LA에서 성능이 높았던 FC-layer, ResNet-18, ResNet2를 2021 LA와 DF에 적용했다.
05 · Metrics
클래스별 정확도와 EER을 함께 사용했다
논문에서 Class 0은 실제 음성, Class 1은 생성 음성을 뜻한다. 클래스별 정확도는 어느 쪽에서 오류가 많이 발생하는지 보여 준다. Balanced Accuracy는 두 클래스 정확도의 평균이며, Accuracy는 전체 표본 중 맞힌 비율이다.
EER(Equal Error Rate)은 실제 음성을 생성 음성으로 잘못 판단하는 비율과 생성 음성을 실제 음성으로 놓치는 비율이 같아지는 지점의 오류율이다. 생성 음성 탐지에서는 EER이 낮을수록 두 클래스를 더 잘 분리한 결과다.
평가 지표
- Class 0 Accuracy — 실제 음성 식별 정확도
- Class 1 Accuracy — 생성 음성 식별 정확도
- Balanced Accuracy — 두 클래스 정확도의 평균
- EER — 두 종류 오류율이 같아지는 지점, 낮을수록 우수
06 · Results
2021 DF에서 11.79% EER을 기록했다
Encodec-BERT + ResNet2
Encodec-BERT + ResNet2
Encodec-BERT + FC-layer
Encodec-BERT + ResNet2
1단계: ASVspoof 2019 LA
| 분류기 | Class 0 | Class 1 | Balanced | Accuracy | EER |
|---|---|---|---|---|---|
| FC-layer | 80.84% | 99.08% | 89.96% | 87.88% | 17.09% |
| ResNet-18 | 80.46% | 99.04% | 89.75% | 87.57% | 17.40% |
| ResNet2 | 81.27% | 98.69% | 89.98% | 88.08% | 15.98% |
| Transformer | 81.43% | 70.43% | 77.00% | 74.65% | 23.07% |
ResNet2가 88.08% Accuracy와 15.98% EER로 네 구성 중 가장 좋은 결과를 냈다. FC-layer도 87.88% Accuracy와 17.09% EER을 기록했다. 단순한 분류기에서도 성능이 유지됐다는 점은 Encodec-BERT 특징 자체에 판별 정보가 포함됐음을 보여 준다.
Transformer 후단은 Class 1 Accuracy가 70.43%로 낮았다. 특징 추출 단계에서 이미 BERT가 시퀀스 관계를 모델링했기 때문에, 후단 Transformer를 추가하는 것이 항상 이득을 만들지는 않았다.
2단계: ASVspoof 2021 LA와 DF
| 데이터 | 분류기 | Balanced Accuracy | Accuracy | EER |
|---|---|---|---|---|
| 2019 LA | ResNet2 | 89.98% | 88.08% | 15.98% |
| 2021 LA | FC-layer | 89.42% | 88.67% | 10.91% |
| 2021 DF | ResNet2 | 87.74% | 87.02% | 11.79% |
2021 LA에서는 FC-layer가 가장 좋은 결과를 냈다. Class 0 Accuracy는 84.52%였고, Balanced Accuracy 89.42%, 전체 Accuracy 88.67%, EER 10.91%를 기록했다. 반면 DF에서는 ResNet2가 Class 1 Accuracy 91.28%, Balanced Accuracy 87.74%, 전체 Accuracy 87.02%, EER 11.79%로 가장 좋았다.
DF 조건의 11.79% EER은 논문에서 비교한 Mel-spectrogram, SincNet, Raw 기반 특징과 CNN·ResNet 분류기 조합의 15.64%보다 낮았다. Fbank 기반 비교 모델은 16.05%, CQT 기반 모델은 18.30%였다. 같은 비교 조건에서 Encodec-BERT가 더 낮은 오류율을 기록했다.
핵심 관찰
한 분류기가 모든 데이터에서 가장 좋지는 않았다. LA에서는 FC-layer, DF에서는 ResNet2가 가장 낮은 EER을 기록했다. 공통 특징을 사용하더라도 마지막 결정 경계는 공격 유형과 데이터 조건의 영향을 받았다.
07 · Limits
클래스 균형을 맞춘 뒤에도 성능 차이가 남았다
데이터 수를 1:1로 맞췄지만 Class 0과 Class 1 Accuracy의 차이는 완전히 사라지지 않았다. 단순한 표본 수 외에도 학습·검증·테스트에 포함된 생성 방식과 공격 난이도가 달랐기 때문이다. 2019 LA에서 높았던 분류기가 2021 LA와 DF에서 같은 순위를 유지하지 않은 결과도 데이터 조건의 영향을 보여 줬다.
본 실험은 ASVspoof의 정해진 공격 조건에서 특징 표현의 가능성을 확인했다. 새로운 TTS와 음성 변환 모델, 서로 다른 오디오 코덱, 압축·재전송, 실제 통화 채널까지 일반화한다고 결론 내릴 수는 없다. 생성기와 전송 조건을 넓힌 평가가 다음 단계로 남았다.
평가상의 한계
균형 샘플링은 클래스 수의 편향을 줄였지만 공격 유형의 편향까지 제거하지는 못했다. 보지 못한 생성기와 채널 조건에서 성능이 유지되는지 별도로 검증해야 한다.
08 · Conclusion
결론
Encodec의 RVQ 코드를 BERT의 입력 토큰처럼 사용해 생성 음성 탐지 특징을 추출했다. 2019 LA에서 네 분류기를 비교한 뒤 상위 세 분류기를 2021 LA와 DF로 확장했고, DF에서는 기존 비교 모델의 15.64%보다 낮은 11.79% EER을 기록했다.
결과는 텍스트용 사전학습 모델이 오디오의 이산 표현에서도 판별 가능한 시퀀스 관계를 추출할 수 있음을 보였다. 동시에 후단 분류기와 데이터 조건에 따라 결과가 달라졌으며, 새로운 생성기와 실제 전송 환경에 대한 일반화는 후속 연구로 남았다.
09 · Publication