Avoid using pyworld by default
This commit is contained in:
6
app.py
6
app.py
@@ -202,7 +202,9 @@ examples = [
|
|||||||
initial_md = f"""
|
initial_md = f"""
|
||||||
# Style-Bert-VITS2 ver {LATEST_VERSION} 音声合成
|
# Style-Bert-VITS2 ver {LATEST_VERSION} 音声合成
|
||||||
|
|
||||||
注意: 初期からある[jvnvのモデル](https://huggingface.co/litagin/style_bert_vits2_jvnv)は、[JVNVコーパス(言語音声と非言語音声を持つ日本語感情音声コーパス)](https://sites.google.com/site/shinnosuketakamichi/research-topics/jvnv_corpus)で学習されたモデルです。ライセンスは[CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/deed.ja)です。
|
- Ver 2.3で追加されたエディターのほうが実際に読み上げさせるには使いやすいかもしれません。`Editor.bat`か`python server_editor.py`で起動できます。
|
||||||
|
|
||||||
|
- 初期からある[jvnvのモデル](https://huggingface.co/litagin/style_bert_vits2_jvnv)は、[JVNVコーパス(言語音声と非言語音声を持つ日本語感情音声コーパス)](https://sites.google.com/site/shinnosuketakamichi/research-topics/jvnv_corpus)で学習されたモデルです。ライセンスは[CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/deed.ja)です。
|
||||||
"""
|
"""
|
||||||
|
|
||||||
how_to_md = """
|
how_to_md = """
|
||||||
@@ -317,6 +319,7 @@ if __name__ == "__main__":
|
|||||||
value=1,
|
value=1,
|
||||||
step=0.05,
|
step=0.05,
|
||||||
label="音程(1以外では音質劣化)",
|
label="音程(1以外では音質劣化)",
|
||||||
|
visible=False, # pyworldが必要
|
||||||
)
|
)
|
||||||
intonation_scale = gr.Slider(
|
intonation_scale = gr.Slider(
|
||||||
minimum=0,
|
minimum=0,
|
||||||
@@ -324,6 +327,7 @@ if __name__ == "__main__":
|
|||||||
value=1,
|
value=1,
|
||||||
step=0.1,
|
step=0.1,
|
||||||
label="抑揚(1以外では音質劣化)",
|
label="抑揚(1以外では音質劣化)",
|
||||||
|
visible=False, # pyworldが必要
|
||||||
)
|
)
|
||||||
|
|
||||||
line_split = gr.Checkbox(
|
line_split = gr.Checkbox(
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ from typing import Optional, Union
|
|||||||
|
|
||||||
import gradio as gr
|
import gradio as gr
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import pyworld
|
|
||||||
import torch
|
import torch
|
||||||
from gradio.processing_utils import convert_to_16_bit_wav
|
from gradio.processing_utils import convert_to_16_bit_wav
|
||||||
|
|
||||||
@@ -33,6 +33,13 @@ def adjust_voice(fs, wave, pitch_scale, intonation_scale):
|
|||||||
# 初期値の場合は、音質劣化を避けるためにそのまま返す
|
# 初期値の場合は、音質劣化を避けるためにそのまま返す
|
||||||
return fs, wave
|
return fs, wave
|
||||||
|
|
||||||
|
try:
|
||||||
|
import pyworld
|
||||||
|
except ImportError:
|
||||||
|
raise ImportError(
|
||||||
|
"pyworld is not installed. Please install it by `pip install pyworld`"
|
||||||
|
)
|
||||||
|
|
||||||
# pyworldでf0を加工して合成
|
# pyworldでf0を加工して合成
|
||||||
# pyworldよりもよいのがあるかもしれないが……
|
# pyworldよりもよいのがあるかもしれないが……
|
||||||
|
|
||||||
@@ -197,7 +204,8 @@ class Model:
|
|||||||
audios.append(np.zeros(int(44100 * split_interval)))
|
audios.append(np.zeros(int(44100 * split_interval)))
|
||||||
audio = np.concatenate(audios)
|
audio = np.concatenate(audios)
|
||||||
logger.info("Audio data generated successfully")
|
logger.info("Audio data generated successfully")
|
||||||
fs, audio = adjust_voice(
|
if not (pitch_scale == 1.0 and intonation_scale == 1.0):
|
||||||
|
_, audio = adjust_voice(
|
||||||
fs=self.hps.data.sampling_rate,
|
fs=self.hps.data.sampling_rate,
|
||||||
wave=audio,
|
wave=audio,
|
||||||
pitch_scale=pitch_scale,
|
pitch_scale=pitch_scale,
|
||||||
@@ -206,7 +214,7 @@ class Model:
|
|||||||
with warnings.catch_warnings():
|
with warnings.catch_warnings():
|
||||||
warnings.simplefilter("ignore")
|
warnings.simplefilter("ignore")
|
||||||
audio = convert_to_16_bit_wav(audio)
|
audio = convert_to_16_bit_wav(audio)
|
||||||
return (fs, audio)
|
return (self.hps.data.sampling_rate, audio)
|
||||||
|
|
||||||
|
|
||||||
class ModelHolder:
|
class ModelHolder:
|
||||||
|
|||||||
@@ -1,16 +1,14 @@
|
|||||||
cmudict
|
cmudict
|
||||||
cn2an
|
cn2an
|
||||||
faster-whisper>=0.10.0,<1.0.0
|
faster-whisper==0.10.1
|
||||||
g2p_en
|
g2p_en
|
||||||
GPUtil
|
GPUtil
|
||||||
gradio
|
gradio
|
||||||
jaconv
|
|
||||||
jieba
|
jieba
|
||||||
langid
|
langid
|
||||||
librosa==0.9.2
|
librosa==0.9.2
|
||||||
loguru
|
loguru
|
||||||
matplotlib
|
matplotlib
|
||||||
mecab-python3
|
|
||||||
num2words
|
num2words
|
||||||
numba
|
numba
|
||||||
numpy
|
numpy
|
||||||
@@ -20,12 +18,12 @@ pyloudnorm
|
|||||||
# pyopenjtalk-prebuilt # Should be manually uninstalled
|
# pyopenjtalk-prebuilt # Should be manually uninstalled
|
||||||
pyopenjtalk-dict
|
pyopenjtalk-dict
|
||||||
pypinyin
|
pypinyin
|
||||||
pyworld
|
# pyworld # Not supported on Windows without Cython...
|
||||||
PyYAML
|
PyYAML
|
||||||
requests
|
requests
|
||||||
safetensors
|
safetensors
|
||||||
scipy
|
scipy
|
||||||
tensorboard
|
tensorboard
|
||||||
torch>=2.1,<2.2 # For users without GPU or colab
|
torch>=2.1,<2.2
|
||||||
transformers
|
transformers
|
||||||
umap-learn
|
umap-learn
|
||||||
|
|||||||
@@ -28,14 +28,12 @@ xcopy /QSY .\Style-Bert-VITS2-dev\ .\Style-Bert-VITS2\
|
|||||||
rmdir /s /q Style-Bert-VITS2-dev
|
rmdir /s /q Style-Bert-VITS2-dev
|
||||||
if %errorlevel% neq 0 ( pause & popd & exit /b %errorlevel% )
|
if %errorlevel% neq 0 ( pause & popd & exit /b %errorlevel% )
|
||||||
|
|
||||||
@REM 仮想環境のpip requirements.txtを更新
|
@REM 仮想環境を有効化
|
||||||
|
|
||||||
echo call .\Style-Bert-VITS2\scripts\activate.bat
|
echo call .\Style-Bert-VITS2\scripts\activate.bat
|
||||||
call .\Style-Bert-VITS2\venv\Scripts\activate.bat
|
call .\Style-Bert-VITS2\venv\Scripts\activate.bat
|
||||||
if %errorlevel% neq 0 ( pause & popd & exit /b %errorlevel% )
|
if %errorlevel% neq 0 ( pause & popd & exit /b %errorlevel% )
|
||||||
|
|
||||||
pause
|
|
||||||
|
|
||||||
@REM pyopenjtalk-prebuiltやpyopenjtalkが入っていたら削除
|
@REM pyopenjtalk-prebuiltやpyopenjtalkが入っていたら削除
|
||||||
echo python -m pip uninstall -y pyopenjtalk-prebuilt pyopenjtalk
|
echo python -m pip uninstall -y pyopenjtalk-prebuilt pyopenjtalk
|
||||||
python -m pip uninstall -y pyopenjtalk-prebuilt pyopenjtalk
|
python -m pip uninstall -y pyopenjtalk-prebuilt pyopenjtalk
|
||||||
|
|||||||
Reference in New Issue
Block a user