Spaces:
Running
Running
log, add link
Browse files- app.py +24 -5
- requirements.txt +1 -1
app.py
CHANGED
|
@@ -5,9 +5,9 @@ from pathlib import Path
|
|
| 5 |
from typing import List, Optional
|
| 6 |
|
| 7 |
import gradio as gr
|
| 8 |
-
import librosa
|
| 9 |
import numpy as np
|
| 10 |
import pandas as pd
|
|
|
|
| 11 |
|
| 12 |
DATA_CSV = Path("data.csv")
|
| 13 |
SAMPLES_ROOT = Path("./samples")
|
|
@@ -92,6 +92,7 @@ def on_tts_pick(speaker: str, idx: int | str):
|
|
| 92 |
except Exception:
|
| 93 |
return None
|
| 94 |
p = tts_path_for(speaker, i)
|
|
|
|
| 95 |
return p if p else None
|
| 96 |
|
| 97 |
|
|
@@ -101,6 +102,9 @@ def on_guess_pick(
|
|
| 101 |
if num is None or num == "":
|
| 102 |
return None
|
| 103 |
p = guess_path_for(speaker, str(num), resample)
|
|
|
|
|
|
|
|
|
|
| 104 |
return p
|
| 105 |
|
| 106 |
|
|
@@ -111,19 +115,25 @@ md = """
|
|
| 111 |
|
| 112 |
自信が1.0のキャラ73キャラについてはほぼ確実だと思われます。0.9以上のものも信頼できるものが多いと思われます。
|
| 113 |
|
| 114 |
-
|
|
|
|
| 115 |
|
|
|
|
| 116 |
1. 表からキャラクター名を選択します
|
| 117 |
2. 左側に、にじボイスでの音声例が3つ表示されます
|
| 118 |
3. 右側に、予想された声優名が表示され、似た声の音声例をいくつか再生できます
|
| 119 |
4. 表の右上の検索ボックスで検索もできます
|
|
|
|
| 120 |
|
| 121 |
-
|
| 122 |
-
|
| 123 |
- この結果は、あくまで音声が似ている声優を機械的に予想したものであり、にじボイスがこれらの声優のデータを用いて学習しているか、または学習時に声優さんの許可を得ているかを示すものではありません
|
| 124 |
- 特に自信度が1.0より低い場合で、あまり似ていない場合や、より似ている声優さんがいる場合もあります
|
| 125 |
- なお、リンク先の声優情報内では複数の名義が掲載されている場合がありますが、これは何故か声がすごく似ているだけであって、同一人物であると主張するものではありません
|
| 126 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 127 |
"""
|
| 128 |
|
| 129 |
|
|
@@ -148,6 +158,12 @@ def build_demo(csv_path: Path):
|
|
| 148 |
|
| 149 |
with gr.Blocks(title="にじボイスのキャラと声優さんの対応表デモ") as demo:
|
| 150 |
gr.Markdown(md)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 151 |
|
| 152 |
table = gr.Dataframe(
|
| 153 |
value=display_df,
|
|
@@ -213,6 +229,9 @@ def build_demo(csv_path: Path):
|
|
| 213 |
if guess_default
|
| 214 |
else None
|
| 215 |
)
|
|
|
|
|
|
|
|
|
|
| 216 |
|
| 217 |
return (
|
| 218 |
speaker, # Textbox
|
|
|
|
| 5 |
from typing import List, Optional
|
| 6 |
|
| 7 |
import gradio as gr
|
|
|
|
| 8 |
import numpy as np
|
| 9 |
import pandas as pd
|
| 10 |
+
from loguru import logger
|
| 11 |
|
| 12 |
DATA_CSV = Path("data.csv")
|
| 13 |
SAMPLES_ROOT = Path("./samples")
|
|
|
|
| 92 |
except Exception:
|
| 93 |
return None
|
| 94 |
p = tts_path_for(speaker, i)
|
| 95 |
+
logger.info(f"on_tts_pick: speaker={speaker}, idx={idx} -> {p}")
|
| 96 |
return p if p else None
|
| 97 |
|
| 98 |
|
|
|
|
| 102 |
if num is None or num == "":
|
| 103 |
return None
|
| 104 |
p = guess_path_for(speaker, str(num), resample)
|
| 105 |
+
logger.info(
|
| 106 |
+
f"on_guess_pick: speaker={speaker}, num={num}, resample={resample} -> {p}"
|
| 107 |
+
)
|
| 108 |
return p
|
| 109 |
|
| 110 |
|
|
|
|
| 115 |
|
| 116 |
自信が1.0のキャラ73キャラについてはほぼ確実だと思われます。0.9以上のものも信頼できるものが多いと思われます。
|
| 117 |
|
| 118 |
+
対応表データは [ここ](https://huggingface.co/spaces/litagin/nijivoice_voice_actors/resolve/main/data.csv) からダウンロードできます。
|
| 119 |
+
"""
|
| 120 |
|
| 121 |
+
howto_md = """
|
| 122 |
1. 表からキャラクター名を選択します
|
| 123 |
2. 左側に、にじボイスでの音声例が3つ表示されます
|
| 124 |
3. 右側に、予想された声優名が表示され、似た声の音声例をいくつか再生できます
|
| 125 |
4. 表の右上の検索ボックスで検索もできます
|
| 126 |
+
"""
|
| 127 |
|
| 128 |
+
note_md = """
|
|
|
|
| 129 |
- この結果は、あくまで音声が似ている声優を機械的に予想したものであり、にじボイスがこれらの声優のデータを用いて学習しているか、または学習時に声優さんの許可を得ているかを示すものではありません
|
| 130 |
- 特に自信度が1.0より低い場合で、あまり似ていない場合や、より似ている声優さんがいる場合もあります
|
| 131 |
- なお、リンク先の声優情報内では複数の名義が掲載されている場合がありますが、これは何故か声がすごく似ているだけであって、同一人物であると主張するものではありません
|
| 132 |
+
"""
|
| 133 |
+
|
| 134 |
+
link_md = """
|
| 135 |
+
- [Zennでの技術記事](https://zenn.dev/litagin/articles/325154e1bf1f03)
|
| 136 |
+
- [noteの所感記事](https://note.com/litagin/n/nc5f9dd107710)
|
| 137 |
"""
|
| 138 |
|
| 139 |
|
|
|
|
| 158 |
|
| 159 |
with gr.Blocks(title="にじボイスのキャラと声優さんの対応表デモ") as demo:
|
| 160 |
gr.Markdown(md)
|
| 161 |
+
with gr.Accordion("使い方", open=False):
|
| 162 |
+
gr.Markdown(howto_md)
|
| 163 |
+
with gr.Accordion("注意事項", open=False):
|
| 164 |
+
gr.Markdown(note_md)
|
| 165 |
+
with gr.Accordion("関連リンク", open=False):
|
| 166 |
+
gr.Markdown(link_md)
|
| 167 |
|
| 168 |
table = gr.Dataframe(
|
| 169 |
value=display_df,
|
|
|
|
| 229 |
if guess_default
|
| 230 |
else None
|
| 231 |
)
|
| 232 |
+
logger.info(
|
| 233 |
+
f"on_row_select_local: speaker={speaker}, tts_file={tts_file}, guess_default={guess_default}, guess_file={guess_file}"
|
| 234 |
+
)
|
| 235 |
|
| 236 |
return (
|
| 237 |
speaker, # Textbox
|
requirements.txt
CHANGED
|
@@ -1 +1 @@
|
|
| 1 |
-
|
|
|
|
| 1 |
+
loguru
|