import os
from pydub import AudioSegment
from groq_module import transcribe_audio
import math


def split_audio(audio_path, chunk_length_min=10):
    audio = AudioSegment.from_file(audio_path)
    chunk_length_ms = chunk_length_min * 60 * 1000  # convert to milliseconds
    total_chunks = math.ceil(len(audio) / chunk_length_ms)
    
    audio_chunks = []
    for i in range(total_chunks):
        start = i * chunk_length_ms
        end = start + chunk_length_ms
        chunk = audio[start:end]
        chunk_path = f"temp_chunk_{i}.wav"
        chunk.export(chunk_path, format="wav")
        audio_chunks.append(chunk_path)
    
    return audio_chunks


def transcribe_large_audio(audio_path):
    chunks = split_audio(audio_path)
    full_transcription = ""
    
    for idx, chunk_path in enumerate(chunks):
        print(f"++++++++++++ INSIDE TRANSCRIBE LARGE AUDIO +++++++++")
        print(f"Transcribing chunk {idx + 1}/{len(chunks)}...")
        chunk_trans = transcribe_audio(chunk_path)
        full_transcription += chunk_trans + "\n"
        os.remove(chunk_path)  # Clean up temp files
    print(f"++++++++++++++++++TRASCRIPTION: {full_transcription}+++++++++++++++++")
    return full_transcription.strip()


