Style-Bert-VITS2ã®äœ¿ãæ¹ã¡ã¢
ã¯ããã«
ä»åã¯ãå®å
šã«èªåçšã«Style-Bert-VITS2(SBV2)ã§ã®TTSã«é¢ããŠèšèŒããŸãã
ã€ã³ã¹ããŒã«æ¹æ³ãäœ¿ãæ¹ãªã©ãèšèŒã§ããã°ãšæã£ãŠããŸãã
ïŒééã£ãŠããå Žæãããã°ããææããã ããŸããšå¹žãã§ãïŒ
èªåçšã§ã¯ãããŸãããæ°ããåŠã¶æ¹ã®æå©ãã«ãªãã°ãšæãã詳现ã«èšèŒããŸããã
ãŸããå
¬åŒã®ããã¥ã¡ã³ããšããŠã¯äžèšã®èšäºãæäŸãããŠããŸãã
éåžžã«åèã«ãªãã®ã§ãç§ã®èšäºãèªãããã¯ããŸãã¯ãã¡ãããèªãããšããå§ãããŸãã
ãŸãããããããšãå¢ããã«ã€ããŠæŽæ°ããŠããããšæããŸãã
ïŒè¿œèšïŒ
2024幎6æ24æ¥ïŒãŠãŒã¶èŸæžã«é¢ããŠæŽæ°
2024幎6æ26æ¥ïŒpythonã®ããŒãžã§ã³æå®ã«ã€ããŠæŽæ°
ïŒ
Style-Bert-VITS2ãšã¯
Style-Bert-VITS2(SBV2)ãšã¯Text to Speech(TTS)ãšåŒã°ãããããã¹ãã®æåããé³å£°æ³¢åœ¢ãçæããã¢ãã«ã§ãã
éåžžã«é«æ§èœãªã¢ãã«ã§ãéçºè æ§ããã¢ãçšæããŠãã ãã£ãŠããã®ã§ããã²ã詊ããã ããã
ã€ã³ã¹ããŒã«æ¹æ³
äžèšã®ãªããžããªãã¯ããŒã³ããŠãã ãããå³äžã®ãcodeããšããç·ã®ãã¿ã³ããããŠã³ããŒãããŠãè¯ãã§ãããäžèšã³ãã³ãã§cloneããŠãè¯ãã§ã
git clone https://github.com/litagin02/Style-Bert-VITS2.git
ç°å¢æ§ç¯
倧åæãšããŠãpythonã®ããŒãžã§ã³ã¯3.10ãããã¯3.11ãæ³å®ããŸãã
pythonã®ããŒãžã§ã³æå®
pythonã®ããŒãžã§ã³ã¯pyenvã§æå®ããŸãã
pyenvèªäœã®å°å
¥ã«ã€ããŠã¯äžèšãã芧ãã ããã
pyenvãå°å ¥ã§ããŠããã°ãäžèšã®ã³ãã³ãã§pythonã®ããŒãžã§ã³ãæå®ã§ããŸãã
pyenv install 3.10.14ã#ãããã¯3.11.9ãªã©
pyenv local 3.10.14ã#ãããã¯pyenv global 3.10.14
ããã§pythonã®ããŒãžã§ã³ãæå®ã§ããŸãã
pyenv globalã¯ã·ã¹ãã å
šäœã«ããã®ããŒãžã§ã³ãåæ ããããæã«å©çšããŠãã ããã
pyenv localã¯çŸåšã®ã«ã¬ã³ããã£ã¬ã¯ããªã§ã®ã¿ããã®ããŒãžã§ã³ãåæ ããããå Žåã«å©çšããŸãã
äžèšã³ãã³ããå®è¡ããŠãpythonã®ããŒãžã§ã³ã倿ŽãããŠãããã確èªããŠãã ããã
python -V
# Python 3.10.14
å¿ èŠãªããã±ãŒãžã®ã€ã³ã¹ããŒã«
ç¶ããŠãå¿
èŠãªããã±ãŒãžãã€ã³ã¹ããŒã«ããããã«ä»®æ³ç°å¢ãæ§ç¯ããŸã
venvã§ä»®æ³ç°å¢ãæ§ç¯ããŸãã
venvã¯pythonå
¬åŒã®ä»®è£
ç°å¢ã®ãããpythonãå©çšå¯èœã§ããã°å°å
¥ã®å¿
èŠãªãå©çšã§ããŸãã
cd Style-Bert-VITS2-master
python -m venv env
source env/bin/activate
pip install -r requirements.txt
python initialize.py
æåŸã®ã¹ã¯ãªãããå®è¡ããããšã§ãåçš®éã¿æ å ±ãååŸã§ããŸãã
äºåæºå
䜿ãããã¢ãã«ãããŠã³ããŒãããŠãäžèšã®ããã«ããã©ã«ãã«æ ŒçŽããŠãã ããã
workspace/
â model_assets/
| â {model_name}
| â xxxx.safetensors
| â config.json
| â style_vectors.npy
â main.py
{model_name}ã¯é³å£°ã¢ãã«ã®ååã§ãã
é³å£°ã¢ãã«ã¯ãäŸãã°Boothãªã©ããååŸããããšãã§ããŸããã
ãStyle-Bert-VITS2ããªã©ã§æ€çŽ¢ããŠã¿ãŠãã ããã
ãŸããdefaultã®ã¢ãã«ãšããŠããã¿ãããããã®ã¢ãã«ãçšæãããŠããŸãã
ãã¿ããããã¯ãäžèšã®ãµã€ãã§ããŸããŸãªå£°çŽ æãæäŸããŠãã ãã£ãŠããããã®é³å£°çŽ æãå©çšããŠãSBV2ã®éçºè
æ§ãåŠç¿ããã¢ãã«ãæäŸãããŠããŸãã
ïŒã¢ãã«ã®éã¿èªäœã¯python initialize.pyã宿œããéã«ãSBV2ã®ãªããžããªã®model_assetsãã©ã«ãã«amitaroãšããŠä¿åãããŸãã®ã§ããã®ãŸãŸãå©çšããã ããŸããïŒ
SBV2ã®äœ¿ãæ¹
WebUIã§ã®äœ¿ãæ¹
WebUIã§å©çšããå Žåã¯ãäžèšã®ã¹ã¯ãªãããå®è¡ããŠãã ããã
python app.py

