Spaces:
Sleeping
Sleeping
import re | |
import subprocess | |
from pydub.utils import mediainfo | |
import math | |
from pydub import AudioSegment | |
def get_audio_duration(file_path): | |
try: | |
audio = AudioSegment.from_file(file_path) | |
return len(audio) / 1000 # Duração em segundos | |
except Exception as e: | |
raise ValueError(f"Error extracting duration: {e}") | |
def cut_audio(file_path, start_time, end_time, output_path="output_cut.wav"): | |
"""Corta o áudio no intervalo de tempo especificado.""" | |
try: | |
command = f"ffmpeg -y -i {file_path} -ss {start_time} -to {end_time} -acodec copy -loglevel debug {output_path}" | |
subprocess.run(command, shell=True, check=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) | |
return output_path | |
except subprocess.CalledProcessError as e: | |
# Exibe a mensagem de erro completa, incluindo o erro do FFmpeg | |
raise RuntimeError(f"Erro ao cortar o áudio: {e.stderr}") | |
def convert(file_path, format_extension): | |
file = file_path.replace("/tmp/", "") | |
ffmpeg_cmd = [ | |
"ffmpeg", | |
"-y", | |
"-i", file_path, | |
f"out_{file}" | |
] | |
subprocess.run(ffmpeg_cmd) | |
return f"out_{file}" | |
def add_silence_to_audio(file_path, start_silence=0, end_silence=0, output_path="output_with_silence.wav"): | |
"""Adiciona silêncio no início e no final do áudio usando subprocess.""" | |
try: | |
command = f"ffmpeg -y -i {file_path} -af \"adelay={start_silence*1000}|{start_silence*1000},apad=pad_dur={end_silence}\" {output_path}" | |
subprocess.run(command, shell=True, check=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) | |
return output_path | |
except subprocess.CalledProcessError as e: | |
raise RuntimeError(f"Erro ao adicionar silêncio no áudio: {e}") | |