사전 지식

  • LM (Language Model, 언어 모델)
    • 단어 sequence의 확률을 결정하기 위한 방법
    • 단어를 추론하고 생성
  • ASR (Automatic Speech Recognition, 자동 음성인식)
    • 음성과 text를 활용하여 학습시킴
    • context dependency가 부족할 수 있음
    • LM을 연결할 경우 context 정보가 반영되어 성능이 올라감
  • Rescoring
    • 단어가 나타날 확률을 구할 때 sparsity, long-term dependency 등의 문제가 발생
    • 모델에 global context 반영 위해 rescoring 제안
    • 여러 번 decoding 거치는 multi-pass 방법론
    • 이 논문에는 최상의 N개 결과를 이용하는 N-best list rescoring이 적용됨
      • (e.g.) (real) 북구청으로 가세요.
      • (e.g.) (top1) 북구청으로 가세요.
      • (e.g.) (top2) 북극청으로 가세요.
      • (e.g.) (top3) 북구 처음으로 가세요.
      • (e.g.) (top4) 부끄청으로 가세요.
  • GER (Generative Error Correction)
    • noise-robust ASR 모델
    • noise가 있는 audio로부터 text를 생성하기 위함
  • Beam Search Decoding
    • 자연어 처리에서 sequence를 생성할 때 사용하는 기법 중 하나
    • 가장 높은 확률의 token 하나를 고르는 게 아니라, 가능도가 높은 여러 개의 token을 선택해 target sequence를 늘리는 방법
    • 성능은 좋으나, 속도가 느려질 수 있다는 한계
  • KD (Knowledge Distillation, 지식 증류)
    • 연산량이 적은 network가 큰 network만큼의 성능을 낼 수 있도록 teacher network의 지식을 student network에 전달하는 학습법

소개

  • 최근 연구에서 LLM(Large Language Model)이 NLP(Natural Language Processing)에 자주 사용되고 있음.
  • 이 논문은 ASR의 연구 주제 중 하나인 GER에서 N-best list rescoring을 활용하여 성능을 높이고자 함.
  • 음성의 noise로 인한 부정적인 영향을 줄이고자 학습된 LLM을 fine-tuning함.
  • 저자는 해당 model을 noise에 강인한 RobustGER로 소개하고 있음.
  • noise가 낀 audio를 바로 적용하면 corss modality gap으로 인한 성능 저하.
    • 이 문제 해결을 위해 noise embedding 추출.
    • N-best hypothesis list로부터 noise diversity 측정.
    • worse noise condition, beam search decoding 등으로 N-best의 diversity를 높임.
  • noise embedding은 language-space denoising을 위한 기법.
  • mutual information estimation(KL divergence)을 통한 KD를 사용하여 audio embedding에서 noise information을 제거함.
  • WER(word error rate)을 기존 GER 모델보다 53.9% 가량 개선함.

Benchmark 모델 & 데이터

  • GER (Generative Error Correction)
    • noise에 robust한 ASR 모델
    • noisy한 speech $X_n$으로부터 beam search decoding을 활용하여 N_best hypotheses $\mathcal{Y}_N={Y_1,Y_2,···,Y_N}$을 생성함
    • 생성한 후보군을 text로 바꿔주는 hypotheses-to-transcription (H2T) 모델에 넣어줌 ${Y=\mathcal{M}_ {H2T}(\mathcal{Y}_N)}$

    • ground truth가 $Y^+$일 때, cross-entropy loss를 다음과 같이 계산하여 LLM을 fine-tuning 함. ($\theta$는 learnable parameter) ${\mathcal{L}_ {H2T} = \sum_ {t=1}^{T}- \log \mathcal{P}_ {\theta}(y_ {t}^{+} \vert y_ {t-1}^{+}, ··· ,y_ {1}^{+},\mathcal{Y}_ {N})}$
  • 데이터
    • noise한 speech audio 사용
      • CHiME-4, DEMAND, NOIZEUS, LibriSpeech-FreeSound, RATS, etc.

방법론

