实现这个功能要分成三个步骤:下载Youtube文件,分离文件音频和音频转文本。
下载Youtube文件
通过pytube模块下载Youtube文件。
from pytube import YouTube
def Download(link):
youtubeObject = YouTube(link)
youtubeObject = youtubeObject.streams.get_lowest_resolution()
try:
videoFilePath = youtubeObject.download()
print("Download is completed successfully")
except:
print("An error has occurred")
return videoFilePath
分离文件音频
通过moviepy模块提取文件的音频数据并转成mp3格式的文件。
import moviepy.editor as mp
from pathlib import Path
def VideoToAudio(videoFilePath):
clip = mp.VideoFileClip(videoFilePath)
audioFilePath = Path(videoFilePath).with_suffix(".mp3")
clip.audio.write_audiofile(audioFilePath)
if (Path(audioFilePath).exists()):
return audioFilePath.as_posix()
else:
return ""
音频转文本
通过whisper模块加载small模型转换音频文件成文本。
import whisper
def AudioToText(audioFilePath):
model = whisper.load_model("small")
result = model.transcribe(audio=audioFilePath, task = 'translate')
print(result["text"])