Skip to main content
QUICK REVIEW

[논문 리뷰] Lhotse: a speech data representation library for the modern deep learning ecosystem

Piotr Żelasko, Daniel Povey|arXiv (Cornell University)|2021. 10. 25.
Speech Recognition and Synthesis참고 문헌 12인용 수 10
한 줄 요약

Lhotse는 오디오 분할, 감독 정보 및 컷을 위한 통합된 JSON 기반 매니페스트 형식과 Python 클래스를 도입함으로써 다양한 음성 코퍼스를 간편하게 처리할 수 있도록 돕는 현대적인 음성 데이터 표현 라이브러리입니다. Cut 및 CutSet 추상화를 통해 딥러닝을 위한 유연하고 끈기 있는 데이터 준비를 가능하게 하며, PyTorch의 데이터 API와 네이티브로 통합되어 실시간 특징 추출, 증강, 대규모 데이터셋에서의 분산 학습을 최소한의 메모리 오버헤드로 지원합니다.

ABSTRACT

Speech data is notoriously difficult to work with due to a variety of codecs, lengths of recordings, and meta-data formats. We present Lhotse, a speech data representation library that draws upon lessons learned from Kaldi speech recognition toolkit and brings its concepts into the modern deep learning ecosystem. Lhotse provides a common JSON description format with corresponding Python classes and data preparation recipes for over 30 popular speech corpora. Various datasets can be easily combined together and re-purposed for different tasks. The library handles multi-channel recordings, long recordings, local and cloud storage, lazy and on-the-fly operations amongst other features. We introduce Cut and CutSet concepts, which simplify common data wrangling tasks for audio and help incorporate acoustic context of speech utterances. Finally, we show how Lhotse leverages PyTorch data API abstractions and adopts them to handle speech data for deep learning.

연구 동기 및 목표

  • 딥러닝 연구를 방해하는 음성 데이터 포맷, 코덱, 메타데이터 스키마의 복잡성과 이질성을 해결하기 위해.
  • 비음성 기계학습 전문가들이 음성 데이터 처리를 위해 현대적이고 파이썬스럽고 직관적인 API를 쉽게 접근할 수 있도록 하기 위해.
  • ASR, TTS, 음성 활동 검출, 다이아라이제이션과 같은 다양한 음성 작업을 위한 민감하고 효율적이며 확장 가능한 데이터 파이프라인 구축을 가능하게 하기 위해.
  • Kaldi의 강력하지만 복잡한 데이터 관리 방식과 현대적 딥러닝 워크플로우 사이의 격차를 좁히기 위해 PyTorch의 데이터 API 추상화를 활용하기 위해.
  • 최소한의 메모리 사용으로도 실시간 및 사전 계산된 특징 추출을 지원하는 재사용 가능하고 오픈소스의 기초를 제공하기 위해.

제안 방법

  • 정확한 타이밍, 음향적 맥락, 관련 메타데이터를 갖춘 오디오 세그먼트를 표현하기 위해 Cut 및 CutSet 추상화를 도입하여 다양한 데이터 조합이 가능하도록 하였습니다.
  • 네 가지 핵심 매니페스트 유형(Recording, SupervisionSegment, Features, Cut)을 정의하였으며, 각각 I/O, 조작, 끈기 있는 평가를 위한 메서드를 갖춘 Python 클래스로 매핑하였습니다.
  • 로컬, 원격, 클라우드 스토리지(S3 등)에서의 통합된 데이터 로딩을 지원하며, FLAC, OPUS, PCM 등의 다양한 오디오 코덱을 단일 API인 Recording.load_audio()를 통해 처리할 수 있도록 하였습니다.
  • PyTorch의 Dataset, Sampler, DataLoader 추상화를 활용하였으며, 다양한 학습 요구사항을 충족하기 위해 SingleCutSampler, CutPairsSampler, BucketingSampler, ZipSampler 등의 커스터마이징된 구현을 제공하였습니다.
  • 필요한 오디오 세그먼트만 요청 시에만 읽는 방식으로 혼합, 잘라내기, 팞딩, 증강 등의 끈기 있는 데이터 연산을 통해 메모리 소비를 최소화하였습니다.
  • 30개 이상의 주요 음성 코퍼스에 대한 즉시 사용 가능한 데이터 준비 레시피를 제공하며, Kaldi 데이터 디렉터리 간의 임포트/익스포트도 지원합니다.

실험 결과

연구 질문

  • RQ1다양한 원천에서 온 음성 데이터(다양한 코덱, 길이, 메타데이터 형식)를 딥러닝을 위한 단일, 관리 가능한 표현으로 통합할 수 있는 방법은 무엇인가요?
  • RQ2대규모 음성 데이터셋에서 과도한 메모리 사용 없이도 효율적이고 확장 가능하며 민감한 데이터 파이프라인 구축을 가능하게 하는 추상화는 무엇인가요?
  • RQ3PyTorch와 같은 현대적 딥러닝 프레임워크가 음성 전용 데이터 처리 요구사항(예: 맥락 인식 샘플링, 동적 배치 처리)과 원활하게 통합될 수 있는 방법은 무엇인가요?
  • RQ4라이브러리가 기존 도구(Kaldi 등)와의 호환성을 유지하면서도 고급 학습 기법을 지원하면서도 데이터 준비의 복잡성을 얼마나 줄일 수 있을까요?
  • RQ5모듈식이고 오픈소스이며 커뮤니티가 확장 가능한 프레임워크가 음성 AI 분야의 전문가가 아닌 사용자들이 접근하는 데에 상당한 장벽을 낮출 수 있을까요?

주요 결과

  • Lhotse는 통합 매니페스트 기반 표현을 통해 고립된 발화, 장시간 기록, 다중 채널 오디오를 포함한 다양한 음성 데이터를 원활하게 처리할 수 있도록 하였습니다.
  • Cut 및 CutSet 추상화를 통해 배경 잡음이나 발화 간 의존성과 같은 음향적 맥락을 갖춘 훈련 예제를 하드코딩하지 않고도 민감하게 구성할 수 있습니다.
  • 오디오 및 메타데이터 연산의 끈기 있는 평가 방식으로 메모리 사용을 줄였으며, 수천 시간에 이르는 매우 큰 데이터셋에서도 최소한의 오버헤드로 효율적인 학습이 가능합니다.
  • 라이브러리는 실시간 및 사전 계산된 특징 추출을 네이티브로 지원하며, 효율적인 저장 및 검색을 위한 lilcom 압축 엔진도 통합하고 있습니다.
  • Lhotse의 샘플러와 데이터셋은 PyTorch의 표준 데이터 파이프라인(분산 학습, 버킷 기반 동적 배치 처리 포함)과 완전히 호환됩니다.
  • 연구자들이 설정 시간과 복잡성을 크게 줄일 수 있도록 30개 이상의 주요 음성 코퍼스에 대한 즉시 사용 가능한 데이터 준비 레시피를 제공합니다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.