import gradio as gr from pydub import AudioSegment import os def processar_audio(trilha, faixa2, volume_trilha): trilha = AudioSegment.from_file(trilha.name) faixa2 = AudioSegment.from_file(faixa2.name) # Adicionar um segundo de silêncio no início da faixa2 faixa2 = AudioSegment.silent(duration=1000) + faixa2 # Adicionar um segundo de atraso no final da trilha trilha = trilha + AudioSegment.silent(duration=2000) # Ajustar o volume da trilha trilha_com_volume = trilha - volume_trilha # Obter a duração total das faixas duracao_total = max(len(trilha_com_volume), len(faixa2)) print(f'Duração total: {duracao_total}') # Ajustar o tamanho das faixas para a duração total trilha_com_volume = trilha_com_volume[:duracao_total] faixa2 = faixa2[:duracao_total] # Sobrepor as duas faixas trilha_mesclada = trilha_com_volume.overlay(faixa2, position=0) # Determinar o ponto de corte (após o final da faixa 2) ponto_de_corte = len(faixa2) print(f'Ponto de corte: {ponto_de_corte}') # Cortar a trilha após o ponto de corte trilha_cortada = trilha_mesclada[:ponto_de_corte] # Exportar o resultado resultado_path = "resultado.mp3" trilha_cortada.export(resultado_path, format="mp3") # Adicionar reprodução do áudio no Gradio resultado_audio = gr.Audio(resultado_path) return resultado_audio iface = gr.Interface( fn=processar_audio, inputs=[ gr.File(label="Trilha"), gr.File(label="Faixa de Narração"), gr.Slider(0, 100, 27, label="Volume da Trilha") ], outputs=gr.Audio(label="Resultado") ) if __name__ == "__main__": iface.launch()