import gradio as gr # ギャラリーの画像と対応するMP3ファイル gallery_data = [ { "image": "default/sikokumetan.webp", "mp3": "default/sikokumetan.mp3" } ] # ギャラリーの画像が選択された際の処理 def on_image_select(image_path): # 画像に対応するMP3を取得 for item in gallery_data: if item["image"] == image_path: return item["mp3"] return None 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条件付きモデル使用時にのみ有効です"), ] # ギャラリーコンポーネントの追加 gallery = gr.Gallery( value=[item["image"] for item in gallery_data], # ギャラリーに表示する画像を指定 label="参考音声選択画像", interactive=True, columns=3 # 3列で表示 ) # ギャラリー画像が選択されたときにMP3を自動で設定 def update_reference_audio(selected_image): mp3_path = on_image_select(selected_image) return mp3_path # 参考音声を選択するためのインターフェースを更新 gr.Interface( fn=voice_conversion, description=description, inputs=[*inputs, gallery], # ギャラリーを追加 outputs=outputs, title="Seed Voice Conversion", examples=examples, cache_examples=False, ).launch()