Spaces:
Runtime error
Runtime error
File size: 2,431 Bytes
797c88d 8bbfd5a 94a8d6e 8bbfd5a 797c88d 8bbfd5a 797c88d 94a8d6e 797c88d 417bff0 8bbfd5a a210a37 417bff0 a210a37 417bff0 8bbfd5a 797c88d 8bbfd5a 797c88d 94a8d6e 8bbfd5a 797c88d 417bff0 797c88d 8bbfd5a a9a6044 8bbfd5a 797c88d b74cca4 797c88d 94a8d6e 797c88d 94a8d6e cefe7c3 e5d8d3f 8bbfd5a 94a8d6e 6153e9b 28e4156 947202f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | import gradio as gr
from pydub import AudioSegment
import tempfile
import os
def processar_audio(trilha, faixa2, volume_trilha, tonalidade_narracao):
trilha = AudioSegment.from_file(trilha.name)
faixa2 = AudioSegment.from_file(faixa2.name)
# Ajustar a tonalidade da narração
faixa2_tonalidade_ajustada = faixa2._spawn(faixa2.raw_data, overrides={
"frame_rate": int(faixa2.frame_rate * (2 ** (tonalidade_narracao / 12.0)))
})
# 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_tonalidade_ajustada))
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_tonalidade_ajustada = faixa2_tonalidade_ajustada[:duracao_total]
# Sobrepor as duas faixas
trilha_mesclada = trilha_com_volume.overlay(faixa2_tonalidade_ajustada, position=0)
# Determinar o ponto de corte (após o final da faixa 2)
ponto_de_corte = len(faixa2_tonalidade_ajustada)
print(f'Ponto de corte: {ponto_de_corte}')
# Cortar a trilha após o ponto de corte
trilha_cortada = trilha_mesclada[:ponto_de_corte]
# Criar um arquivo temporário para salvar a trilha cortada
_, temp_path = tempfile.mkstemp(suffix=".mp3")
trilha_cortada.export(temp_path, format="mp3")
return temp_path
# Adicionar o CSS
interface_css = """
.dark {
--body-background-fill: #232735;
--background-fill-secondary: #232735
--body-text-color: var(--neutral-100);
--border-color-primary: #576274;
--block-border-color: #576274;
--block-background-fill: #2E3342;
--input-background-fill: #2E3342
/* ... (adicionar todas as outras variáveis) ... */
}
body {
background-color: var(--body-background-fill);
color: var(--body-text-color);
}
.left-align-textbox {
text-align: left;
}
/* Pode adicionar estilos específicos para outros elementos conforme necessário */
"""
iface = gr.Interface(
fn=processar_audio,
inputs=[
gr.File(label="Trilha"),
gr.Slider(0, 100, 27, label="Volume da Trilha"),
gr.File(label="Faixa de Narração"),
gr.Slider(-12, 12, 0, label="Tonalidade da Narração (em semitons)")
],
outputs=gr.Audio(label="Resultado"),
css=interface_css
) |