framework

  • 전체 Framework
    • $\mathcal{Y}_ {N}$에서 $N=5$로 설정
    • $\mathcal{Y}_ {N}$으로부터 추출한 language-space noise를 $E_ {LN}$으로 설정
    • source speech $X_n$에서 KD를 통해 noise를 제거하기 위해 ASR audio embedding을 $\mathcal{E}_ {ASR}(X_ {n})$으로 설정
    • noise 제거를 위해 denoising을 minus sign을 붙여 $-E_ {LN}$으로 표현
    • 다음 ${\mathcal{M}_ {H2T}}$는 LLM finetuning을 거친 H2T mapping: ${Y=\mathcal{M}_ {H2T}(\mathcal{Y}_ {N};-E_ {LN})}$
  • Language-space Noise Embedding
    • $E_ {LN}=[E_ {LN}^{utt};E_ {LN}^{tok}]$
    • $E_ {LN}$은 N-best list 내부의 문장 전체 diversity에 영향 끼치는 1) utterance level $E_ {LN}^{utt}$와 단어 단위에서 distribution을 측정한 2) token level $E_ {LN}^{tok}$로 나누어짐
    • 한편, raw text로부터 audio embedding을 얻기 위해 sentence-BERT (SBERT)가 사용됨
  • Utterance-level Noise Embedding
    • Utterance-level Noise Embedding은 음성 신호에서 발생하는 배경 소음이나 잡음을 표현하는 데 사용되는 특징 벡터

    • $E_ {LN}^{utt}=Concat { [\mathcal{E}_ {sbert} (Y_ {i}) - \mathcal{E}_ {sbert}(Y_ {j}) ]_ {i,j=1,i>j}^{N} } \in \mathbb{R}^{ {N(N-1)\over{2} } \times D_ {sbert} }$

    • 이 때, $D_ {sbert}$는 SBERT embedding size
    • $i,j$ 차이가 클 수록, worse noise가 생성됨
  • Token-level Noise Embedding
    • Token-level Noise Embedding은특정 단어나 음성 토큰에 대응되는 잡음이나 변형을 나타내는 임베딩 벡터
    • zero-padding ($Ø$)한 $Y_ {i}$를 일정한 길이로 잘라 $T$개의 token을 만듦
    • $Y_i^{ali}=[y_ {i_ {1}}^{ali},y_ {i_ {2}}^{ali},···,y_ {i_ {T}}^{ali}], \quad y_ {i_ {t}}^{ali}\in \mathcal{V} \cup Ø$
    • $E_ {edit}$을 통해 token-level difference를 측정
    • $E_ {LN}^{tok} = Concat { [ E_ {edit}(Y_ {i}^{ali}, Y_ {j}^{ali}) ]_ {i,j=1,i>j}^{N} } \in \mathbb{R}^{ {N(N-1)\over{2}} \times D_ {sbert} }$
    • $E_ {edit}(Y_i^{ali},Y_j^{ali})=\sum_ {t=1}^T[\mathcal{E}_ {sbert}(y_ {i_t}^{ali})-\mathcal{E}_ {sbert}(y_ {j_t}^{ali})]$
  • Audio Noise Distillation
    • Mutual Information을 활용하여 clean speech와 noisy speech의 분포가 얼마나 차이 나는지 살핌
    • $I(X;Z)=D_ {KL}(\mathbb{P}_ {XZ} \vert\vert\mathbb{P}_ {X} \mathbb{P}_ {Z})$
  • MINE (mutual information neural estimation)
    • MINE은 상호 정보(Mutual Information, MI)를 신경망을 통해 추정하는 방법론
    • 아래와 같은 MINE (mutual information neural estimation)을 활용하여 parameter $\theta \in \Theta$에 대해 계산
    • $\psi_ { \mathbf{\theta} }는 \mathcal{X} \times \mathcal{Z} \rightarrow \mathbb{R}$ statistics network
    • $I_ {\Theta}(X;Z) = \sup_ {\theta \in \Theta} \mathbb{E}_ {\mathbb{P}_ {XZ}}[ \psi_ { \mathbf{\theta} } ] - \log(\mathbb{E}_ {\mathbb{P}_ {X} \mathbb{P}_ {Z}}[e^{\psi_ { \mathbf{\theta} } } ])$

