```bat
@echo off
setlocal

set "work_dir=D:\doc1.current\doc.講義\00チュートリアルコース\20260613XRR"
set "tkprog_X_path=D:\git\tkProg\tkprog_COE"
set "replace_path1=D:\doc1.current\replace.ini"
set "replace_path2=D:\git\tkProg\tkprog_COE\converter\replace.ini"

set "input_script=%work_dir%\チュートリアル-XRR_jp.txt"
set "script_path=%work_dir%\チュートリアル-XRR_jp-converted.txt"

set "input_pptx=%work_dir%\チュートリアル-XRR.pptx"
set "output_pptx=%work_dir%\チュートリアル-XRR-talk.pptx"

set "output_mp4=%work_dir%\チュートリアル-XRR-talk.mp4"

set "tts=pyttsx3"
set "monologue=1"
set "voices=Haruka"
set tinterval=0.5
set speak_rate=150
set fspeak_rate=1.0
set "aquestalk_path=D:\App\App\Multimedia\aquestalkplayer\AquesTalkPlayer.exe"
set "resolution=720"


echo.
echo ============================================================
echo 1. 読み上げ原稿の文字列置換
echo ============================================================

call :DELETE_OUTPUT "%script_path%"
if errorlevel 1 goto ERROR

python "%tkprog_X_path%\converter\replace.py" ^
    -i "%input_script%" ^
    -o "%script_path%" ^
    -r "%replace_path2%" ^
    -s "%replace_path1%" ^
    --pause 0

if errorlevel 1 (
    echo [ERROR] replace.py の実行に失敗しました。
    goto ERROR
)

call :CHECK_OUTPUT "%script_path%"
if errorlevel 1 goto ERROR


echo.
echo ============================================================
echo 2. PowerPointへのノート・音声追加
echo ============================================================

call :DELETE_OUTPUT "%output_pptx%"
if errorlevel 1 goto ERROR

python "%tkprog_X_path%\ai\add_notes_voice_pptx.py" ^
    --mode=conv ^
    --tts="%tts%" ^
    -i "%input_pptx%" ^
    -n "%script_path%" ^
    -o "%output_pptx%" ^
    --monologue=%monologue% ^
    --voices="%voices%" ^
    --tinterval=%tinterval% ^
    --speak_rate=%speak_rate% ^
    --fspeak_rate=%fspeak_rate% ^
    --fspeak_pitch=0.0 ^
    --endpoint= ^
    --instruction= ^
    --aquestalk_path="%aquestalk_path%" ^
    --pause 0

if errorlevel 1 (
    echo [ERROR] add_notes_voice_pptx.py の実行に失敗しました。
    goto ERROR
)

call :CHECK_OUTPUT "%output_pptx%"
if errorlevel 1 goto ERROR


echo.
echo ============================================================
echo 3. PowerPointからMP4への変換
echo ============================================================

call :DELETE_OUTPUT "%output_mp4%"
if errorlevel 1 goto ERROR

python "%tkprog_X_path%\converter\pptx2mp4.py" ^
    "%output_pptx%" ^
    -o "%output_mp4%" ^
    --resolution %resolution% ^
    --pause 0

if errorlevel 1 (
    echo [ERROR] pptx2mp4.py の実行に失敗しました。
    goto ERROR
)

call :CHECK_OUTPUT "%output_mp4%"
if errorlevel 1 goto ERROR


echo.
echo ============================================================
echo すべての処理が正常に完了しました。
echo ============================================================
echo MP4: "%output_mp4%"
echo.

endlocal
exit /b 0


:DELETE_OUTPUT
set "target_file=%~1"

if exist "%target_file%" (
    echo [INFO] 既存ファイルを削除します:
    echo        "%target_file%"

    del /f /q "%target_file%"

    if exist "%target_file%" (
        echo [ERROR] ファイルを削除できませんでした:
        echo         "%target_file%"
        exit /b 1
    )
)

exit /b 0


:CHECK_OUTPUT
set "target_file=%~1"

if not exist "%target_file%" (
    echo [ERROR] 出力ファイルが作成されていません:
    echo         "%target_file%"
    exit /b 1
)

for %%F in ("%target_file%") do (
    if %%~zF LEQ 0 (
        echo [ERROR] 出力ファイルのサイズが0です:
        echo         "%target_file%"
        exit /b 1
    )

    echo [OK] 出力ファイルを確認しました:
    echo      "%target_file%"
    echo      サイズ: %%~zF bytes
)

exit /b 0


:ERROR
echo.
echo ============================================================
echo 処理を中止しました。
echo ============================================================
echo.

endlocal
exit /b 1
```
