soiz1's picture
Update app.py
866c013 verified
raw
history blame
3.11 kB
import gradio as gr
gallery_data = {"sikokumetan": {"webp": "default/sikokumetan.webp", "mp3": "default/sikokumetan.mp3"}}
def update_reference(evt: gr.SelectData):
selected_image = evt.value
for key, value in gallery_data.items():
if value["webp"] == selected_image:
return {"name": value["mp3"]} # ファイルパスの形式に変更
return {"name": ""}
if __name__ == "__main__":
description = ("Zero-shot音声変換モデル(学習不要)。ローカルでの利用方法は[GitHubリポジトリ](https://github.com/Plachtaa/seed-vc)をご覧ください。"
"参考音声が25秒を超える場合、自動的に25秒にクリップされます。"
"また、元音声と参考音声の合計時間が30秒を超える場合、元音声は分割処理されます。")
inputs = [
gr.Audio(type="filepath", label="元音声"),
gr.Audio(type="filepath", label="参考音声"),
gr.Slider(minimum=1, maximum=200, value=10, step=1, label="拡散ステップ数", info="デフォルトは10、50~100が最適な品質"),
gr.Slider(minimum=0.5, maximum=2.0, step=0.1, value=1.0, label="長さ調整", info="1.0未満で速度を上げ、1.0以上で速度を遅くします"),
gr.Slider(minimum=0.0, maximum=1.0, step=0.1, value=0.7, label="推論CFG率", info="わずかな影響があります"),
gr.Checkbox(label="F0条件付きモデルを使用", value=False, info="歌声変換には必須です"),
gr.Checkbox(label="F0自動調整", value=True, info="F0をおおよそ調整して目標音声に合わせます。F0条件付きモデル使用時にのみ有効です"),
gr.Slider(label='音程変換', minimum=-24, maximum=24, step=1, value=0, info="半音単位の音程変換。F0条件付きモデル使用時にのみ有効です"),
]
examples = [["examples/source/yae_0.wav", "examples/reference/dingzhen_0.wav", 25, 1.0, 0.7, False, True, 0],
["examples/source/jay_0.wav", "examples/reference/azuma_0.wav", 25, 1.0, 0.7, True, True, 0],
["examples/source/Wiz Khalifa,Charlie Puth - See You Again [vocals]_[cut_28sec].wav",
"examples/reference/teio_0.wav", 100, 1.0, 0.7, True, False, 0],
["examples/source/TECHNOPOLIS - 2085 [vocals]_[cut_14sec].wav",
"examples/reference/trump_0.wav", 50, 1.0, 0.7, True, False, -12],
]
with gr.Blocks() as interface:
gr.Interface(fn=voice_conversion, description=description, inputs=inputs, outputs=[
gr.Audio(label="ストリーム出力音声", streaming=True, format='mp3'),
gr.Audio(label="完全出力音声", streaming=False, format='wav')
], title="Seed Voice Conversion", examples=examples, cache_examples=False)
with gr.Row():
gallery = gr.Gallery(label="ギャラリー", show_label=True, value=[gallery_data["sikokumetan"]["webp"]])
gallery.select(update_reference, outputs=inputs[1])
interface.launch()