def _transcribe_audio(self, audio_path):
    """Convert audio file to text using Google Speech Recognition"""
    try:
        # Check if file exists
        if not os.path.exists(audio_path):
            logger.error(f"Audio file not found: {audio_path}")
            return None
            
        logger.info(f"Converting audio file: {audio_path}")
        
        # Initialize the recognizer
        recognizer = sr.Recognizer()
        
        # Adjust recognition settings for better accuracy
        recognizer.energy_threshold = 300  # Minimum audio energy for recording
        recognizer.dynamic_energy_threshold = True  # Adjust for ambient noise
        recognizer.pause_threshold = 0.8  # Seconds of non-speaking audio
        
        # Convert audio format to WAV if needed
        try:
            audio = AudioSegment.from_file(audio_path)
            wav_path = audio_path.rsplit('.', 1)[0] + '.wav'
            audio.export(wav_path, format='wav')
            audio_path = wav_path
            logger.info(f"Converted audio to WAV: {wav_path}")
        except Exception as e:
            logger.warning(f"Audio conversion failed, using original file: {str(e)}")
        
        # Process the audio file
        with sr.AudioFile(audio_path) as source:
            # Apply noise reduction
            recognizer.adjust_for_ambient_noise(source, duration=0.5)
            
            # Record the audio
            audio_data = recognizer.record(source)
            
        # Attempt transcription with Google Speech Recognition
        try:
            transcription = recognizer.recognize_google(
                audio_data,
                language="en-US"  # Specify English language
            )
            logger.info(f"Successfully transcribed audio: {transcription[:50]}...")
            return transcription
        except sr.UnknownValueError:
            logger.error("Google Speech Recognition could not understand the audio")
            return ""
        except sr.RequestError as e:
            logger.error(f"Could not request results from Google Speech Recognition service; {str(e)}")
            return ""
    except Exception as e:
        logger.error(f"Error in transcription: {str(e)}")
        return ""