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}") | |