sps / app.py
GAS17's picture
Update app.py
e210bfc verified
raw
history blame
1.93 kB
import replicate
import httpx
# Funci贸n para transcribir el audio
def transcribe_audio(audio_file):
# Cargar el archivo de audio completo
audio = AudioSegment.from_file(audio_file)
audio_duration_minutes = len(audio) / (1000 * 60) # Duraci贸n en minutos
# Si el audio dura m谩s de 10 minutos, dividirlo en segmentos de 10 minutos
if audio_duration_minutes > 10:
segments = dividir_audio(audio_file, segment_duration_ms=10 * 60 * 1000) # 10 minutos en milisegundos
else:
segments = [audio_file] # Si es menor de 10 minutos, no dividir
# Almacenar todas las transcripciones
all_transcriptions = []
# Procesar cada segmento individualmente
for segment_path in segments:
with open(segment_path, "rb") as audio:
# Usar httpx.Client para aumentar el tiempo de espera
with httpx.Client(timeout=300) as client: # Aumenta el tiempo de espera a 300 segundos
output = replicate.run(
"vaibhavs10/incredibly-fast-whisper:3ab86df6c8f54c11309d4d1f930ac292bad43ace52d10c80d87eb258b3c9f79c",
input={
"task": "transcribe",
"audio": audio, # El archivo de audio cargado en Streamlit
"language": "None", # Detecta autom谩ticamente el idioma
"timestamp": "chunk", # Incluye marcas de tiempo
"batch_size": 64,
"diarise_audio": False
},
client=client # Usar el cliente con timeout ajustado
)
# Almacenar la transcripci贸n del segmento
all_transcriptions.append(output['text'])
# Combina todas las transcripciones en una sola cadena
full_transcription = "\n".join(all_transcriptions)
return full_transcription # Devuelve la transcripci贸n completa