SpeechBrain : Open-Source Conversational AI for Everyone

Kayy·2024년 5월 6일

SpeechBrain

목록 보기
1/2

연구할 때 많은 도움을 받은 SpeechBrain이 많은 발전을 이뤘다.
복습을 하면서 시리즈로 사용법을 한번 정리하려 한다.

오늘은 Github과 홈페이지의 내용을 정리하면서 SpeechBrain을 소개한다.

앞으로 설치법 부터 튜토리얼, 커스텀 데이터에 적용 등 여러가지를 다룰 예정입니다.

SpechBrain


🗣️💬 What SpeechBrain Offers

  • SpeechBrain은 Conversational AI (음성인식 비서, 챗봇, LLM에 들어가는 기술 들) 개발을 빠르게 해 줄 수 있는 PyTorch 기반의 오픈소스 툴킷이다.
  • 음성과 자연어 처리의 고급 기술들을 빠르고 쉽게 적용 가능하다.

🌐 Vision

  • 딥러닝의 급격한 발전으로 음성처리와 자연어처리가 아주 가까워졌다. 잘 설계된 신경망과 큰 데이터셋이 필요하다.
  • 우리는 뇌를 모방하여 복잡한 Conversational AI 시스템에 사용되는 다양한 기술들을 함께 지원하는 종합적인 툴킷이 필요한 시기라고 생각한다.
  • 음성 인식, 화자 인식, 음성 강화, 음성 분리, 언어 모델링, 대화 그 이상을 포함합니다.

📚 Training Recipes

  • 우리는 40개가 넘는 데이터셋과 20개의 음성, 자연어 작업을 지원하는 200개 이상의 레시피를 제공한다.
  • 우리는 처음부터 학습하는 것과 pre-trained model(Whisper, Wav2Vec2, WavLM, Hubert, GPT2, Llama2)에 fine-tuning하는것 모두 지원한다. 허깅페이스의 모델들이 쉽게 연결되고 파인튜닝 될 수 있다.
  • 어느 작업이든 동일한 명령어로 수행 가능하다.
    python train.py hparams/train.yaml
  • 학습은 python script가 조정하는 동안 hyperparameter들은 YAML 파일에 캡슐화되어있다.
  • 여러 다른 task에 대해 동일한 코드 구조를 유지한다.
  • 더 좋은 재현성을 위해 학습 로그와 checkpoint를 Dropbox에 공개한다.

Huggingface Pretrained Models and Inference

  • 100개 이상의 사전학습된 모델이 HuggingFace에 공개되어 있다.

  • 각 모델은 유저 친화적인 인터페이스로 사용할 수 있다. 예를 들면 사전학습된 모델로 음성을 전사하는 것은 3줄으로 가능하다.

    from speechbrain.pretrained import EncoderDecoderASR
    
    asr_model = EncoderDecoderASR.from_hparams(source="speechbrain/asr-conformer-transformerlm-librispeech", savedir="pretrained_models/asr-transformer-transformerlm-librispeech")
    asr_model.transcribe_file("speechbrain/asr-conformer-transformerlm-librispeech/example.wav")

Documentation

  • 우리는 포용성과 교육을 위해 헌신하고 있다.
  • 우리는 Google Colab에서 사용 가능한 30개의 tutorial을 제공하여 SpeechBrain의 동작에 대해 설명하는 것 뿐만 아니라 사용자가 Conversational AI와 친숙해질 수 있도록 한다.
  • 모든 class와 function은 명확한 설명과 돌려볼 수 있는 예시를 제공한다.

Use Case

  • 연구 가속화 : 학문적인 또는 산업적인 연구를 가속화한다. 새로운 모델을 빠르게 개발하고 통합할 수 있고 베이스라인과 성능을 비교 할 수 있다.
  • 빠른 프로토타이핑 : 시급한 프로젝트의 빠른 프로토타이핑에 적합하다.
  • 교육용 도구 : SpeechBrain의 단순함은 교육 자료로 가치가 있다. Mila, Concordia University, Avignon University 등에서 실제로 사용되고 있다.

Quick Start

별도 포스팅 예정입니다.

Supported Technologies

  • SpeechBrain은 Conversational AI 분야에서 다양한 범위의 기술을 구현하기 위해 설계된 유능한 프레임워크이다.
  • 단순히 개별적인 task 구현 뿐만 아니라 복잡한 파이프라인의 다른 기술들을 합치는 것도 지원한다.

Speech/Audio Processing

