import json import ffmpeg from subprocess import run import gradio as gr import whisper_timestamped as whisper from transformers import pipeline model = whisper.load_model("model/small.pt", device="cpu") sentiment_analysis = pipeline("sentiment-analysis", framework="pt", model="SamLowe/roberta-base-go_emotions", use_fast=True) def analyze_sentiment(text): results = sentiment_analysis(text) sentiment_results = {result['label']: result['score'] for result in results} return sentiment_results def transcribe(audio): audio = whisper.load_audio(audio) result = whisper.transcribe(model, audio) print(json.dumps(result, indent=2, ensure_ascii=False)) sent_res = analyze_sentiment(result.text) return sent_res def video_to_audio(input_video, output_audio): audio_file = f"test.wav" run(["ffmpeg", "-i", 'test_video_1.mp4', audio_file]) response = transcribe(audio=audio_file) return response gr.Interface( fn=video_to_audio, inputs=gr.Video(), outputs=gr.Textbox() ).launch()