YAML Metadata
Warning:
empty or missing yaml metadata in repo card
(https://huggingface.co/docs/hub/model-cards#model-card-metadata)
license: cc-by-nc-4.0 tags:
- mms
- vits pipeline_tag: text-to-speech
Model Details
facebook/mms-tts-kor ๋ฅผ ๋ฒ ์ด์ค๋ชจ๋ธ๋ก ํ์ฉํ์ต๋๋ค.
How to Get Started with the Model
Pytorch
import torch
import soundfile as sf
from transformers import VitsModel, AutoTokenizer
import sys
sys.path.append('/home/user/AZ/tts_emotion')
from train import EmotionalVitsModel # train.py์์ ๋ชจ๋ธ import
def inference_emotional_tts(checkpoint_path, text="์๋
ํ์ธ์", emotion=0, output_path="output.wav"):
# ๋ชจ๋ธ ์ด๊ธฐํ
model = EmotionalVitsModel()
checkpoint = torch.load(checkpoint_path)
model.load_state_dict(checkpoint['model_state_dict'])
model.cuda()
model.eval()
# ํ ํฌ๋์ด์
tokenizer = AutoTokenizer.from_pretrained("facebook/mms-tts-kor")
text_tokens = tokenizer(text, return_tensors="pt")
# ์ถ๋ก
with torch.no_grad():
output = model(
input_ids=text_tokens['input_ids'].cuda(),
attention_mask=text_tokens['attention_mask'].cuda(),
emotion=torch.tensor([emotion]).cuda()
)
# waveform์ CPU๋ก ์ด๋ํ๊ณ numpy๋ก ๋ณํ
audio = output.waveform.cpu().numpy()[0, 0]
# wav ํ์ผ๋ก ์ ์ฅ (์ํ๋ ์ดํธ๋ VITS ๋ชจ๋ธ์ ๊ธฐ๋ณธ๊ฐ์ธ 22050Hz ์ฌ์ฉ)
sf.write(output_path, audio, 22050)
return output_path
inference_emotional_tts('', #์ฒดํฌํฌ์ธํธ ๊ฒฝ๋ก
text="์๋
ํ์ธ์ ์ ๋, ์ฐจ๋น์ค์
๋๋ค.",
emotion=2, # 0: neutral, 1: happy, 2: sad
output_path="IamChavis.wav")
Training Details
Training Data
ํด๋น ๋ชจ๋ธ์ AI hub์ ๊ฐ์ ์์ฑ ํฉ์ฑ ๋ฐ์ดํฐ์ (https://www.aihub.or.kr/aihubdata/data/view.do?currMenu=120&topMenu=100&aihubDataSe=extrldata&dataSetSn=286) ์ค ์ค๋ฆฝ/๊ธ์ /๋ถ์ ๋ฐ์ดํฐ์ ๊ฐ 1000๊ฐ, ์ด 3000๊ฐ๋ฅผ ํ์ฉํด ํ์ต์ ์งํํ์ต๋๋ค.
Training Procedure
๊ธฐ์กด์ ํ๊ตญ์ด๋ก ์ฌ์ ํ์ต๋ ํ๋ผ๋ฏธํฐ๋ ๊ณ ์ ํ ์ฑ ๊ฐ์ ๋ ์ด์ด๋ง ์ ๋ฐ์ดํธ ํ์ฌ ๊ธฐ์กด ํ๊ตญ์ด ๋ฅ๋ ฅ์ ์ ์งํ ์ฑ ๊ฐ์ ํํ ๋ฅ๋ ฅ๋ง์ ๊ฐ์ ํ์ต๋๋ค.
Training Hyperparameters
Hyperparameter | Base |
---|---|
Learning Rates | 1e-4 |
Batch Size | 128 |
padding | segment_length(68608)์ ๋ง์ถฐ ์ค๋์ค ๊ธธ์ด ์กฐ์ (๊ธธ๋ฉด ์ค์ ๋ถ๋ถ ์ถ์ถ, ์งง์ผ๋ฉด 0ํจ๋ฉ) |
Optimizer | AdamW |
Epoch | 30 |