Spaces:
Runtime error
Runtime error
| import whisper | |
| import openai | |
| import gradio as gr | |
| from gtts import gTTS | |
| from moviepy.editor import VideoFileClip | |
| import os | |
| openai.api_key = "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" | |
| def transcribe_video(video_path): | |
| # Extract audio from video file | |
| video = VideoFileClip(video_path) | |
| audio_path = "temp_audio.wav" | |
| video.audio.write_audiofile(audio_path, codec='pcm_s16le') | |
| # Load Whisper model and transcribe audio | |
| model = whisper.load_model("base") | |
| result = model.transcribe(audio_path) | |
| transcription = result["text"] | |
| # Remove temporary audio file | |
| os.remove(audio_path) | |
| return transcription | |
| def summarize_text(text): | |
| response = openai.Completion.create( | |
| engine="text-davinci-003", | |
| prompt=f"Summarize the following text:\n\n{text}", | |
| max_tokens=150 | |
| ) | |
| summary = response.choices[0].text.strip() | |
| return summary | |
| def text_to_speech(text, language="en"): | |
| tts = gTTS(text=text, lang=language) | |
| tts.save("summary_audio.mp3") | |
| return "summary_audio.mp3" | |
| def process_video(video): | |
| # Transcribe the video | |
| transcription = transcribe_video(video) | |
| # Summarize the transcription | |
| summary = summarize_text(transcription) | |
| # Convert summary to speech | |
| audio_file = text_to_speech(summary) | |
| return transcription, summary, audio_file | |
| # Create Gradio interface | |
| iface = gr.Interface( | |
| fn=process_video, | |
| inputs=gr.Video(label="Upload Video"), | |
| outputs=[ | |
| gr.Textbox(label="Transcription"), | |
| gr.Textbox(label="Summary"), | |
| gr.Audio(label="Summary Audio") | |
| ], | |
| title="Video Transcription and Summarization", | |
| description="Upload a video file to transcribe and summarize its content." | |
| ) | |
| # Launch the interface | |
| iface.launch() |