import copy import subprocess from pytube import YouTube from scipy.signal import resample import numpy as np import pytsmod as tsm from moviepy.audio.AudioClip import AudioArrayClip from moviepy.editor import * from moviepy.video.fx.speedx import speedx from sentence_transformers import SentenceTransformer, util from transformers import pipeline, BertTokenizer, BertForNextSentencePrediction import torch import whisper subprocess.run(['apt-get', '-y', 'install', 'imagemagick']) transcriber = whisper.load_model("medium") sentence_transformer = SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2') tokenizer = BertTokenizer.from_pretrained("bert-base-cased") next_sentence_predict = BertForNextSentencePrediction.from_pretrained("bert-base-cased").eval() summarizer = pipeline("summarization", model="philschmid/bart-large-cnn-samsum") def get_youtube(video_url): # YouTubeの動画をダウンロード print("Start download video") yt = YouTube(video_url) abs_video_path = yt.streams.filter(progressive=True, file_extension='mp4').order_by('resolution').desc().first().download(filename='download.mp4', output_path='movies/') print("Success download video") print(abs_video_path) return abs_video_path def two_chnnel_to_one_channel(sample): # 音声を2チャンネルから1チャンネルに変換 left_channel = sample[:, 0] right_channel = sample[:, 1] mono_sample = (left_channel + right_channel) / 2 return mono_sample def convert_sample_rate(data, original_sr, target_sr): # 音声データのサンプリング周波数を変更 target_length = int(len(data) * target_sr / original_sr) return resample(data, target_length)