bipinsaha/chatPDF
0
1import moviepy.editor as mp2import speech_recognition as sr3import os4 5def transcribe_audio_chunk(audio_chunk):6 recognizer = sr.Recognizer()7 with sr.AudioFile(audio_chunk) as source:8 audio_data = recognizer.record(source)9 10 try:11 text_result = recognizer.recognize_google(audio_data, language='en-US')12 return text_result13 except sr.UnknownValueError:14 print("Speech Recognition could not understand audio")15 return ""16 except sr.RequestError as e:17 print(f"Could not request results from Google Speech Recognition service; {e}")18 return ""19 20def transcribe_video(video_path):21 # Step 1: Extract audio from the video22 video_clip = mp.VideoFileClip(video_path)23 audio_clip = video_clip.audio24 audio_clip.write_audiofile("temp_audio.wav")25 26 # Step 2: Split the audio into smaller chunks (e.g., 10 seconds each)27 chunk_duration = 10 # in seconds28 total_duration = audio_clip.duration29 chunk_paths = []30 31 for start_time in range(0, int(total_duration), chunk_duration):32 end_time = min(start_time + chunk_duration, total_duration)33 chunk_path = f"temp_audio_chunk_{start_time}_{end_time}.wav"34 audio_chunk = audio_clip.subclip(start_time, end_time)35 audio_chunk.write_audiofile(chunk_path)36 chunk_paths.append(chunk_path)37 38 # Step 3: Transcribe each audio chunk39 transcribed_texts = []40 for chunk_path in chunk_paths:41 text_result = transcribe_audio_chunk(chunk_path)42 transcribed_texts.append(text_result)43 44 # Step 4: Concatenate the transcribed texts45 final_transcription = " ".join(transcribed_texts)46 print("Transcription:\n", final_transcription)47 48 # Clean up temporary files49 audio_clip.close()50 video_clip.close()51 os.remove("temp_audio.wav")52 for chunk_path in chunk_paths:53 os.remove(chunk_path)54 55# Example usage56video_path = "C:/Users/HP/Downloads/Video/1.mp4"57transcribe_video(video_path)58 