mine

  • 학습 알고리즘은 아래와 같음
  • 이 알고리즘은 잡음이 섞인 음성 데이터를 효과적으로 처리하여 깨끗한 음성 데이터를 얻기 위해 여러 모델과 네트워크를 조정하는 과정을 반복
  1. Require:
    • LLM $\mathcal{M}_ {\text{H2T}}$ 과 어댑터 $\mathcal{G}_ { \mathbf{\upsilon} }$
    • 정보 이론 기반의 MINE 통계 네트워크 $\psi$ (parameters: $\mathbf\theta$)
    • 언어 임베딩 조정 튜너 $\mathcal{T}$ (parameters: $\mathbf{\omega}$)
    • N-best 음성 인식 가설 $\mathcal{Y}_N$
    • 병렬 잡음 음성 $\mathcal{X}_ {n}$ 및 깨끗한 음성 데이터 $\mathcal{X}_ {c}$
    • 배치 크기 $B$ 와 총 반복 횟수 $M$
    • 하이퍼 파라미터 가중치 $\lambda$ (손실 함수 가중치) -
  2. For $m=1$ to $M$:
    • N-best 가설 샘플링: ${ \mathcal{Y}_ {N}^{(1)}, \mathcal{Y}_ {N}^{(2)}, \cdots, \mathcal{Y}_ {N}^{(B)} }$;
    • 잡음 및 깨끗한 음성 샘플 추출: ${(X_n^{(1)}, X_c^{(1)}), (X_n^{(2)}, X_c^{(2)}), \cdots, (X_n^{(B)}, X_c^{(B)})}$;
    • 언어 공간 잡음 임베딩 추출: ${E_ {\text{LN}}^{(1)}, E_ {\text{LN}}^{(2)}, \cdots, E_ {\text{LN}}^{(B)}}$;
    • 상호 정보 계산: $\mathcal{I} = \frac{1}{B} \sum_ {b=1}^{B} \psi_ {\mathbf{\theta}} (E_ {\text{LN}}^{(b)}, \mathcal{E}_ {\text{ASR}}(X_ {n}^{(b)})) - \log( \frac{1}{B} \sum_ {b=1}^{B} e^{\psi_ { \mathbf{\theta} }(E_ {\text{LN}}^{(b)}, \mathcal{E}_ {\text{ASR}}(X_ {c}^{(b)}))})$;
    • 파라미터 업데이트: $\mathbf{\theta} \leftarrow \mathbf{\theta} + {\mathbf{g}}_ {\mathbf{\theta}}$; (${\mathbf{g}}_ { \mathbf{\theta} } = \nabla_ { \mathbf{\theta} }(\mathcal{I})$)
    • GER 손실 함수 계산: $\mathcal{L}_ {\text{H2T}}$ (with $\mathcal{T}_ {\mathbf{\omega}} (E_ {\text{LN}}^{(b)})$);
    • 상호 정보 재계산: $\mathcal{I}_ {1} = \frac{1}{B}\sum_ {b=1}^{B} \psi_ {\mathbf{\theta}}(\mathcal{T}_ {\mathbf{\omega}}(E_ {\text{LN}}^{(b)}), \mathcal{E}_ {\text{ASR}}(X_ {n}^{(b)}))$;
    • 파라미터 업데이트: $\mathbf{\upsilon} \leftarrow \mathbf{\upsilon} - \mathbf{g_ {\upsilon}}, \mathbf{\omega} \leftarrow \mathbf{\omega} - \mathbf{g_ {\omega}}$; ($\mathbf{g_ {\upsilon,\omega}} = \nabla_ {\mathbf{\upsilon,\omega}}(\mathcal{L}_ {\text{H2T}} - \lambda \mathcal{I}_ {1})$ )

실험

  • 다양한 noise 환경의 audio에 대해 실험을 진행함
  • GER은 baseline에 비해 성능 진전이 있었지만 여러 잡음 조건에 대해 성능 향상 제한적
  • RobustGER은 여러 소음에 대한 일관된 성능 향상 (Table 1)
  • RobustGER은 소음 정도에 대해서도 일관된 성능 향상 (Table 2)
  • token-level noise가 성능 개선에 큰 기여 (Table 3)

    table1

    $\quad$ Table 1: WER (%) results of RobustGER with LLaMA-2-7b finetuning table2

    $\quad$ Table 2: WER (%) results of RobustGER on different SNR-level testing conditions table3

    $\quad$ Table 3: Ablation study of the language-space noise embedding in terms of utterance and token levels

  • noise embedding
    • KD 방식을 통해 최적의 noise embedding을 구함
    • 다음과 같이 잡음의 대표성이 잘 나타남

      embedding

  • 데이터 효율성
    • LLM fine-tuning을 활용하여 점진적으로 훈련 데이터 크기를 줄여도 WER 유지

      table4

      $\quad$ Table 4: Data efficiency of RobustGER on CHiME-4 test sets

  • error 수정 예시
    • 다음과 같이 RobustGER이 correction 성능이 가장 뛰어난 것을 볼 수 있음

      table5

      $\quad$ Table 5: Case study of RobustGER

결론

  • language-space noise embedding을 추출하여 이를 denoising 해주었을 때, word correction 성능이 향상되는 것을 볼 수 있었음
  • noise를 인식하고 noise embedding을 생성하는 복합적인 알고리즘을 활용하였음
  • speech 분야에서 fine-tuning LLM의 우수한 성능을 보여줌

저자

  • Yuchen Hu (yuchen005@e.ntu.edu.sg)
  • Chen Chen (hucky@nvidia.com)

참조

  • Github link (https://github.com/YUCHEN005/RobustGER)