ãããšãã©ãŠã¶äžã§ãäžèšã®ãããªç»é¢ã衚瀺ãããŸãïŒå°ãäžã«ã¹ã¯ããŒã«ããã衚瀺ãããŸãïŒã
äžèšã®æé ã§åŠçã宿œããŠãã ããã
- ãã¢ãã«äžèЧãããã¢ãã«ãéžæããŠãã ããã
-
model_assetsã«ä¿åãããŠããã¢ãã«ããéžæã§ããŸãã - ãã¢ãã«ãã¡ã€ã«ããè€æ°ããå Žåã¯ããã¡ããéžæã§ããŸã
- ã¢ãã«ããªãå Žåã¯ãå³ã®ãæŽæ°ããã¿ã³ãæŒããŠã¿ãŠãã ããã
-
- ãããã¹ãããå
¥åããŠãã ããã
- ããã«å ¥åãããããã¹ããåæé³å£°ã§èªã¿äžããŸãã
- åŸè¿°ãããæ¹è¡ã§åããŠçæããæå¹ã«ããããšããªã¹ã¹ã¡ãããããäžæããšã«æ¹è¡ããŠå ¥åããããšããªã¹ã¹ã¡ããŸãã
- ãã©ã¡ãŒã¿ãèšå®ããŠãã ãã
- ãé³é«ãã倿Žãããšå£°ã®ãããã倿Žã§ããŸããåºæ¬ã¯1ãæšå¥šããŸãã
- ãææãã倿Žãããšå£°ã®ææã倿Žã§ããŸããåºæ¬ã¯1ãæšå¥šããŸãã
- ãæ¹è¡ã§åããŠçæãã®ãã§ãã¯ããã¯ã¹ã¯ONã«ããããšããªã¹ã¹ã¡ããŸãã
- SBV2ã§ã¯ããããã¹ãããèšèªã¢ãã«ã§ããBertã«å ¥åããŠãåŸãããç¹åŸŽéãVITS2ã¢ãã«ã«å ¥åããŸãããã®ç¹åŸŽéã¯äžåºŠã«ã¢ãã«ã«å ¥åãããæç« å šäœã®ç¹åŸŽããã¯ãã«ãšããŠè¡šçŸãããã®ç¹åŸŽéã«å¿ããŠSBV2ã¯ææ 蟌ããŠããã¹ããçºè©±ããŸãããããã£ãŠãäžæåäœã§åºåã£ãŠçæããããšã§ãäžæããšã«é©ããææ ã§èªã¿äžããŠãããããã«ãªããŸãã
- ãæ¹è¡ããšã«æãç¡é³ã®é·ãããèšå®ããŠãã ããã
- åºæ¬çã«defaultã®ãŸãŸã§åé¡ãããŸãããçæãããé³å£°ãèããŠãç©ºçœæéãæ°ã«ãªãå Žåã¯å€æŽããŠã¿ãŠãã ããã
- ãã¢ã¯ã»ã³ãããèšå®ããŠãã ãããïŒä»»æïŒ
- æ¹è¡ã§åããªãå Žåã«ã®ã¿äœ¿ããŸãããçºè©±ã®èªã¿ãšé³ã®é«äœïŒé«ãïŒ1ãäœã:0ïŒãæå®ã§ããŸãã
- å©çšããå Žåã¯ããæ¹è¡ã§åããŠçæãã®ãã§ãã¯ããã¯ã¹ã¯OFFã«ããŠããã¢ã¯ã»ã³ã調æŽã䜿ããã®ãã§ãã¯ããã¯ã¹ãONã«ããŠãã ããã
- ãLanguageããèšå®ããŠãã ããã
- åºæ¬çã«ã¯defaultã®ãŸãŸã§åé¡ãããŸããã
- è±èªãäžåœèªãçºè©±ããããå Žåã¯ãèšå®ããŠãã ãã
- ãã ã
JP-Extraã¢ãã«ãå©çšããŠããå Žåã¯ãæ¥æ¬èªä»¥å€éžæã§ããŸããã
- ãã ã
- ã話è
ããèšå®ããŠãã ããã
- åºæ¬çã«ã¯defaultã®ãŸãŸã§åé¡ãããŸããã
- è€æ°è©±è ã§åŠç¿ãããã¢ãã«ãå©çšããå Žåã¯ããããã話è ãéžæã§ããŸãã
- ã詳现èšå®ããèšå®ããŠãã ããïŒä»»æïŒ
- åºæ¬çã«ã¯defaultã§åé¡ãããŸããã
- ãLengthãã倿Žãããšå
šäœçãªçºè©±ã®éãã倿Žã§ããŸã
- äŸãã°
0.9ã«èšå®ãããšãå šäœçãªçºè©±æéã0.9åã«ãªããŸãã
- äŸãã°
- ãAssist textããèšå®ããŠãã ããïŒä»»æïŒ
- åºæ¬çã«ã¯äžèŠã§ãã
- ãAssist textããèšå®ãããšãå ¥åãããæåã«å¯Ÿå¿ããBertç¹åŸŽéãæœåºãããå ã®æç« ã®Bertç¹åŸŽéãšæ··ãããŸãã
- æ··ãã匷ãã¯ãAssist textã®åŒ·ããã§èšå®ãããå€ã
1ã ãšãAssist textã®Bertç¹åŸŽéã®ã¿ãæ®ãã0.5ã ãšåã ã§æ··ããåããŸãã - ïŒåç
§ïŒ
/style_bert_vits2/nlp/japanese/bert_feature.py
- ãã¹ã¿ã€ã«ããæå®ããŠãã ããïŒä»»æïŒ
- åºæ¬çã«ã¯Defaultã§èšå®ãããŠããäžèšã®èšå®ã§åé¡ãããŸããã
- ãã¹ã¿ã€ã«ã®æå®æ¹æ³ãâãããªã»ããããéžã¶ã
- ã¢ãã«ãã©ã«ãã®äžã®
style_vectors.npyãåç §ããŠãå¿ èŠãªstyle vectorãæœåºããŠãå©çšããŸãã - åŠç¿æã«styleåãã宿œããŠåŠç¿ããã¢ãã«ã®å Žåãã¹ã¿ã€ã«ãéžæããããšã§ããã®ã¹ã¿ã€ã«ã«åãããè©±ãæ¹ã§çºè©±ããŠãããããã«ãªããŸãã
- ã¢ãã«ãã©ã«ãã®äžã®
- ãã¹ã¿ã€ã«ãâ
Neutral - ãã¹ã¿ã€ã«ã®åŒ·ããâ
1- 1以äžã«èšå®ãããšãçºè©±é³å£°ã厩å£ããå¯èœæ§ããããŸããæé©ãªå€ã¯ã¢ãã«ã«ããç°ãªãããããããã詊ããŠã¿ãŠãã ããã
- ãã¹ã¿ã€ã«ã®æå®æ¹æ³ãâãããªã»ããããéžã¶ã
- ãã¹ã¿ã€ã«ã®æå®æ¹æ³ãã§ãé³å£°ãã¡ã€ã«ãå ¥åããéžæããå Žåãã¢ããããŒãããé³å£°ãã¡ã€ã«ããstyle vectorãæœåºããŠãå©çšããŸãã
- åºæ¬çã«ã¯Defaultã§èšå®ãããŠããäžèšã®èšå®ã§åé¡ãããŸããã
- ãé³å£°åæããã¯ãªãã¯ããŠãã ããã
- CPUã®å Žåã¯å°ãåŸ ã¡ãŸããããã®ãã¡çºè©±å 容ãçæãããŸãã
- çæãããçºè©±å 容ã¯ãçµæãããã¯ã®å³äžã®ã¢ã€ã³ã³ããããŠã³ããŒããå¯èœã§ãã
JP-Extraã«é¢ããŠã¯ãSBV2ã®éçºè
æ§ã詳ãã解説ããŠããèšäºãããããŸãããããã¡ãã䜵ããŠã芧ãã ããã
æ¢åã®ã¢ãã«ã§TTSïŒã¢ãžã¥ãŒã«ã®å©çšïŒ
äžèšã§å¿ èŠãªã¢ãžã¥ãŒã«ãã€ã³ã¹ããŒã«ããŸãã
pip install numpy==1.26.4
pip install style-bert-vits2
pip install sounddevice
pip install fastapi\[all\]
ïŒåæ²ïŒ
ã¢ãã«ã®éã¿ã./model_assetsã«æ ŒçŽããŠãã ããã
äžèšãåèã«ããŠãã ããã
workspace/
â model_assets/
| â {model_name}
| â xxxx.safetensors
| â config.json
| â style_vectors.npy
â main.py
äžèšã®ã³ãŒããå®è¡ãããšãããã«ã¡ã¯ããšçºè©±ãããããšãã§ããŸãã
ïŒhttps://github.com/litagin02/Style-Bert-VITS2/blob/master/library.ipynb
äžèšã®å
¬åŒå®è£
ãåèã«ããŠããŸããïŒ
from style_bert_vits2.nlp import bert_models
from style_bert_vits2.constants import Languages
from pathlib import Path
from style_bert_vits2.tts_model import TTSModel
import sounddevice as sd
bert_models.load_model(Languages.JP, "ku-nlp/deberta-v2-large-japanese-char-wwm")
bert_models.load_tokenizer(Languages.JP, "ku-nlp/deberta-v2-large-japanese-char-wwm")
#ã¢ãã«ã®éã¿ãæ ŒçŽãããŠããpath
model_file = "jvnv-F1-jp/jvnv-F1-jp_e160_s14000.safetensors"
config_file = "jvnv-F1-jp/config.json"
style_file = "jvnv-F1-jp/style_vectors.npy"
assets_root = Path("model_assets")
#ã¢ãã«ã€ã³ã¹ã¿ã³ã¹ã®äœæ
model = TTSModel(
model_path=assets_root / model_file,
config_path=assets_root / config_file,
style_vec_path=assets_root / style_file,
device="cpu",
)
#ãããã«ã¡ã¯ããšçºè©±
sr, audio = model.infer(text="ããã«ã¡ã¯")
#åç
sd.play(audio, sr)
sd.wait()
äžèšã³ãŒãã®ãããã«ã¡ã¯ãã®éšåã倿Žããããšã§ã話ãå
容ã倿Žããããšãã§ããŸãã
ãŸããæ°ãã話è
ã®ã¢ãã«éã¿ãä¿åããŠãäžèšã®éšåã®Pathã倿Žããããšã§ãä»ã®å£°ã§çºè©±ãããããšãã§ããŸãã
model_file = "jvnv-F1-jp/jvnv-F1-jp_e160_s14000.safetensors"
config_file = "jvnv-F1-jp/config.json"
style_file = "jvnv-F1-jp/style_vectors.npy"
ãŸããdefaultã®ã¢ãã«ãšããŠããã¿ãããããã®ã¢ãã«ãçšæãããŠããŸãã
ãã¿ããããã¯ãäžèšã®ãµã€ãã§ããŸããŸãªå£°çŽ æãæäŸããŠãã ãã£ãŠããããã®é³å£°çŽ æãå©çšããŠãSBV2ã®éçºè
æ§ãåŠç¿ããã¢ãã«ãæäŸãããŠããŸãã
ïŒã¢ãã«ã®éã¿èªäœã¯python initialize.pyã宿œããéã«ãSBV2ã®ãªããžããªã®model_assetsãã©ã«ãã«amitaroãšããŠä¿åãããŸãã®ã§ããã¡ããèªåã®model_assetsãã©ã«ãã«ã³ããŒããŠãå©çšããŠãã ãããïŒ
ããã¿ãããããã®åŠç¿æžã¿ã¢ãã«å©çšã®å Žåã¯äžèšã®ããã«PATHãèšå®ããŠãã ããã
model_file = "amitaro/amitaro.safetensors"
config_file = "amitaro/config.json"
style_file = "amitaro/style_vectors.npy"
æ¢åã®ã¢ãã«ã§TTSïŒã¹ã¿ã€ã«ã®å€æŽïŒ
ããã¿ãããããã®ã¢ãã«ãªã©ãæ¢åã®defaultã¢ãã«ã«ã¯ãã¹ã¿ã€ã«ãšåŒã°ãããææ 衚çŸããèšå®ããããšãã§ããããšãå€ãã§ãã
äŸãã°ããã¿ãããããã®ã¢ãã«ã§ã¯Neutralãš01~04ãŸã§ã®ã¹ã¿ã€ã«ãååšããŸãã
ãã®ã¹ã¿ã€ã«ã倿Žããããšã§ãçºè©±ãããé³å£°ã®å£°è²ïŒç¹ã«å«ãŸããææ
ïŒãå€ãããŸãã
äœãã¹ã¿ã€ã«ãæå®ããªãå Žåã¯ãããã©ã«ããšããŠNeutralãæå®ãããŸãã
ã¹ã¿ã€ã«ãæå®ããå Žåã¯ãäžèšã®éãã«å®è¡ããŸã
sr, audio = model.infer(text="ããã«ã¡ã¯",style = "01")
ãã®ã»ãã®inferã¡ãœããã®åŒæ°
TTSmodelã¯ã©ã¹ã®inferã¡ãœããã®éåžžã®äœ¿ãæ¹ã¯äžèšã§ãã
sr, audio = model.infer(text="ããã«ã¡ã¯")
äžæ¹ãinferã¡ãœããã«ã¯ãã®ä»ã®ããŸããŸãªäŸ¿å©ãªåŒæ°ãååšããŸãã
äžèšã«TTSmodelã¯ã©ã¹ã®inferã¡ãœããã®ã³ãŒãã«èšèŒãããŠããåŒæ°ã®èª¬ææãåŒçšãããŠããã ããŸãã
ïŒé·ãã®ã§æ ŒçŽãããŠããã ããŸããïŒ
inferã¡ãœããã®åŒæ°èª¬æã®åŒçš
Args:
text (str): èªã¿äžããããã¹ã
language (Languages, optional): èšèª. Defaults to Languages.JP.
speaker_id (int, optional): 話è ID. Defaults to 0.
reference_audio_path (Optional[str], optional): é³å£°ã¹ã¿ã€ã«ã®åç §å ã®é³å£°ãã¡ã€ã«ã®ãã¹. Defaults to None.
sdp_ratio (float, optional): DP ãš SDP ã®æ··åæ¯ã0 ã§ DP ã®ã¿ã1ã§ SDP ã®ã¿ãäœ¿çš (å€ã倧ãããããšãã³ãã«ç·©æ¥ãã€ã). Defaults to DEFAULT_SDP_RATIO.
noise (float, optional): DP ã«äžãããããã€ãº. Defaults to DEFAULT_NOISE.
noise_w (float, optional): SDP ã«äžãããããã€ãº. Defaults to DEFAULT_NOISEW.
length (float, optional): çæé³å£°ã®é·ãïŒè©±éïŒã®ãã©ã¡ãŒã¿ã倧ããã»ã©çæé³å£°ãé·ããã£ãããå°ããã»ã©çãæ©ããªãã Defaults to DEFAULT_LENGTH.
line_split (bool, optional): ããã¹ããæ¹è¡ããšã«åå²ããŠçæãããã©ãã (True ã®å Žå given_phone/given_tone ã¯ç¡èŠããã). Defaults to DEFAULT_LINE_SPLIT.
split_interval (float, optional): æ¹è¡ããšã«åå²ããå Žåã®ç¡é³ (ç§). Defaults to DEFAULT_SPLIT_INTERVAL.
assist_text (Optional[str], optional): ææ è¡šçŸã®åç §å ã®è£å©ããã¹ã. Defaults to None.
assist_text_weight (float, optional): ææ è¡šçŸã®è£å©ããã¹ããé©çšãã匷ã. Defaults to DEFAULT_ASSIST_TEXT_WEIGHT.
use_assist_text (bool, optional): é³å£°åææã«ææ 衚çŸã®è£å©ããã¹ãã䜿çšãããã©ãã. Defaults to False.
style (str, optional): é³å£°ã¹ã¿ã€ã« (Neutral, Happy ãªã©). Defaults to DEFAULT_STYLE.
style_weight (float, optional): é³å£°ã¹ã¿ã€ã«ãé©çšãã匷ã. Defaults to DEFAULT_STYLE_WEIGHT.
given_phone (Optional[list[int]], optional): èªã¿äžãããã¹ãã®èªã¿ã衚ãé³çŽ åãæå®ããå Žå㯠given_tone ãå¥éæå®ãå¿ èŠ. Defaults to None.
given_tone (Optional[list[int]], optional): ã¢ã¯ã»ã³ãã®ããŒã³ã®ãªã¹ã. Defaults to None.
pitch_scale (float, optional): ãããã®é«ã (1.0 ãã倿Žãããšè¥å¹²é³è³ªãäœäžãã). Defaults to 1.0.
intonation_scale (float, optional): ææã®å¹³åããã®å€åå¹ (1.0 ãã倿Žãããšè¥å¹²é³è³ªãäœäžãã). Defaults to 1.0.
Returns:
tuple[int, NDArray[Any]]: ãµã³ããªã³ã°ã¬ãŒããšé³å£°ããŒã¿ (16bit PCM)
äžèšã«æŽçããåŒæ°ã¯ãã䜿ããããäžåºŠç¢ºèªããŠã¿ããšè¯ããšæããŸãã
ã¹ã¿ã€ã«ã倿Žããã ãã§ãªããè€æ°è©±è
ã®é³å£°ãåŠç¿ãããŠããã¢ãã«ã§ããã°ã話è
ãåãæ¿ããããšãã§ããŸãã
ãŸããçºè©±é³å£°ã®é床ãããããææã®èª¿æŽãé³çŽ ã®èªã¿ãã¢ã¯ã»ã³ãããŒã³ãŸã§å¥éäžããããšãå¯èœã§ãã
èŸæžç»é²
èŸæžç»é²ãè¡ãããšã§ãç¹æ®ãªèªã¿æ¹ãç¹æ®ãªã¢ã¯ã»ã³ããªã©ãèšå®ããããšãã§ããŸãã
äžèšã®ããã«ãã©ã«ããäœãããã¡ã€ã«ãæ ŒçŽããŠãã ããã
dict_dataãã©ã«ãã¯ãå
ã®SBV2ãªããžããªã«ååšãããããããããã®ãŸãŸã³ããŒããŠããããšããå§ãããŸãã
workspace/
â model_assets/
| â {model_name}
| â xxxx.safetensors
| â config.json
| â style_vectors.npy
â dict_data/
| â user.dic
| â default.csv
â main.py
ãã®åŸãã³ãŒããäžèšã®ããã«å€æŽããŠãã ããã
ïŒé·ãã®ã§æ ŒçŽããŸãïŒ
python:main.py
from style_bert_vits2.nlp import bert_models
from style_bert_vits2.constants import Languages
from pathlib import Path
from style_bert_vits2.tts_model import TTSModel
import sounddevice as sd
from style_bert_vits2.nlp.japanese.user_dict import update_dict
update_dict(default_dict_path = Path("dict_data/default.csv"), compiled_dict_path = Path("dict_data/user.dic"))
bert_models.load_model(Languages.JP, "ku-nlp/deberta-v2-large-japanese-char-wwm")
bert_models.load_tokenizer(Languages.JP, "ku-nlp/deberta-v2-large-japanese-char-wwm")
#ã¢ãã«ã®éã¿ãæ ŒçŽãããŠããpath
model_file = "jvnv-F1-jp/jvnv-F1-jp_e160_s14000.safetensors"
config_file = "jvnv-F1-jp/config.json"
style_file = "jvnv-F1-jp/style_vectors.npy"
assets_root = Path("model_assets")
#ã¢ãã«ã€ã³ã¹ã¿ã³ã¹ã®äœæ
model = TTSModel(
model_path=assets_root / model_file,
config_path=assets_root / config_file,
style_vec_path=assets_root / style_file,
device="cpu",
)
#ãããã«ã¡ã¯ããšçºè©±
sr, audio = model.infer(text="ããã«ã¡ã¯")
#åç
sd.play(audio, sr)
sd.wait()
ååãæç€ºããã³ãŒãããã®å€æŽç¹ã¯äžèšã®éšå
from style_bert_vits2.nlp.japanese.user_dict import update_dict
update_dict(default_dict_path = Path("dict_data/default.csv"), compiled_dict_path = Path(dict_data/user.dic))
ãã®ã³ãŒããå®è¡ããããšã§default.csvã«æ ŒçŽãããèŸæžãèªã¿èŸŒãã§ãTTSãããããšãå¯èœã«ãªããŸãã
ãŸãèŸæžã¯äžèšã®ããã«èšå®ããŸã
ïœïœïœïœïœ,,,8609,åè©,åºæåè©,äžè¬,*,*,*,ïœïœïœïœïœ,ã¯ãªã¹ãã¹,ã¯ãªã¹ãã¹,3/5,*
ïœïœïœ,,,8609,åè©,åºæåè©,äžè¬,*,*,*,ïœïœïœ,ã¯ãµ,ã¯ãµ,2/2,*
äžèšã§ã¯é èªã§ããïœïœïœïœïœããã¯ãªã¹ãã¹ããšçºè©±ãããããïœïœïœããèããšçºè©±ããããããªèŸæžã§ãã
ã©ã¡ãããèŸæžãèšå®ããã«ããã®åèªãèªãŸããããšãããšãã¢ã«ãã¡ãããããã®ãŸãŸäžæåãã€èªããããªæåãããŸãã
ããããèšå®æ¹æ³ã説æããŸããïŒç§ãããŸãããããã£ãŠããªãã®ã§ãåããç¯å²ã§èª¬æããŸãïŒ
- ãŸãã¯ãèšå®ããåèªãå·Šãã1ãã¹ç®ã«å
¥åããŸã
- äžèšã§èšããš
ïœïœïœïœïœãïœïœïœã«çžåœããŸãã - ããã§ã¯å šè§æåã§å ¥åããŠãã ãããïŒåè§æåã ãšæ©èœããŸããã§ããïŒ
- äžèšã§èšããš
- ç¶ããŠãã³ã¹ãããå·Šãã4ã€ç®ã«å
¥ããŸãã
- ã³ã¹ãã®æŠå¿µãçè§£ããã®ã¯é£ããã®ã§ãåºæ¬çã«ã¯ã䌌ãçš®é¡ã®åèªã®ã³ã¹ããåããã®ãå
¥ãããšè¯ãã§ãã
- äŸãã°ãåºæåè©ã§ããã°
8609ãªã© - å³å¯ã«ã¯ãåè©ã®çš®é¡ãªã©ã«ãã£ãŠãã®æ°å€ã®æé©å€ã¯å€ãããŸãã
- äŸãã°ãåºæåè©ã§ããã°
- 詳现ã«ã¯ãäžèšã®ã³ãŒãã«ããå¶åŸ¡ãããŸãã
style_bert_vits2/nlp/japanese/user_dict/part_of_speech_data.py- ããã®
cost_candidatesãšããŠæå®ãããŠããæ°å€ã®ãã¡ãå°ããæ°å€ãèŸæžã«å ¥ããã»ã©ãSBV2ãçºè©±ããéã®èŸæžéãã«çºè©±ããåªå 床ãäžãããŸãã - äŸãã°åºæåè©ã®
8609ã¯é åã®5çªç®ã®èŠçŽ ã®ãããåªå 床ã¯10段éäžã®5ã«ãªãã - äžæ¹ã§
â988ãèšå®ãããšåªå 床ã¯10ã«ãªããå¿ ãèŸæžéãã«çºè©±ãããŸãã- å¿ ããã®åèªãèŸæžéãã«è©±ãããããªããåªå 床ã10ã«èšå®ããŠãè¯ããšæããŸãããæèã«ãã£ãŠå€ããå Žåã¯åªå 床5ãããã«èšå®ããŠããã詊è¡é¯èª€ããªããåªå 床ã調æŽããŠãããšè¯ããšæããŸãã
- ã³ã¹ãã®æŠå¿µãçè§£ããã®ã¯é£ããã®ã§ãåºæ¬çã«ã¯ã䌌ãçš®é¡ã®åèªã®ã³ã¹ããåããã®ãå
¥ãããšè¯ãã§ãã
- å·Šãã5,6,7,8çªç®ã«ã¯ãåèªã®åè©ã®çš®é¡ãå
¥åããŸã
- ãã¡ããäžèšã®ã³ãŒããåèã«èšå®ããããèŸæžã®ä»ã®äŸãåèã«èšèŒãããšè¯ãã§ã
style_bert_vits2/nlp/japanese/user_dict/part_of_speech_data.py
- ãã¡ããäžèšã®ã³ãŒããåèã«èšå®ããããèŸæžã®ä»ã®äŸãåèã«èšèŒãããšè¯ãã§ã
- å·Šãã9,10çªç®ã«ã¯
*ãå ¥ããŠãã ãããããããã£ãŠããªãã§ãã- äžèšã®2ã€ãããã§ããããããã£ãŠããªãã§ãã
- inflectional_type
- inflectional_form
- äžèšã®2ã€ãããã§ããããããã£ãŠããªãã§ãã
- å·Šãã11çªç®ã«ã¯ã1çªç®ãšåãåèªãå ¥ããŠãã ããã
- å·Šãã12,13çªç®ã«ã¯ã1çªç®ã®åèªã®èªã¿æ¹ãã«ã¿ã«ãã§å ¥åããŠãã ããã
- å·Šãã14çªç®ã«ã¯ãã¢ã¯ã»ã³ãã®å Žæãå
¥åããŸãã
- {ã¢ã¯ã»ã³ãã®å Žæ}/{é³çŽ æ°}ã«ãªããŸãã
- äŸãã°ãã¯ãªã¹ãã¹ãã®å Žåã¯ãã¹ãã«ã¢ã¯ã»ã³ããããŸãããããã£ãŠã5é³çŽ äž3çªç®ã«ã¢ã¯ã»ã³ããæ¥ããã
3/5ãšèšèŒããŸã
- å·Šãã15çªç®ã«ã¯
*ãšå ¥ããŠãã ããã- ãã¢ã¯ã»ã³ãçµåèŠåãã衚ããããã§ããã
*ã§åé¡ãªãåäœããŸãã
- ãã¢ã¯ã»ã³ãçµåèŠåãã衚ããããã§ããã
以äžã«åŸã£ãŠãèŸæžãäœæããããšã§ãèªã¿æ¹ãã¢ã¯ã»ã³ããæäœããããšãã§ããŸãã
ã¢ãã«ã®åŠç¿
ã¢ãã«ã®åŠç¿ã«é¢ããŠããSBV2ã®éçºè
æ§ãéåžžã«äœ¿ããããããŒã«ãæäŸããŠãã ãã£ãŠããŸãã
å
¬åŒãšããŠã¯ãäžèšã§åŠç¿ã®æ¹æ³ã解説ããŠãã ãã£ãŠãããŸããããåºæ¬çã«ã¯ããã§ååããšæããŸã
ãŸããGoogle Colabã§ã®åŠç¿çšãµã³ãã«ãçšæããŠããã ããŠãããŸãã
ç¡æçã§ã¯åŠç¿ã¯é£ãããããColab Proãªã©ã®å©çšãæ€èšããŠãã ããã
äžèšã¯ver2.5ã§ã®åäœã³ãŒãã§ããéœåºŠãææ°ããŒãžã§ã³ã®ãã¡ã€ã«ãå©çšããŠãã ããã
è€æ°è©±è ã§ã®åŠç¿
ããã§ã¯2話è
ã§ã®åŠç¿ãèããŸãã
äžèšã«å床ãåŠç¿çšã®ããã¥ã¡ã³ããæç€ºããŸãã
2話è ã§åŠç¿ãããããã«äžèšã®ããã¥ã¡ã³ãããå°ãã ã倿Žãè¡ããŸãã
2.Preprocessã宿œåã«Dataãã©ã«ãã®äžèº«ã¯äžèšã®ããã«ãªã£ãŠãããšæããŸã
/
â Data/
| â {model_name}
| â raw/
| | â 001.wav
| | â 002.wav
| | ...
| | â xxx.wav
| |
| â esd.list
|
â model_assets
...
â xxx
2話è
ã§åŠç¿ããããã«ã¯rawãã©ã«ãã®äžã«2話è
åã®é³å£°ãã¡ã€ã«ãåæã«å
¥ããããšãšesd.listã®äžã«ã2話è
åã®æ
å ±ãå
¥ããå¿
èŠããããŸãã
äŸãã°äžèšã®ãããªåœ¢ã§ãã
001-A.wav|speaker-A|JP|ãã¯ããããããŸãã
002-A.wav|speaker-A|JP|ããã«ã¡ã¯ã
003-A.wav|speaker-A|JP|ããã ããŸãã
ã»ã»ã»
098-B.wav|speaker-B|JP|ãã¡ããããŸã§ããã
099-B.wav|speaker-B|JP|ããããªãã
100-B.wav|speaker-B|JP|ãããã¿ãªããã
äžèšã®ãããªåœ¢ãæºåããåŸã«ã2.Preprocessãããå®è¡ããããšã§ã2話è ã¢ãã«ãåŠç¿ããããšãã§ããã
ã¡ãªã¿ã«ïŒããããã§ããïŒãesd.listãã«ãããŠãäžã«çœ®ãã話è
ã®idã0ã«ãªããšæãããŸãã
äžèšã®äŸã§ã¯ããspeaker-Aãã®è©±è
idã0ããspeaker-Bãã®è©±è
idã1ãšãªããŸãã
è€æ°ã¹ã¿ã€ã«ã§ã®åŠç¿
éåžžã®åŠç¿ã§ã¯ãåºæ¬ã§ããNeutralã®ã¹ã¿ã€ã«ããåŠç¿ãããªãã§ãããäžèšã宿œããããšã§ãNeutralã«å ããå¥ã®styleãåŠç¿ãããããšãã§ããŸãã
2.Preprocessã宿œåã«Dataãã©ã«ãã®äžèº«ãäžèšã®ããã«èšå®ããŸãã
/
â Data/
| â {model_name}
| â raw/
| | â style01/
| | | â 001.wav
| | | â 002.wav
| | | ...
| | | â xxx.wav
| | â style02/
| | â 001.wav
| | â 002.wav
| | ...
| | â xxx.wav
| â esd.list
|
â model_assets
...
â xxx
ãã®ããã«rawãã©ã«ãã®äžèº«ãstyleããšã«ãµããã£ã¬ã¯ããªãçšæããŠããã®äžã«è©²åœã®é³å£°ãã¡ã€ã«ãæ ŒçŽããããšã«ãã£ãŠãNeutralã«å ããŠstyle01ãšstyle02ã®ã¹ã¿ã€ã«ãäœæã§ããŸãã
ãŸããrawãã©ã«ãã®äžèº«ã倿Žããããããesd.listã倿Žã«ãªããŸãã
äžèšã®éãããã¡ã€ã«åããµããã£ã¬ã¯ããªãå«ã圢ã«å€æŽã«ãªããŸãã
style01/001.wav|speaker-A|JP|ãã¯ããããããŸãã
style01/002.wav|speaker-A|JP|ããã«ã¡ã¯ã
ã»ã»ã»
style01/100.wav|speaker-A|JP|ããã ããŸãã
style02/001.wav|speaker-A|JP|ãã¡ããããŸã§ããã
style02/002.wav|speaker-A|JP|ããããªãã
ã»ã»ã»
style02/100.wav|speaker-A|JP|ãããã¿ãªããã
ã¢ãã«ããŒãž
SBV2ã§ã¯éåžžã«ç°¡åã«ã¢ãã«å士ã®ããŒãžãè¡ãããšãã§ããŸãã
ã¢ãã«ããŒãžãè¡ãããšã§ãããããªæ©èœãããŒãžå
ã¢ãã«ã«ä»äžããããšãã§ããŸãã
äŸãã°ãããŒãžå
ã¢ãã«ã«ãææã®åŒ·ãã¢ãã«ãããŒãžããããšã§ææãä»äžãããã
æ¥æ¬èªã§åŠç¿ããã¢ãã«ïŒæ¥æ¬èªç¹åã¢ãã«ã§ã¯ãªãïŒã«å¯ŸããŠãè±èªã§åŠç¿ããã¢ãã«ãããŒãžããããšã§ãè±èªã®çºè©±ãæµæ¢ã«ããããšãã§ãããããŸãã
ããŒãžã«é¢ããŠãéçºè æ§ãäžèº«ã®è§£èª¬ãããŠãã ãã£ãŠãããŸããããäžèšã®èšäºã䜵ããŠã芧ãã ããã
ïŒver2.6.0ã§ã¯ïŒã¢ãã«ããŒãžã¯äžèšã®çš®é¡ãããããŸãã
ïŒã¢ãã«Aãšã¢ãã«Bãã¢ãã«Cãªã©ã®ããŒãžãèããŸããïŒ
- éåžžã¢ãã«ããŒãž
new_model = (1 - weight) * A + weight * B
- å·®åã¢ãã«ããŒãž
new_model = A + weight * (B - C)
- å éå
-
new_model = a * A + b * B + c * C- ãã ãã
a,b,cã¯å®æ°ã§ã0ãæå®ãããšå šãããŒãžã«åæ ãããŸããã
- ãã ãã
-
- ãã«ã¢ãã«ããŒãž
-
new_model = A + weight * B-
Bã¯éåžžããã«ã¢ãã«ããåæãšãªããŸãã- ããã«ã¢ãã«ãã§ãªããŠãè¯ããããŸããããªãå¯èœæ§ããã
- ããã«ã¢ãã«ããšã¯ãäžã®ãå éåãã«ããããŒãžã«ãããŠãäžèšãæºãããã®ã§ãã
a + b + c = 0
-
-
äžèšã§è§£èª¬ããŸãã
éåžžã¢ãã«ããŒãž
ã¢ãã«ããŒãžã«é¢ããŠã¯WebUIãå©çšããŸããäžèšã®ã¹ã¯ãªãããå®è¡ããŠãã ããã
å
ã®SBV2ã®ãªããžããªãã«ã¬ã³ããã£ã¬ã¯ããªãšããŠå®è¡ããŠãã ããã
python app.py
ãããšäžèšã®ãã©ãŠã¶ãéããäžèšã®ç»åã®ãããªç»é¢ã衚瀺ãããããšæããŸãã

