Pythonは素早くpptを吹き替え動画の授業方法に作ります。


はじめに
老猿はこれまでビデオの授業を録画したことがありませんでしたが、最近は1週間に1つのビデオの授業を録画しなければならないという要望がありました。そのために3日間をかけてpptを準備しました。1時間で20分以上の授業を録画しました。
この仕事は初めてなので、授業中はまだ緊張しています。録画した音声には様々な繰り返しがあり、あってはならない中断があり、二ページの切り替え時に授業の説明が速すぎて、一部の言葉の発音が不正確であるなどの問題があり、効果はめちゃくちゃです。
これらの問題を解決するために、クリップソフトを使って編集しました。クリップだけで2日間かかりましたが、効果はやはりよくないと思いました。最後に、元の録画材料を捨てて、pptを画像にして、ページごとに録音して、合成ソフトを使って画像とオーディオを一つずつ合わせて製作する方法を思いつきました。40分以上かけて一ページずつ録音してオーディションしましたが、制作と出力に時間がかかりました。やっと最後の締め切りに間に合いました。最初からこの方法を使えば、ほとんどの時間が省けます。
上記の過程に基づいて、老猿は最後の処理過程は合成ソフトではなく、Moviepyを使ったほうがいいと思いますか?今日はMoviepyを使って合成するのがグラフィック操作インタフェースの合成ソフトよりも効果的で、オーディオとppt材料の協同問題を完璧に解決していることが分かりました。この過程について詳しく紹介します。pptビデオの授業のために、生の手を作って、動画を効率的に作る方法を提供します。
二、pptビデオ授業の制作過程
 2.1、pptを一枚の画像として保存する
pptを開けて、選択:ファイル-->を保存し、保存タイプはPNGまたはjpgに選択します。
在这里插入图片描述
をクリックして保存します。
在这里插入图片描述
「スライドごと」を選択します。
このようにして各ページのpptを画像にエクスポートすることができます。
在这里插入图片描述
関連画像は個別のディレクトリに出力され、「スライド××.png」などの形式でページごとに出力して保存されます。
2.2、ページ別に録音する
pptのページごとの内容を照らし合わせて、このページで説明した音声を携帯電話の録音ソフトなどで音声ファイルを一つずつ録音しました。次は老猿が録音したオーディオファイルのディレクトリです。
在这里插入图片描述
なお、上記録音時には、18ページと20ページを記録して2つのセグメントを作成していますが、このような処理は他のページとは異なり、プログラムで処理するのには適していません。
2.3、コードを作成して合成する
コードの説明と注釈は単独で補足説明を行わず、完全コードは以下の通りである。

from  moviepy.editor import *
import os,traceback

def isdigit(c):
    return c>='0' and c<='9'

def getPattern(patternString):
    """
    :param patternString:          ,    C        ,   :%d、%02d 
    :return:    patternString          ,       :         、   (    、   d)、         ,            None
    """
    patternIndex = patternString.index("%")
    if patternIndex<0:
        print("              :%")
        return None
    matched = False
    for patternEnd in range(patternIndex+1,len(patternString)):
        if patternString[patternEnd]in'dD':
            matched = True
            break
        else:
            if  not isdigit(patternString[patternEnd]):
                print("              ")
                return None
    if matched: return [patternString[:patternIndex],patternString[patternIndex:patternEnd+1],patternString[patternEnd+1:]]
    else:
        print("             d  ")
        return None

def composePPTImgsAndSounds(imgFilePattern,soundFilePattern,startSeq=1,endSeq=None):
    """
    :param imgFilePattern:       ,              ,    %d、%02d/%03d      
    :param soundFilePattern:      ,            ,    %d、%02d/%03d      
    :param startSeq:        ,   0 1
    :param endSeq:        ,    
    :return:     
    """
    if endSeq is None:endSeq=9999999  #             
    patterns = getPattern(imgFilePattern)
    if patterns is None:
        print('              ')
        return None
    else:
        imgPrefix,imgPattern,imgPostfix = patterns
    patterns = getPattern(soundFilePattern)
    if patterns is None:
        print('              ')
        return None
    else:
        soundPrefix, soundPattern, soundPostfix = patterns
    clips = []
    try:
        for seq in range(startSeq,endSeq):
            imgFName = f"{imgPrefix}{seq:{imgPattern[1:]}}{imgPostfix}"
            soundFName = f"{soundPrefix}{seq:{soundPattern[1:]}}{soundPostfix}"

            if os.path.exists(soundFName) and os.path.exists(imgFName):
                soundClip = AudioFileClip(soundFName)
                imgClip = ImageClip(imgFName).set_duration(soundClip.duration).set_fps(2).set_audio(soundClip)
                clips.append(imgClip)
            else:
                if seq:
                    print(f"           ,          {seq}")
                    break
                else:
                    print(f"    {imgClip}     {soundClip}   ")
                    return None

    except Exception as e:
        print(f"           :
{e}
{traceback.format_exc()}") return None print(" ....") clip = concatenate_videoclips(clips,'compose') clip.write_videofile(r"C:\temp\ppt.mp4",threads=8) print(" ") return clip composePPTImgsAndSounds(r'F:\bak\pr\ H\ \ \5G 3.9\ %d.PNG',r'C:\temp\ \p%d.m4a')
Moviepyのことが分からないなら、『PythonサウンドビデオクリップライブラリMoviePy 1.0.3中国語教程案内及び実行可能ツールダウンロード』の案内式を参考に紹介してください。
三、効果
この方式で作ったビデオは、グラフィカルインターフェース合成ソフトで作ったビデオよりも滑らかで、サイズも小さいし、制作時間ももっと短いです。大きさはたぶんグラフィカルインターフェースビデオ合成ソフトの10分の1以下で、ビデオ出力時間はグラフィカルインターフェース合成ソフトの手作り出力の4分の1です。また、手で合成クリップを行うプロセス(非熟練者は普通1~2時間)を省きました。老猿は20分間のビデオ授業で、録音、試聴及び一部の書き直し時間を含みます。全体の制作過程は70分未満です。
ただし、上記の例を18ページまで処理すると授業が終わったと考え、授業全体を処理するには、18ページと20ページのオーディオファイルを他のオーディオファイルと似たようなオーディオファイルに出力する必要があります。
四、結び
本論文では、pptビデオの授業料を素早く作成する方法を紹介しました。pptを一枚の画像に出力して、一ページずつ吹き替えして、最後にMoviepyを使って合成出力します。授業の制作は速くていいです。改ページ録音方式を採用していますので、説明の悪いところはすぐに変えられます。一度に録画してから編集するというより効果がいいです。同時に出力するビデオファイルは小さくて、出力が早いです。
以上はPythonが素早くpptを吹き替え動画の授業方法の詳細な内容に作成しました。python ppt吹き替え動画の授業資料について、他の関連記事に注目してください。