speech audio

hubert-base-korean

Model Details

Hubert(Hidden-Unit BERT)는 Facebook에서 제안한 Speech Representation Learning 모델입니다. Hubert는 기존의 음성 인식 모델과 달리, 음성 신호를 raw waveform에서 바로 학습하는 self-supervised learning 방식을 사용합니다.

이 연구는 구글의 TPU Research Cloud(TRC)를 통해 지원받은 Cloud TPU로 학습되었습니다.

Model Description

<table> <tr> <td colspan="2"></td> <td>Base</td> <td>Large</td> </tr> <tr> <td rowspan="3">CNN Encoder</td> <td>strides</td> <td colspan="2">5, 2, 2, 2, 2, 2, 2</td> </tr> <tr> <td>kernel width</td> <td colspan="2">10, 3, 3, 3, 3, 2, 2</td> </tr> <tr> <td>channel</td> <td colspan="2">512</td> </tr> <tr> <td rowspan="4">Transformer Encoder</td> <td>Layer</td> <td>12</td> <td>24</td> </tr> <tr> <td>embedding dim</td> <td>768</td> <td>1024</td> </tr> <tr> <td>inner FFN dim</td> <td>3072</td> <td>4096</td> </tr> <tr> <td>attention heads</td> <td>8</td> <td>16</td> </tr> <tr> <td>Projection</td> <td>dim</td> <td>256</td> <td>768</td> </tr> <tr> <td colspan="2">Params</td> <td>95M</td> <td>317M </td> </tr> </table>

How to Get Started with the Model

Pytorch

import torch
from transformers import HubertModel

model = HubertModel.from_pretrained("team-lucid/hubert-base-korean")

wav = torch.ones(1, 16000)
outputs = model(wav)
print(f"Input:   {wav.shape}")  # [1, 16000]
print(f"Output:  {outputs.last_hidden_state.shape}")  # [1, 49, 768]

JAX/Flax

import jax.numpy as jnp
from transformers import FlaxAutoModel

model = FlaxAutoModel.from_pretrained("team-lucid/hubert-base-korean", trust_remote_code=True)

wav = jnp.ones((1, 16000))
outputs = model(wav)
print(f"Input:   {wav.shape}")  # [1, 16000]
print(f"Output:  {outputs.last_hidden_state.shape}")  # [1, 49, 768]

Training Details

Training Data

해당 모델은 과학기술정보통신부의 재원으로 한국지능정보사회진흥원의 지원을 받아 구축된 자유대화 음성(일반남여), 다화자 음성합성 데이터, 방송 콘텐츠 대화체 음성인식 데이터 에서 약 4,000시간을 추출해 학습되었습니다.

Training Procedure

원 논문과 동일하게 MFCC 기반으로 Base 모델을 학습한 다음, 500 cluster로 k-means를 수행해 다시 Base와 Large 모델을 학습했습니다.

Training Hyperparameters

Hyperparameter Base Large
Warmup Steps 32,000 32,000
Learning Rates 5e-4 1.5e-3
Batch Size 128 128
Weight Decay 0.01 0.01
Max Steps 400,000 400,000
Learning Rate Decay 0.1 0.1
\(Adam\beta_1\) 0.9 0.9
\(Adam\beta_2\) 0.99 0.99