我正在用Python处理一些.mp4文件。我正在使用wave
、math
、contextlib
、speech_recognition
和AudioFileClip
库。我有很长的文件(视频+音频)。我想让Python在5分钟内将文件剪切成新文件(仍在.mp4中),然后让Python转录每一个文件。到目前为止,我能够编写以下代码来转录初始(长)文件:
import wave, math, contextlib
import speech_recognition as sr
from moviepy.editor import AudioFileClip
import os
os.chdir(" ... my path ...") # e.g. C:/Users/User/Desktop
FILE = "file_name" # e.g. video1 (without extension)
transcribed_audio_file_name = FILE + "_transcribed_speech.wav"
mp4_video_file_name = FILE + ".mp4"
audioclip = AudioFileClip(mp4_video_file_name)
audioclip.write_audiofile(transcribed_audio_file_name)
with contextlib.closing(wave.open(transcribed_audio_file_name,'r')) as f:
frames = f.getnframes()
rate = f.getframerate()
duration = frames / float(rate)
total_duration = math.ceil(duration / 60)
r = sr.Recognizer()
for i in range(0, total_duration):
with sr.AudioFile(transcribed_audio_file_name) as source:
audio = r.record(source, offset=i*60, duration=60)
f = open(FILE+"_transcription.py", "a")
f.write(r.recognize_google(audio, language="en-US"))
f.write(" ")
print(r.recognize_google(audio, language="en-US"))
f.close()
print("Transcription DONE.")
我如何才能添加一个部分,在其中我将文件“video”切成5分钟的片段,保存为文件夹中的.mp4,逐个处理(并转录)每个片段? 提前谢谢你
您可以让python使用FFmpeg bash命令行工具来操作视频。 FFmpeg split the video into 10-minute chunks python操作系统模块可以执行命令行命令
src:Unix Stack Exchange 您可以像这样使用
os.system()
:我建议使用名为
movie.py
的库第1步:
使用安装movie.py
步骤2:
确定剪辑的特定长度:
假设您尝试剪辑的原始视频长度为20分钟,您希望创建3个较小的视频(每个5分钟)
创建times.txt文件并放置:
步骤3:
编写Python脚本:
现在是有趣的部分,编写代码
代码解释
步骤4
运行程序
使用以下命令运行程序:
希望有帮助
相关问题 更多 >
编程相关推荐