Improve: Variation of text-to-speech during testing
This commit is contained in:
@@ -4,6 +4,7 @@ import pytest
|
||||
from scipy.io import wavfile
|
||||
|
||||
from style_bert_vits2.constants import BASE_DIR, Languages
|
||||
from style_bert_vits2.logging import logger
|
||||
from style_bert_vits2.tts_model import TTSModelHolder
|
||||
|
||||
|
||||
@@ -53,10 +54,22 @@ def synthesize(
|
||||
|
||||
# すべてのスタイルに対して音声合成を実行
|
||||
for style in model_info.styles:
|
||||
logger.info(f"Testing style: {style}")
|
||||
|
||||
# テストに使用するサンプルテキスト
|
||||
sample_texts = [
|
||||
"こんにちは、初めまして。あなたの名前はなんていうの?",
|
||||
"桜の樹の下には屍体が埋まっている!これは信じていいことなんだよ。",
|
||||
"あなたがいなくなって、私は一人になっちゃって、泣いちゃいそうなほど悲しい。",
|
||||
"音声合成は、機械学習を活用して、テキストから人の声を再現する技術です。この技術は、言語の構造を解析し、それに基づいて音声を生成します。",
|
||||
]
|
||||
|
||||
# 各サンプルテキストに対して音声合成を実行
|
||||
for i, text in enumerate(sample_texts):
|
||||
|
||||
# 音声合成を実行
|
||||
sample_rate, audio_data = model.infer(
|
||||
"あらゆる現実を、すべて自分のほうへねじ曲げたのだ。",
|
||||
text,
|
||||
# 言語 (JP, EN, ZH / JP-Extra モデルの場合は JP のみ)
|
||||
language=Languages.JP,
|
||||
# 話者 ID (音声合成モデルに複数の話者が含まれる場合のみ必須、単一話者のみの場合は 0)
|
||||
@@ -70,12 +83,8 @@ def synthesize(
|
||||
)
|
||||
|
||||
# 音声データを保存
|
||||
(BASE_DIR / f"tests/wavs/{model_info.name}").mkdir(
|
||||
exist_ok=True, parents=True
|
||||
)
|
||||
wav_file_path = (
|
||||
BASE_DIR / f"tests/wavs/{model_info.name}/{style}.wav"
|
||||
)
|
||||
(BASE_DIR / f"tests/wavs/{model_info.name}").mkdir(exist_ok=True, parents=True) # fmt: skip
|
||||
wav_file_path = BASE_DIR / f"tests/wavs/{model_info.name}/{style}_{i+1:02d}.wav" # fmt: skip
|
||||
with open(wav_file_path, "wb") as f:
|
||||
wavfile.write(f, sample_rate, audio_data)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user