TasksDatasetsTechnologies/Models
Speech RecognitionAISHELL-1, CommonVoice, DVoice, KsponSpeech, LibriSpeech, MEDIA, RescueSpeech, Switchboard, TIMIT, Tedlium2, VoicebankCTC, Tranducers, Transformers, Seq2Seq, Beamsearch techniques for CTC,seq2seq,transducers), Rescoring, Conformer, Branchformer, Hyperconformer, Kaldi2-FST
Speaker RecognitionVoxCelebECAPA-TDNN, ResNET, Xvectors, PLDA, Score Normalization
Speech SeparationWSJ0Mix, LibriMix, WHAM!, WHAMR!, Aishell1Mix, BinauralWSJ0MixSepFormer, RESepFormer, SkiM, DualPath RNN, ConvTasNET
Speech EnhancementDNS, VoicebankSepFormer, MetricGAN, MetricGAN-U, SEGAN, spectral masking, time masking
Text-to-SpeechLJSpeech, LibriTTSTacotron2, Zero-Shot Multi-Speaker Tacotron2, FastSpeech2
VocodingLJSpeech, LibriTTSHiFiGAN, DiffWave
Spoken Language UnderstandingMEDIA, SLURP, Fluent Speech Commands, Timers-and-SuchDirect SLU, Decoupled SLU, Multistage SLU
Speech-to-Speech TranslationCVSSDiscrete Hubert, HiFiGAN, wav2vec2
Speech TranslationFisher CallHome (Spanish), IWSLT22(lowresource)wav2vec2
Emotion ClassificationIEMOCAP, ZaionEmotionDatasetECAPA-TDNN, wav2vec2, Emotion Diarization
Language IdentificationVoxLingua107, CommonLanguageECAPA-TDNN
Voice Activity DetectionLibriPartyCRDNN
Sound ClassificationESC50, UrbanSoundCNN14, ECAPA-TDNN
Self-Supervised LearningCommonVoice, LibriSpeechwav2vec2
InterpretabiliyESC50Learning-to-Interpret (L2I), Non-Negative Matrix Factorization (NMF), PIQ
Speech GenerationAudioMNISTDiffusion, Latent Diffusion
Metric LearningREAL-M, VoicebankBlind SNR-Estimation, PESQ Learning
AllignmentTIMITCTC, Viterbi, Forward Forward
DiarizationAMIECAPA-TDNN, X-vectors, Spectral Clustering

Text Processing

TasksDatasetsTechnologies/Models
Language ModelingCommonVoice, LibriSpeechn-grams, RNNLM, TransformerLM
Response GenerationMultiWOZGPT2, Llama2
Grapheme-to-PhonemeLibriSpeechRNN, Transformer, Curriculum Learning, Homograph loss

Additional Features

SpeechBrain은 Conversational AI 기술 개발을 도와주기 위한 여러 기초 기능을 포함합니다.

  • 트레인 조정 : Braion class가 완전히 커스텀 가능한 툴로서 동작하여 데이터를 통한 학습과 평과 루프를 관리한다. 트레인 루프를 간소화하면서 과정의 어느 부분이든 재정의할 수 있는 유연성을 제공한다.
  • hyperparameter 관리 : YAML 기반의 hyperparameter 파일은 모든 hyperparameter를 정의한다. 이 방식이 트레인 스크립트를 단순화한다.
  • 동적 데이터로더 : 유연하고 효율적인 데이터 로딩이 가능하다.
  • GPU 학습 : 단일 및 다중 GPU 학습, 분산 학습을 지원한다.
  • 동적 배치 : 실시간 동적 배치는 가변적인 신호 길이의 효율적인 처리를 가능하게 한다.
  • 혼합 정밀도 훈련 : 혼합 정밀도 기법을 이용하여 학습 속도를 높인다.
  • 효율적인 데이터 읽기 : WebDataset을 이영하여 공유된 NFS에서 큰 데이터셋을 효율적으로 읽을 수 있다.
  • Huggingface 통합 : 인터페이스를 이용해 Huggingface의 인기있는 모델들과 통합할 수 있다.
  • Orion 통합 : hyperparameter tuning을 위한 Orion과의 통합 인터페이스 지원.
  • Speech Augmentation Techniques : SpecAugment, Noise, Reverberation 등 지원
  • Data Preparation Scripts : 지원하는 데이터에 대한 데이터 준비 스크립트 제공.

License

  • Apache License, version 2.0
  • 개인적, 상업적으로 거의 자유롭게 사용 가능

출처

@misc{speechbrain,
title={{SpeechBrain}: A General-Purpose Speech Toolkit},
author={Mirco Ravanelli and Titouan Parcollet and Peter Plantinga and Aku Rouhe and Samuele Cornell and Loren Lugosch and Cem Subakan and Nauman Dawalatabad and Abdelwahab Heba and Jianyuan Zhong and Ju-Chieh Chou and Sung-Lin Yeh and Szu-Wei Fu and Chien-Feng Liao and Elena Rastorgueva and François Grondin and William Aris and Hwidong Na and Yan Gao and Renato De Mori and Yoshua Bengio},
year={2021},
eprint={2106.04624},
archivePrefix={arXiv},
primaryClass={eess.AS},
note={arXiv:2106.04624}
}
SpeechBrain Hompage
Github

0개의 댓글