speaker / app.py
QLWD's picture
Update app.py
913c46d verified
raw
history blame
1.26 kB
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()