Fix app.py for demo
Browse files
app.py
CHANGED
@@ -222,7 +222,23 @@ def tts_fn(
|
|
222 |
emotion,
|
223 |
emotion_weight,
|
224 |
):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
225 |
if is_hf_spaces and len(text) > limit:
|
|
|
226 |
raise Exception(f"文字数が{limit}文字を超えています")
|
227 |
|
228 |
assert model_holder.current_model is not None
|
@@ -248,6 +264,7 @@ def tts_fn(
|
|
248 |
|
249 |
end_time = datetime.datetime.now()
|
250 |
duration = (end_time - start_time).total_seconds()
|
|
|
251 |
return f"Success, time: {duration} seconds.", (sr, audio)
|
252 |
|
253 |
|
@@ -317,35 +334,19 @@ example_hf_spaces = [
|
|
317 |
["あはははっ!この漫画めっちゃ笑える、見てよこれ、ふふふ、あはは。", "JP"],
|
318 |
["あなたがいなくなって、私は一人になっちゃって、泣いちゃいそうなほど悲しい。", "JP"],
|
319 |
["深層学習の応用により、感情やアクセントを含む声質の微妙な変化も再現されている。", "JP"],
|
|
|
|
|
|
|
|
|
|
|
320 |
]
|
321 |
|
322 |
initial_md = """
|
323 |
-
# Style-Bert-VITS2
|
324 |
|
325 |
-
|
326 |
-
"""
|
327 |
|
328 |
-
|
329 |
-
下のように`model_assets`ディレクトリの中にモデルファイルたちを置いてください。
|
330 |
-
```
|
331 |
-
model_assets
|
332 |
-
├── your_model
|
333 |
-
│ ├── config.json
|
334 |
-
│ ├── your_model_file1.safetensors
|
335 |
-
│ ├── your_model_file2.safetensors
|
336 |
-
│ ├── ...
|
337 |
-
│ └── style_vectors.npy
|
338 |
-
└── another_model
|
339 |
-
├── ...
|
340 |
-
```
|
341 |
-
各モデルにはファイルたちが必要です:
|
342 |
-
- `config.json`:学習時の設定ファイル
|
343 |
-
- `*.safetensors`:学習済みモデルファイル(1つ以上が必要、複数可)
|
344 |
-
- `style_vectors.npy`:スタイルベクトルファイル
|
345 |
-
|
346 |
-
上2つは`Train.bat`による学習で自動的に正しい位置に保存されます。`style_vectors.npy`は`Style.bat`を実行して指示に従って生成してください。
|
347 |
-
|
348 |
-
TODO: 現在のところはspeaker_id = 0に固定しており複数話者の合成には対応していません。
|
349 |
"""
|
350 |
|
351 |
style_md = """
|
@@ -400,8 +401,6 @@ if __name__ == "__main__":
|
|
400 |
|
401 |
with gr.Blocks(theme="NoCrypt/miku") as app:
|
402 |
gr.Markdown(initial_md)
|
403 |
-
with gr.Accordion(label="使い方", open=False):
|
404 |
-
gr.Markdown(how_to_md)
|
405 |
with gr.Row():
|
406 |
with gr.Column():
|
407 |
with gr.Row():
|
|
|
222 |
emotion,
|
223 |
emotion_weight,
|
224 |
):
|
225 |
+
logger.info(f"Start TTS:\n{text}")
|
226 |
+
logger.info(f"Language: {language}")
|
227 |
+
logger.info(f"Reference audio path: {reference_audio_path}")
|
228 |
+
logger.info(f"SDP ratio: {sdp_ratio}")
|
229 |
+
logger.info(f"Noise scale: {noise_scale}")
|
230 |
+
logger.info(f"Noise scale W: {noise_scale_w}")
|
231 |
+
logger.info(f"Length scale: {length_scale}")
|
232 |
+
logger.info(f"Line split: {line_split}")
|
233 |
+
logger.info(f"Split interval: {split_interval}")
|
234 |
+
logger.info(f"Style text: {style_text}")
|
235 |
+
logger.info(f"Style weight: {style_weight}")
|
236 |
+
logger.info(f"Use style text: {use_style_text}")
|
237 |
+
logger.info(f"Emotion: {emotion}")
|
238 |
+
logger.info(f"Emotion weight: {emotion_weight}")
|
239 |
+
|
240 |
if is_hf_spaces and len(text) > limit:
|
241 |
+
logger.error(f"文字数が{limit}文字を超えています")
|
242 |
raise Exception(f"文字数が{limit}文字を超えています")
|
243 |
|
244 |
assert model_holder.current_model is not None
|
|
|
264 |
|
265 |
end_time = datetime.datetime.now()
|
266 |
duration = (end_time - start_time).total_seconds()
|
267 |
+
logger.info(f"End TTS, duration: {duration} seconds")
|
268 |
return f"Success, time: {duration} seconds.", (sr, audio)
|
269 |
|
270 |
|
|
|
334 |
["あはははっ!この漫画めっちゃ笑える、見てよこれ、ふふふ、あはは。", "JP"],
|
335 |
["あなたがいなくなって、私は一人になっちゃって、泣いちゃいそうなほど悲しい。", "JP"],
|
336 |
["深層学習の応用により、感情やアクセントを含む声質の微妙な変化も再現されている。", "JP"],
|
337 |
+
[
|
338 |
+
"Speech synthesis is the artificial production of human speech. A computer system used for this purpose is called a speech synthesizer, and can be implemented in software or hardware products.",
|
339 |
+
"EN",
|
340 |
+
],
|
341 |
+
["语音合成是人工制造人类语音。用于此目的的计算机系统称为语音合成器,可以通过软件或硬件产品实现。", "ZH"],
|
342 |
]
|
343 |
|
344 |
initial_md = """
|
345 |
+
# Style-Bert-VITS2 JVNVコーパスデモ
|
346 |
|
347 |
+
怒り・悲しみ・喜び等の感情スタイルを強弱付きで制御できる、[Style-Bert-VITS2](https://github.com/litagin02/Style-Bert-VITS2)のデモです。
|
|
|
348 |
|
349 |
+
このデモでは[jvnvのモデル](https://huggingface.co/litagin/style_bert_vits2_jvnv)を使っており、[JVNVコーパス(言語音声と非言語音声を持つ日本語感情音声コーパス)](https://sites.google.com/site/shinnosuketakamichi/research-topics/jvnv_corpus)で学習されたモデルです。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
350 |
"""
|
351 |
|
352 |
style_md = """
|
|
|
401 |
|
402 |
with gr.Blocks(theme="NoCrypt/miku") as app:
|
403 |
gr.Markdown(initial_md)
|
|
|
|
|
404 |
with gr.Row():
|
405 |
with gr.Column():
|
406 |
with gr.Row():
|