본문 바로가기
기술 이야기/논문 리뷰

[논문 리뷰] Scaling Speech Technology to 1,000+ Languages

by 넌 꿈이 뭐야? 2023. 5. 24.

안녕하세요, 오늘은 따끈하게 나온 Meta의 논문 - Scaling Speech Technology to 1,000+ Languages를 리뷰해볼까 합니다.

프로젝트 이름은 Massively Multilingual Speech (MMS)라고 합니다. 이걸 모델 이름으로 불러도 될지...

아무튼 1,100개 이상의 언어에 대해 음성 전사(Speech-to-text (STT), Transcription)와 음성 생성(Text-to-speech), 그리고 언어 파파악(Identification)을 수행할 수 있는 엄청난 모델을 개발했다고 합니다.

(참고로 제가 이 분야에 대해 자세하게는 몰라 블로그의 내용을 위주로 다뤘습니다)

 

참고 자료: Paper, Blog, Github

MMS 모델이 커버하는 언어의 지도. MMS는 STT, TTS로는 1,107개 언어, Language Identification으로는 4,000개가 넘는 언어를 지원한다

Introduction

이 세상에는 7,000개가 넘는 언어가 있음에도 여태 연구개발된 음성 모델은 많아봐야 고작 100개 정도의 언어를 커버할 수 있었습니다. 너무 안타깝지 않나요? 수많은 비주류 언어들이 다뤄지지 못하고 사라질 위기에 직면해있습니다. 그래서 이번 연구에서는 정말 많은 언어를 이해할 수 있는 모델을 만들고자 했습니다.

 

결론적으로 MMS 모델은 무려 4,017가지의 언어를 이해하도록 학습되었습니다.

  • Languages: 총 4,017가지
    • Labeled 데이터셋: 1,107가지 언어 (성경 낭독 데이터)
    • Unlabeled 데이터셋: 3,809가지 언어
  • Base model: wav2vec 2.0

wave2vec 2.0 Pipeline


Approach

그럼 이 논문에서는 어떤 방법을 채택했을까요?

Collecting Dataset

데이터셋이 가장 중요하기 때문에 Approach는 데이터셋 내용이 위주가 됩니다.

위에서 언급했듯이 정말 소수가 사용하는 언어에 대해서는 번역하기도, 자료를 구하는 것도 어렵습니다.

그래서 성경을 선택했는데요, 약 1,100가지의 각 언어를 사용하는 여러 사람들이 녹음을 하며 데이터셋을 구축했습니다. 그렇게 해서 언어당 평균 32시간 분량의 음원을 구할 수 있었습니다. (언어가 1100 * 32 = 약 35000시간)
그리고 두가지 우려했던 내용과 그 결과를 정리하면

  • 남자 목소리가 많지만 막상 학습해보니 여자 목소리도 잘 이해했음
  • 성경을 주로 학습해서 그쪽으로 bias가 심하게 되지 않을까 걱정했지만 기우였음
    • 이것은 CTC(Connectionist Temporal Classification)를 사용했기 때문에 LLM이나 Seq2Seq에 비해 더 제약이 많아서 해결할 수 있었다고 추정하는데, 그 원리는 아직 모르겠습니다. (혹시 아는 분이 계신다면 댓글로 알려주시면 감사하겠습니다)
      참고: CTC 설명

Preprocessing

음성은 전처리가 매우 중요합니다. 왜냐하면 텍스트와 음성 신호의 align이 정확히 이루어지기 어렵기 때문입니다. 그래서

  1. Preprocess: 음원은 16kHz 샘플링 / 텍스트는 NFKC Normalization (NFKC 참고 자료)
  2. Forced alignment: Scalable Alignment Algorithm을 통해 긴 길이의 오디오와 텍스트를 align
  3. Initial alignment: 127가지 언어 데이터로 Initial Alignment Model 학습 → 학습된 모델로 align 수행
  4. Improved alignment: 위의 과정으로 align된 데이터로 두번째 모델을 학습 → 이번엔 1,130개 언어를 커버
  5. Final data filtering: Cross validation 과정을 통해 퀄리티 낮은 데이터를 제거. 각 언어에 대해 절반의 데이터는 단일 언어 ASR을 학습하는데, 나머지 절반은 transcribe를 수행합니다.
  6. Partitioning: 이제 전처리는 다 끝났고 모든 데이터를 모아 학습 / 검증 / 테스트로 나눔

학습된 모델과 알고리즘은 PyTorch (TorchAudio)를 통해 공개했다고 합니다.

Data Alignment 과정


Results

모델 평가는 CMU Wilderness, ASR-2K, FLEURS와 같은 데이터셋을 통해 진행했습니다. 결과는 어떨까요?

Whisper와의 비교 - 54개 언어에 대해 WER 계산
Google USM과의 CER 비교

논문에는 좀 더 자세한 내용과 고찰들이 있습니다. 하지만 제가 음성 분야는 자세하게 몰라 아마 관심 있으신 분들은 직접 읽어보시면 훨씬 좋을 것 같습니다.

아래는 몇십가지 언어에 대한 성능 테이블입니다. 보시면 Whisper 대비 성능이 올라간 언어도, 낮아진 언어도 있습니다. 각 언어의 특징을 이해하고 Whisper와 MMS가 어떤 점이 다르게 학습됐는지 파악하신다면 재미있을 것 같습니다.


Conclusions

그래서 이 연구는 우리에게 어떤 의의를 남겼을까요? 저자들의 의견과 제 개인적인 생각을 나열해보면,

  • 처음으로 1,000가지 이상의 언어 음성을 학습한 모델이다
  • Self-supervised Learning 덕이 정말 컸다 (wave2vec 2.0)
  • 더 많은 언어와, 각 언어의 방언(사투리)까지 다루고 싶다
    • 세상에는 7,000가지 이상의 언어가 있는데 우리는 아직 멀었다
    • 사투리도 할 줄 알아야 진정한 언어 모델이 아닐까
  • 아직 할 게 많이 남았다 - 번역, 키워드 찾기, 의도 파악 등이 있을 수 있다
  • 아무래도 많은 언어를 다루다보니 Whisper보다 영어나 한국어 성능이 저조함을 알 수 있다
    • 소중한 우리 한국말...
반응형

댓글