CoolFace
Apppublic

bipinsaha/chatPDF

sourceHugging Facemitupdated 3y agoView on Hugging Face
0likes
video_transcriber.py58 linesDownload Raw Back to root
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