Spaces:
Runtime error
Runtime error
import os | |
from pathlib import Path | |
import tempfile | |
import gradio as gr | |
from moviepy.editor import VideoFileClip, AudioFileClip | |
allowed_medias = [".mp3", ".wav", ".ogg"] | |
def update(file,dclass): | |
if dclass == "": | |
raise gr.Error("请输入舞蹈类型.") | |
if dappear == "": | |
raise gr.Error("请输入人物外观.") | |
file_path = Path(file.name) | |
info = {} | |
info["size"] = os.path.getsize(file_path) | |
info["name"] = file_path.name | |
print(file_path.name) | |
file_extension = file_path.suffix | |
info["type"] = "audio" | |
audio = AudioFileClip(file.name) | |
info["duration"] = audio.duration | |
info["audio_channels"] = audio.nchannels | |
filename = file_path.name | |
###### | |
audio.close() | |
#info为音频信息 | |
videopath="myCoolSong.mp4" | |
#返回视频 | |
if info["size"] > 100000000: | |
raise gr.Error( | |
"Please make sure all files are less than 100MB in size." | |
) | |
return videopath | |
with gr.Blocks() as demo: | |
gr.Markdown( | |
""" | |
# <span style="margin-right: 0.3rem;">🏞</span>音频自动生成舞蹈 | |
上传音频,系统会自动生成对应的舞蹈 | |
""", | |
elem_id="header", | |
) | |
with gr.Row(): | |
with gr.Column(): | |
user_file = gr.File( | |
file_count="single", label="音频文件", keep_filename=True, | |
file_types=allowed_medias | |
) | |
dclass=gr.Dropdown(["流行", "民族", "混合"], label="舞蹈类型", info="") | |
dappear=gr.Dropdown(["舞蹈服", "休闲服", "混合"], label="人物外观", info="") | |
number = gr.Slider(minimum=-0, maximum=20, value=1, step=1, | |
interactive=True, label="人物数量") | |
btn = gr.Button("Run", label="Run") | |
with gr.Column(): | |
generated_video = gr.Video( | |
interactive=False, label="舞蹈视频", include_audio=True | |
) | |
# generated_command = gr.Markdown() | |
btn.click( | |
fn=update, | |
inputs=[user_file, dclass], | |
outputs=[generated_video] | |
) | |
if __name__ == "__main__": | |
demo.launch() | |