| | import pytest |
| | from scipy.io import wavfile |
| |
|
| | from style_bert_vits2.constants import BASE_DIR, Languages |
| | from style_bert_vits2.tts_model import TTSModelHolder |
| |
|
| |
|
| | def synthesize(device: str = "cpu"): |
| |
|
| | |
| | model_holder = TTSModelHolder(BASE_DIR / "model_assets", device) |
| | if len(model_holder.models_info) > 0: |
| |
|
| | |
| | for model_info in model_holder.models_info: |
| | if model_info.name == "jvnv-F2-jp": |
| | |
| | for style in model_info.styles: |
| |
|
| | |
| | model = model_holder.get_model(model_info.name, model_info.files[0]) |
| | model.load() |
| | sample_rate, audio_data = model.infer( |
| | "あらゆる現実を、すべて自分のほうへねじ曲げたのだ。", |
| | |
| | language=Languages.JP, |
| | |
| | speaker_id=0, |
| | |
| | sdp_ratio=0.4, |
| | |
| | style=style, |
| | |
| | style_weight=6.0, |
| | ) |
| |
|
| | |
| | (BASE_DIR / "tests/wavs").mkdir(exist_ok=True, parents=True) |
| | wav_file_path = BASE_DIR / f"tests/wavs/{style}.wav" |
| | with open(wav_file_path, "wb") as f: |
| | wavfile.write(f, sample_rate, audio_data) |
| |
|
| | |
| | assert wav_file_path.exists() |
| | |
| | else: |
| | pytest.skip("音声合成モデルが見つかりませんでした。") |
| |
|
| |
|
| | def test_synthesize_cpu(): |
| | synthesize(device="cpu") |
| |
|
| |
|
| | |
| | |
| | |
| |
|