AI Briefing

Wav2Vec2로 긴 오디오 파일 ASR 구현하기

Making automatic speech recognition work on large files with Wav2Vec2 in 🤗 Transformers

·2022.02.01 09:00

CTC 구조의 특성을 활용해 긴 오디오 파일에서도 메모리 문제 없이 고품질 음성 인식을 수행하는 방법을 설명한다.

Wav2Vec2와 같은 Transformer 기반 모델은 시퀀스 길이에 따른 메모리 복잡도가 $O(n^2)$로 증가하여, 매우 긴 오디오 파일을 처리할 때 메모리 부족(OOM) 오류가 발생할 수 있다.

단순히 오디오를 짧은 단위로 나누어 처리하는 Simple Chunking 방식은 청크의 경계 부분에서 문맥(Context)이 소실되어 인식 품질이 급격히 떨어지는 단점이 있다.

이를 해결하기 위해 Wav2Vec2의 CTC(Connectionist Temporal Classification) 구조를 활용한 Chunking with stride 방식을 사용할 수 있다.

  • **중첩된 청크(Overlapping chunks)**를 사용하여 모델이 충분한 문맥을 유지하도록 한다.
  • 청크의 경계 부분에서 생성된 로짓(logits)을 제외하고 중앙 부분만 연결함으로써, 전체 파일을 한 번에 처리한 것과 유사한 고품질 결과를 얻는다.

Hugging Face transformers 라이브러리의 pipeline에서 chunk_length_s 파라미터를 설정하는 것만으로 이 기능을 간편하게 적용할 수 있다.

이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.

요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.