import gradio as gr from pydub import AudioSegment # 处理音频函数 def combine_audio_with_time(target_audio, mixed_audio): # 加载目标说话人的样本音频 target_audio_segment = AudioSegment.from_wav(target_audio.name) # 加载混合音频 mixed_audio_segment = AudioSegment.from_wav(mixed_audio.name) # 记录目标说话人音频的时间点(精确到0.01秒) target_start_time = len(mixed_audio_segment) / 1000 # 秒为单位,精确到 0.01 秒 # 将目标说话人的音频片段添加到混合音频的最后 final_audio = mixed_audio_segment + target_audio_segment # 保存拼接后的音频并返回时间点 final_audio.export("final_output.wav", format="wav") return "final_output.wav", target_start_time # Gradio 接口 interface = gr.Interface( fn=combine_audio_with_time, inputs=[ gr.File(label="目标说话人音频"), # 上传目标说话人音频 gr.File(label="混合音频") # 上传混合音频 ], outputs=[ gr.Audio(label="输出音频"), # 返回拼接后的音频文件 gr.Textbox(label="目标音频起始时间") # 显示目标音频的起始时间 ], live=False ) interface.launch()