안녕하세요 2023년 음성인식 중 가장 성능이 좋다고 알려진 일명 "whisper"라는 논문에 대해서 살펴보겠습니다. 현재 음성인식은 whisper를 base로 한 변형된 여러 모델들이 계속 나오고 있습니다! 변형된 모델을 살펴보기 전에 base가 되는 whisper모델은 어떤 모델인지 먼저 살펴보고 변형된 모델들에 대해서도 살펴보겠습니다!
음성인식이라는 것은 발화가 있는 오디오 데이터를 발화 그대로 text로 써주는 기술이죠! Speech to Text. 줄여서 STT라고 부릅니다. whisper는 광범위한 오디오 샘플에 대해 광범위하게 훈련된 다목적 음성 인식 모델입니다. 다국어 음성 인식, 음성 번역, 언어 식별등 여러 작업을 처리할 수 있는 멀티태스킹 모델입니다.
#1. whisper 소개
기존 데이터 학습 방식은 wav2vec을 이용한 비지도 학습 방식입니다. 사람의 labeling없이 대규모 데이터셋을 생성하여 많은 양의 데이터 학습을 진행시키므로 data labeling하는 부담은 줄였습니다. 하지만 이러한 학습방법은 사전 훈련된 오디오 인코더는 음성의 고품질 표현을 학습할 수 있지만, supervised 않는 특성으로 인해 고품질의 표현을 학습하기엔 제한이 있습니다. 이와 동등하게 디코더 품질이 좋지 못하면, 음성인식같은 Task에서는 복잡한 fine-tuning stage가 필요합니다. fine-tuning은 성능을 향상시킬 수 있지만, 다른 dataset에는 잘 일반화되지 않고 허위 패턴으로 이어질 수 있습니다. 따라서 특정 dataset에서 뛰어난 성능을 발휘하는 모델은 이러한 dataset특성으로 인해 다른 dataset에서는 여전히 기본적인 오류들이 나타날 수 있습니다.
supervised 되지 않은 사전 훈련은 오디오 인코더의 품질을 크게 향상시켰지만 이에 상응하는 사전 훈련된 디코더가 부족하고 dataset별 fine-tuning이 필요하다는 것은 주요한 약점입니다. 음성인식 시스템은 모든 배포에 대해 supervised fine-tuning이 필요없이 다양한 환경에서 안정적으로 작동해야합니다.
여러 dataset에 걸쳐 supervised방식으로 사전 훈련된 음성 인식 시스템은 더 높은 견고함과 더 나은 일반화를 나타냅니다.하지만, 사용 가능한 고품질 음성 인식 dataset는 크기가 제한되어 있습니다. 그래서 더 큰 dataset를 생성하는 것을 목표로 하고, weakly supervised 음성 인식을 사용하여 양과 품질을 절충하는 경우가 많습니다.
최근 컴퓨터 비전 분야의 최근 연구에 따르면 ImageNet과 같은 표준 크라우드소싱 dataset을 넘어서서 훨씬 더 크고, weakly supervised dataset을 사용하는 것이 모델의 견고성과 일반화가 크게 향상된다는 사실이 입증되었습니다. large-scale에 대한 편향을 가진 dataset을 학습시키고 다시 새로운 데이터를 학습시킬 때 높은 품질의 dataset의 몇배나 되고 이전 학습보다 적은 양의 학습을 하게 됩니다. 그래서 올바른 학습이 미미합니다. whisper연구진은 데이터 imbalanced문제를 좁히기 위해 weakly supervised하에서의 음성인식을 680,000시간의 레이블이 달린 오디오 데이터에 적용하여, 어떠한 데이터셋에 특정된 fine-tuning없이도 작동할 수 있게 됩니다. 이 접근 방식은 영어 뿐만 아니라 다국어 및 다작업 훈련에도 초점을 맞췄으며, 6개의 다른 언어를 포함한 117,000시간의 데이터와 번역 데이터 125,000시간을 활용합니다.
다국어 학습 진행 시 fine-tuning없이 zero-shot transfer benchmark수준의 결과를 얻을 수 있습니다. 그리고 사람에 근접한 정확성과 robustness를 가지는 모델이라고 소개하고 있습니다.
#2. Data Processing
whisper는 데이터를 기존의 전처리처럼 엄격하게 표준화하는 대신, 원시 텍스트인 transcripts의 예측을 학습함으로써, 발화된 단어와 그들의 전사된 형태 사이의 매핑을 학습합니다. 자연스러운 transcripts을 생성하기 위해 text정규화를 하지 않아 음성인식 프로세스가 간소화되었습니다. 해당 모델의 데이터는 인터넷에서 찾은 다양한 오디오와 transcript를 쌍으로 이루고 있으며, 다양한 환경, 설정, 화자, 언어로부터 다양한 오디오 샘플을 제공하고 있습니다. 이러한 오디오의 다양성은 모델이 더 견고해지는데 도움이 되지만, transcripts 품질의 다양성은 모델이 견고해지는데 도움이 되지는 않습니다. transcripts 품질이 일관되지 않거나 저품질인 경우 모델은 부정확하거나 혼동되는 결과를 내놓을 수 있습니다. 그래서 초기 검토에서는 raw dataset에서 상당량의 저품질 transcripts이 발견되었습니다. 이에 대응하여 transcripts 품질을 향상시키기 위해 여러 자동 필터링 방법들이 개발되었습니다.
인터넷에 있는 많은 transcripts 데이터는 실제로 사람이 생성한 것이 아니라 기존 ASR의 결과물이 많았고 인간과 기계가 생성한 데이터를 학습시킬 경우 학습 성능이 크게 저하시킨다는 연구 결과가 있었습니다. 따라서 훈련 dataset에서 이를 탐지하고 제거하기 위해 여러 heuristics가 개발되었고, 기존의 많은 ASR은 복잡한 구두점(. , ! ?)단략과 같은 서식 공백, 대문자등 오디오 vocab에 쓰기 어려운 경우가 정규화를 통한 제한된 집한의 문자언어만 사용했습니다.
많은 ASR시스템에서는 어느 정도의 텍스트 정규화가 진행되지만, 단순하거나 rule-based로 처리하는 경우가 많았습니다. whisper는 음성 언어 탐지기(Language detector)를 사용하여 발화된 언어가 transcripts 언어와 일치하는지 확인했습니다. 이 도구는 VoxLingua107 dataset에서 훈련된 모델을 사용하여 fine-tuning되었습니다. 언어 불일치가 감지되면 쌍은 훈련 예제로 포함되지 않습니다. 단, transcripts 언어가 영어인 경우 그 쌍은 음성 번역 훈련에 사용됩니다. 그리고 fuzzy de-duping을 사용해 transcripts을 한번 더 정제하게 됩니다. 이로인해 중복을 방지하고, 기계가 생성된 데이터를 제거하게 됩니다.
오디오파일을 30초 단위의 segment로 나누고 각 segment는 해당 시간 segment에 해당하는 transcripts 부분과 쌍을 이룹니다. 음성이 없는 segment까지 포함하여 모든 오디오에 대해 훈련하고 이러한 segment를 음성 활동 감지 훈련에 사용합니다. 초기 훈련 후에는 훈련데이터 소스의 오류율을 검토합니다. 높은 오류율과 데이터 데이터 크기를 고려하는 이 검토는 품질이 낮은 데이터를 식별하고 제거하는데 도움이 됩니다. 스크립트와 음성 정렬이 잘못되었거나 필터링에 걸리지 못한 이상 데이터들이 대량 발견되었고, 오염 방지를 위해 데이터 중복 제거하고 TED-LIUM3수준의 전처리를 진행했습니다.
모델은 인터넷에서 제공되는 680,000시간 분량의 오디오와 transcripts으로 구성된 광범위한 dataset기반으로 훈련되었습니다. 이 데이터 중 65%(또는 438,000시간)은 일치하는 영어 대본이 있는 오디오에 해당됩니다. dataset의 약 18%(또는 126,000시간)은 영어 대본이 포함된 비영어 오디오로 구성됩니다. 이 비영어 데이터는 98개 언어에 걸쳐 있습니다.
#3. Model
오디오 데이터 처리를 위해 2017년 Vaswani가 제안한 Transformer(Attention Is All You Need) encoder-decoder 아키텍쳐를 사용합니다. 모든 오디오는 16000hz로 resampling되고, 25millisecond의 window 크기와 10-milliseconde 간격으로, 80channel의 log-mel spectrogram이 계산됩니다. 그런 다음 정규화가 적용되어 입력을 -1 ~ 1사이의 범위로 standardization합니다. 그러면, 사전 훈련 dataset 전체에서 평균이 거의 0이됩니다.
인코더는 GELU활성화 함수를 활용하여 필터 너비가 3인 두 개의 Convolution Layer로 구성된 'stem'을 통해 입력을 처리합니다. 두 번째 Convolution Layer의 stride는 2이비다. 그런 다음 Sinusoidal Positional Encoding이 stem의 출력에 추가되고 인코더에 Transformer block이 적용됩니다. Transformer block은 활성화 전 residual block을 사용하고 최종 레이어 정규화가 인코더 출력에 적용됩니다.
이와 대조적으로 디코더는 학습된 Position embedding과 입력과 출력 토큰 표현을 공유하여 사용합니다. 인코더와 디코더는 폭과 사용된 transformer block의 수는 동일합니다.
# Multitask Format
분절된 audio가 어떤 단어가 발화되었는지 예측하는 것이 speech recognition분야에서 주로 다루는 핵심 문제이지만 이 문제만 있는 것은 아닙니다. 현재 speech recognition에서는 개선해야할 부분이 더 있습니다.
1. Voice Activity Detection(VAD) 음성활동탐지
2. Speaker Diarization 화자분할
3. Inverse Text Normalization(ITN) ex) 삼십일분 --> 31분
이러한 구성 요소는 종종 개별적으로 처리되므로 핵심 음성 인식 모델 주변의 시스템이 상대적으로 복잡해집니다. 이 복잡성을 줄이기 위해 하나의 모델이 핵심 인식 부분뿐만 아니라 전체 음성 처리 파이프라인을 수행할하도록 하려고 합니다. 여기서 중요한 고려사항은 모델의 인터페이스입니다. 동일한 입력 오디오 신호에서 수행할 수 있는 여러가지 Task가 있습니다.
1. Transcription 전사
2. Translation 번역
3. Voice Activity Detection(VAD) 음성 활동 탐지
4. Alignment 위치 조정
5. Language identification 언어 식별
이 경우 단일 모델에서 one to many매핑이 작동하려면 여러 형태의 Task specification이 필요합니다. 간단한 형식을 사용하여 모든 작업과 컨디셔닝 정보를 디코더에 대한 일련의 입력 토큰으로 지정합니다. 디코더는 오디오 조건부 언어 모델이기 때문에 모호한 오디오를 해결하기 위해 더 긴 범위의 텍스트 컨텍스트를 사용하는 방법을 배우기를 바라며 전사의 텍스트 기록을 조건으로 학습합니다. 특히 현재 오디오 세그먼트 앞에 있는 전사 텍스트를 디코더의 컨텍스트에 추가할 가능성이 있습니다.
예측의 시작을 ⟨|startoftranscript|⟩토큰으로 나타냅니다.
# Reference
Whisper — Robust Speech Recognition via Large-Scale Weak Supervision
Whisper is a versatile speech recognition model that has been extensively trained on a wide range of audio samples. It's a multitasking…
kargarisaac.medium.com
https://bnmy6581.tistory.com/134
[Whisper] Robust Speech Recognition via Large-Scale Weak Supervision- (2)
https://bnmy6581.tistory.com/133 --(1) [Whisper] Robust Speech Recognition via Large-Scale Weak Supervision - (1) bnmy6581.tistory.com https://arxiv.org/abs/2109.07740 Scaling Laws for Neural Machine Translation We present an empirical study of scaling pro
bnmy6581.tistory.com
https://openai.com/research/whisper
Introducing Whisper
We’ve trained and are open-sourcing a neural net called Whisper that approaches human level robustness and accuracy on English speech recognition.
openai.com
'Paper > Speech Recognition' 카테고리의 다른 글
[SR paper] Conformer: Convolution-augmented Transformer for Speech Recognition 파헤치기~! (0) | 2022.01.04 |
---|