ãã¡ãã®äžéšã«ãããããŒãžãã®ã¿ããéžæããŠãã ããã



ïŒç»é¢ã¯ver.2.6.0ã®ç»é¢ã«ãªããŸããããéåžžããŒãžãã«é¢ããŠã¯äœ¿ãæ¹ã¯åãã«ãªããŸãããã以å€ã®ããŒãžã«é¢ããŠã¯ver2.6以åã®versionã®SBV2ã§ã¯å©çšã§ããŸããïŒ
äžèšã®éãäœæ¥ãè¡ããŸãã
- ãããŒãžæ¹æ³ããéžæããŸã
- ããã§ã¯ãéåžžããŒãžããéžæããŸã
- ãã¢ãã«Aããšãã¢ãã«Bããèšå®ããŸã
- ãããã
assets_modelsã«æ ŒçŽãããŠããã¢ãã«ãéžæã§ããŸãã - ã¢ãã«ããªãå Žåã¯ãå³ã®ãæŽæ°ããã¿ã³ãæŒããŠã¿ãŠãã ããã
- ãããã
- ãæ°ããã¢ãã«åããå
¥åããŠãã ããã
- ãªãã§ãè¯ãã§ããäœãšäœãããŒãžããŠã§ããã®ãããããååã«ãªã£ãŠãããšããããããã§ãã
- ãã©ã¡ãŒã¿ãèšå®ããŠãã ããã
- ããããã®é
ç®ã§0ãã1ã®ç¯å²ã§éã¿ãæå®ã§ããŸãã
- 0ã«èšå®ãããšã¢ãã«Aã®éã¿ãšå šãåã
- 1ã«èšå®ãããšã¢ãã«Bã®éã¿ãå šãåã
- 0.5ã«èšå®ãããšã¢ãã«Aãšã¢ãã«Bã®éã¿ã®å¹³åã«ãªããŸãã
- äžèšã®ãã©ã¡ãŒã¿ãèšå®ã§ããŸãã
- 声質
- 声ã®é«ã
- è©±ãæ¹ïŒææã»ææ 衚çŸçïŒ
- 話ãéãã»ãªãºã ã»ãã³ã
- ç»åã®äŸã§ã¯ã声質ã声ã®é«ãã¯ã¢ãã«Aã®ãŸãŸãã¢ãã«Bã®è©±ãæ¹ã話ãéãã«å€æŽãããããªããŒãžèšå®ãããŠããŸãã
- ããããã®é
ç®ã§0ãã1ã®ç¯å²ã§éã¿ãæå®ã§ããŸãã
- ãã¢ãã«ãã¡ã€ã«ã®ããŒãžãã®ãã¿ã³ãã¯ãªãã¯ããŠãã ããã
- å³ã®æ å ±æ¬ã«ãŠä¿åå ŽæãèšèŒãããŸã
- ãçµæã®ãã¹ããã宿œã§ããŸãïŒä»»æïŒ
- ãã¹ã¿ã€ã«ãã¯ãã«ã®ããŒãžããã§ããŸãïŒä»»æïŒ
- ããŒãžå ã¢ãã«ã«è€æ°ã®ã¹ã¿ã€ã«ãããå Žåã¯ãã¹ã¿ã€ã«å士ã®ããŒãžãå¯èœã§ãã
- äžèšã®åœ¢ã§å®è¡ããŠãã ãããïŒWebUIããåŒçšïŒ
- ããŒãžåŸã®ã¢ãã«ã«ããã€ã¹ã¿ã€ã«ã远å ããããããäœãããã¹ã¿ã€ã«æ°ãã§æå®
- ããŒãžåã®ã¢ãã«ã®ã¹ã¿ã€ã«ããåã¢ãã«ã®ã¹ã¿ã€ã«ãååŸããã¿ã³ã§ååŸ
- ã©ã®ã¹ã¿ã€ã«ãã¡ããæ°ããã¹ã¿ã€ã«ãäœãããäžã®æ¬ã§å ¥å
- ãã¹ã¿ã€ã«ã®ããŒãžããã¯ãªãã¯
以äžã§éåžžããŒãžã¯å®äºã§ãã
ããŒãžããã¢ãã«ã«é¢ããŠã¯model_assetsãã©ã«ãã«ãèªåã§èšå®ããã¢ãã«åã®ãã©ã«ããšããŠä¿åãããŠããŸãã
ãã®ãã©ã«ãã®äžã«ã¯ãå¿
èŠãª3ã€ã®ãã¡ã€ã«ã«å ããããŒãžæ
å ±ãèšèŒãããŠããrecipe.jsonãä¿åãããŠããŸãã
ïŒåºæ¬çã«ã¯äœ¿ããªãã§ãããä»åŸã¢ãã«ãåçŸãããå Žåã«åç
§ã§ããŸãïŒ
å·®åã¢ãã«ããŒãžïŒver.2.6.0以éïŒ
ç¶ããŠãver2.6.0以éã«ãŠå®è£
ãããå·®åã¢ãã«ããŒãžã«ã€ããŠè§£èª¬ããŸãã
åºæ¬çãªäœ¿ãæ¹ã¯ãéåžžããŒãžããšåæ§ã§ãã
å·®åãšããŠã¯ã
- ãããŒãžæ¹æ³ãã«ãŠãå·®åããŒãžããéžæãã
- ã¢ãã«ã¯A,B,Cã®3ã€ãèšå®ããå¿
èŠããããããããã®ã¢ãã«ã¯äžèšã®åŒã§ããŒãžããã
new_model = A + weight * (B - C)
- äžèšã®åŒããããããããã«ãéã¿ã1ã«ããŠãAã®èŠçŽ ã¯ãã®ãŸãŸä¿ãããŸãã
- èŠçŽ ããšã®ãã©ã¡ãŒã¿ã¯å
šãŠ1ãèšå®ããŠãã ããã
- ç§ã®å°ãªã詊è¡åæ°ã§ã¯ãå šãŠ1ã«ããã®ãäžçªãããããåæ ãããŸããã
å·®åããŒãžã§å®æœããŠããããšãçŽæçã«è§£èª¬ããŸãã
äžèšã®ãããªã¢ãã«ãããããšãä»®å®ããŸã
ã¢ãã«AïŒAããã®éåžžã³ãŒãã¹èªã¿äžãé³å£°ã§åŠç¿ãããã¢ãã«
ã¢ãã«BïŒBããã®ããããããã³ãŒãã¹èªã¿äžãé³å£°ã§åŠç¿ãããã¢ãã«ïŒããããã¢ãã«ïŒ
ã¢ãã«CïŒBããã®éåžžã³ãŒãã¹èªã¿äžãé³å£°ã§åŠç¿ãããã¢ãã«
ããã§ãã¿ã¹ã¯ãã¯ãã«ããšèšãèãæ¹ãå°å ¥ããŸãã
ã¿ã¹ã¯ãã¯ãã«ã¯ãã¿ã¹ã¯ã®åŠç¿ã衚ããã¯ãã«ã§ããã¿ã¹ã¯ã®åŠç¿ãå¿åŽ (unlearning) ãã¿ã¹ã¯ãã¯ãã«ã®ç®è¡ã«ããå®çŸã§ããŸãã
äŸãã°ãLLMã®åéã§ã¯ãChat Vectorããšèšãæè¡ã§äœ¿ãããŠããŸãã ïŒchat Vectorã®è§£èª¬ã¯äžèšã®èšäºãããããããã§ããïŒ
ããã§ãã£ãŠããããšã¯ã
ãè±èªã§åŠç¿ãããchatæ©èœã€ãLLMããŒãè±èªã§åŠç¿ãããããŒã¹LLMã
ã®ææ®ã«åºã¥ããŠLLMã®éã¿ãã©ã¡ãŒã¿ãèšç®ãããšããchatæ©èœããšèšãã¿ã¹ã¯ãæç«ãããããã®éã¿ãã¯ãã«ãåŸããããããããããchatæ©èœãã¯ãã«ããšãããš
ãæ¥æ¬èªã§åŠç¿ãããããŒã¹LLMãïŒãchatæ©èœãã¯ãã«ããLLMã®éã¿ãã©ã¡ãŒã¿ã«ãŠèšç®ããããšã§ããæ¥æ¬èªã§åŠç¿ãããããŒã¹LLMãã«chatæ©èœãä»äžããããšãã§ãããšèšãæè¡ã«ãªããŸãã
SBV2ã«ãããŠããåæ§ã®èšç®ãå¯èœã§ãã
ã¢ãã«Bããã¢ãã«CãåŒãç®ããã¢ãã«ã¯ãããããããã¿ã¹ã¯ã®ã¿ã¹ã¯ãã¯ãã«ã«ãªããŸãã
åŸã£ãŠããããã¢ãã«Aã«è¶³ãç®ããããšã§ãAããã®ããããããã¢ãã«ãåŸãããããšã«ãªããŸãã
ããã«ãããçè«äžãã©ããªã¢ãã«ã«å¯ŸããŠããèªåã®å¥œããªã¿ã¹ã¯ããããããšãã§ããããã«ãªããŸãã
å éåïŒver.2.6.0以éïŒ
ããããéåžžããŒãžããšã»ãŒåãã§ãã
å·®åãšããŠã¯ã
- ãããŒãžæ¹æ³ãã«ãŠãå éåããéžæãã
- ã¢ãã«ã¯A,B,Cã®3ã€ãŸã§èšå®ããããšãã§ããããããã®ã¢ãã«ã¯äžèšã®åŒã§ããŒãžããã
new_model = a * A + b * B + c * C- TIPSãšããŠWEB UIããåŒçšããŸãã
-
A, B, Cãå šãŠéåžžã¢ãã«ã§ãéåžžã¢ãã«ãäœãããå Žåã¯ãa + b + c = 1ãšãªãããã«ããã®ããããšæããŸãã -
a + b + c = 0ãšãããšïŒããšãã°A - BïŒãè©±è æ§ãæããªããã«ã¢ãã«ãäœãããšãã§ããããã«ã¢ãã«ãšã®åãã§çµæã䜿ãããšãåºæ¥ãŸãïŒå·®åããŒãžã®ææãªã©ã«ïŒ - ä»ã«ãã
a = 0.5, b = c = 0ãªã©ã§ã¢ãã«Aãè¬ã«å°ããããã倧ãããããè² ã«ãããã§ããã®ã§ãå®éšã«äœ¿ã£ãŠãã ããã
-
- ä¿æ°ã¯èŠçŽ ããšã«ã¯èšå®ã§ããŸããã
ãã«ã¢ãã«ããŒãžïŒver.2.6.0以éïŒ
ããã§ã¯ãã«ã¢ãã«ãšãããã®ãå©çšããŸãã
ïŒãã«ã¢ãã«ä»¥å€ã®ã¢ãã«ã®ããŒãžã«ãå©çšã§ããŸãããé³å£°ã厩å£ããå¯èœæ§ããããŸãïŒ
ããã«ã¢ãã«ãã®å®çŸ©ãWebUIããåŒçšããŸãã
ããã«ã¢ãã«ãããããã€ãã®ã¢ãã«ã®å éåã§ãã£ãŠãã®ä¿æ°ã®åã0ã§ãããããªãã®ãšããŸãïŒäŸãã°
C - Dãªã©ïŒã
åŸã£ãŠããå·®åã¢ãã«ããŒãžãã®ç« ã§èª¬æãããã¿ã¹ã¯ãã¯ãã«ããã®ãã®ãæããŸãã
ãã¿ã¹ã¯ãã¯ãã«ããä¿åããŠããã°ããããããªã¢ãã«ã«å¯ŸããŠãããã«ã¢ãã«ããŒãžããç°¡åã«å®æœããããšãã§ããŸãã
ãŸããSBV2ã®éçºè
æ§ãããããããã®ãã«ã¢ãã«ãçšæããŠãã ãã£ãŠãããŸãããããã¡ããããŠã³ããŒãããŠå©çšããããšãã§ããŸãã
ãã¡ãã§çšæããŠãã ãã£ãŠããŸãã
ããŠã³ããŒãã¯äžèšã«ãŠå®æœã§ããŸã
git lfs install
git clone https://huggingface.co/litagin/sbv2_null_models
ãããã¯ãHugging Faceã®ããŒãžãã1ãã¡ã€ã«ãã€ããŠã³ããŒãããããšãå¯èœã§ãã
ããŠã³ããŒãããåŸãwhisper1_nullãšwhisper2_nullã®ãã©ã«ããmodel_assetsãã©ã«ãã«æ ŒçŽããŠãã ããã
å人çã«ã¯ïŒè©Šè¡åæ°ãå°ãªãã§ããïŒãwhisper1_nullã®ãã«ã¢ãã«ã§ããŒãžããã»ããããããããæãããã¢ãã«ã«ä»äžãããŸããã
ïŒç§ã¯ç·æ§è©±è
ã®ã¢ãã«ã«ããŒãžãããã®ã§ãwhisper2_nullã¯çžæ§ãæªãã£ãã®ãããããŸããïŒ
ã§ã¯ãéåžžããŒãžããšã®å·®åã説æããŸãã
- ãããŒãžæ¹æ³ãã«ãŠããã«ã¢ãã«ããŒãžããéžæãã
- ã¢ãã«AãããŒã¹ã¢ãã«ãã¢ãã«Bããã«ã¢ãã«ã§èšå®ããäžèšã®åŒã®éãããŒãžãã
new_model = A + weight * B
- äžèšã®åŒããããããããã«ãéã¿ã1ã«ããŠãAã®èŠçŽ ã¯ãã®ãŸãŸä¿ãããŸãã
- èŠçŽ ããšã®ãã©ã¡ãŒã¿ã¯å
šãŠ1ãèšå®ããŠãã ããã
- ç§ã®å°ãªã詊è¡åæ°ã§ã¯ãå šãŠ1ã«ããã®ãäžçªãããããåæ ãããŸããã
ãŸãšã
ãããŸã§ã§ãSBV2ã«ã€ããŠã®äœ¿ãæ¹ã«ã€ããŠãŸãšããããŠããã ããŸããã
Web UIã§ã®äœ¿ãæ¹ãšã¢ãžã¥ãŒã«ãšããŠã®äœ¿ãæ¹ã®äž¡é¢ã«ã€ããŠãŸãšããããŠããã ããŸããã
ééã£ãŠããããšãããããŸãããããææããã ããŸããšå¬ããã§ãã
ãŸããæ¬èšäºãçæ§ã®æå©ãã«ãªãã°å¹žãã§ãã
Discussion
现ããã®ã§ãããWebUIã§ã®äœ¿ãæ¹ã®äžã®ããã¹ã¿ã€ã«ãâNuetralãã¯ããã¹ã¿ã€ã«ãâNeutralãã§ã¯ãªãããšæããŸãã
ããããšãããããŸãïŒä¿®æ£ãããŠããã ããŸããã