最高です。「量産前に“誰でも同じ手順で再現できる”標準手順書(SOP)を作る」—ここを固めるとトラブルが激減します。
下は、そのまま社内共有できる簡潔なマニュアル雛形です(Windows + PowerShell 前提/GTX 1080 Ti)。
音声合成(TTS, XTTS v2)標準手順書(SOP)
0. 前提・推奨バージョン
-
OS: Windows 10/11(64-bit)
-
Python: 3.10.x(必須。3.12は不可)
-
GPU: NVIDIA GTX 1080 Ti(VRAM 11GB)
-
NVIDIA Driver: 535 以上推奨(
nvidia-smi
で確認) -
モデル・主要ライブラリ(固定)
- PyTorch: 2.5.1 + cu121
- torchaudio: 2.5.1 + cu121
- transformers: 4.49.0
- TTS(Coqui): 0.21.3
- numpy < 2.0
- cutlet,
fugashi[unidic-lite]
, encodec, librosa, soundfile, fsspec, typing_extensions
互換性のため、上記は固定します。勝手に更新されると動かなくなることがあります。
1. プロジェクト構成(フォルダ規約)
<プロジェクトルート>/
.venv/ # 仮想環境(各プロジェクトで分離)
scripts/ # ツールスクリプト置き場
data/
voice_refs/ # 参照音声(3–30秒 WAV)
images/ # スライド/イラスト(scene_XX.png)
bgm/ # BGM mp3 等
input/ # 台本(md/csv)
build/
audio/ # 生成WAV
subs/ # 生成SRT/ASS
out/ # 出力MP4
scenes.json # 台本→シーンのメタ
constraints.txt # 依存固定ファイル
2. 初期セットアップ(一度だけ)
2.1 Python 3.10 の用意
py -0p # インストール済みの版を一覧
なければ python.org から 3.10.x (64-bit) をインストール(Add to PATH 推奨)。
2.2 仮想環境の作成・有効化
cd "<プロジェクトルート>"
py -3.10 -m venv .venv
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\.venv\Scripts\Activate.ps1
python -V # 3.10.x であること
2.3 依存固定ファイル(constraints.txt)作成
constraints.txt
:
torch==2.5.1
torchaudio==2.5.1
transformers==4.49.0
numpy<2.0
2.4 ライブラリ一括インストール(GPU版)
python -m pip install --upgrade pip wheel setuptools
pip install torch==2.5.1 --index-url https://download.pytorch.org/whl/cu121
pip install torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cu121
pip install "TTS==0.21.3" --no-deps
pip install -c constraints.txt soundfile librosa fsspec typing_extensions encodec cutlet "fugashi[unidic-lite]"
CPUのみで動かす場合は、上の
--index-url .../cu121
を.../cpu
に読み替え。
2.5 GPU確認(scripts/check_gpu.py)
# scripts/check_gpu.py
import sys, torch, torchaudio, transformers
print("python:", sys.version.split()[0])
print("torch:", torch.__version__)
print("torchaudio:", torchaudio.__version__)
print("transformers:", transformers.__version__)
print("cuda_available:", torch.cuda.is_available())
if torch.cuda.is_available():
print("device:", torch.cuda.get_device_name(0))
実行:
python .\scripts\check_gpu.py
3. 最小動作確認(TTSテスト)
3.1 参照音声の準備
-
data/voice_refs/myref.wav
(3–30秒、静かな環境、モノラル推奨)
3.2 テストスクリプト(scripts/tts_test.py)
import os, torch
os.environ["COQUI_TOS_AGREED"]="1"
from TTS.api import TTS
tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2", gpu=torch.cuda.is_available())
tts.tts_to_file(
text="GPUでの合成テストです。これが速ければ成功です。",
speaker_wav="data/voice_refs/myref.wav",
language="ja",
file_path="build/audio/test.wav"
)
print("OK: build/audio/test.wav")
実行:
python .\scripts\tts_test.py
4. 量産パイプライン(雛形)
4.1 台本 → シーン(scenes.json)
- 台本(
data/input/script.md
など)を1シーン=1段落で記述 - 変換スクリプトで
scenes.json
を生成(要望があれば作成)
scenes.json
(例):
{
"project_title": "講座テンプレ",
"language": "ja",
"voice_ref": "data/voice_refs/myref.wav",
"bgm": "data/bgm/soft.mp3",
"scenes": [
{"id": 1, "text": "本講座の目的を説明します。", "image": "data/images/scene_01.png", "subtitle_split": "auto"},
{"id": 2, "text": "自動化により1分単位の動画を量産します。", "image": "data/images/scene_02.png"}
]
}
4.2 音声・字幕の生成(scripts/build_scenes.py)
(先にお渡ししたサンプルを設置)
実行:
python .\scripts\build_scenes.py
- 出力:
build/audio/scene_XX.wav
、build/subs/scene_XX.srt
4.3 動画レンダリング(scripts/render_video.py)
(先にお渡しした MoviePy 版を設置)
実行:
python .\scripts\render_video.py
- 出力:
build/out/final.mp4
5. 運用ルール(標準化のキモ)
-
バージョン固定
-
constraints.txt
を必ず使う。追加インストールは
pip install -c constraints.txt <package>
- 破った環境での不具合は切り分け困難。
-
-
差分ビルド
- シーンごとに
hash(text+image+voice_ref)
を保存し、未変更のWAV/SRTは再生成しない(速度向上)。
- シーンごとに
-
ファイル命名規約
-
scene_01.png / scene_01.wav / scene_01.srt
を統一。将来の自動編集が楽。
-
-
素材品質規約
- 参照音声は無音短め・ノイズ小。BGMは-18〜-20 LUFS。
- 字幕は句読点入りで読みやすく。固有名詞はルビ(括弧)を入れて誤読を防止。
-
テンプレ用意
-
scenes.json
の雛形、script.md
の見出しルール、プレースホルダ画像自動生成スクリプトを用意。
-
-
バックアップ/キャッシュ
- モデルキャッシュ:
%LOCALAPPDATA%\tts\
- プロジェクトは Git で管理(
build/
は除外可)。
- モデルキャッシュ:
6. トラブルシュート早見表
症状 | 原因 | 対処 |
---|---|---|
ModuleNotFoundError: TTS |
TTS未インストール or 別Python |
.venv を有効→再インストール |
You must agree to the terms... |
利用規約未同意 |
setx COQUI_TOS_AGREED 1 (再起動 or 新窓) |
Weights only load failed |
torch 2.6+ 仕様変更 | torch 2.5.1 に戻す |
... has no attribute 'generate' |
transformers 4.50+ | 4.49.0 に固定 |
MeCab関連エラー | cutlet/fugashi 辞書なし |
pip install "fugashi[unidic-lite]" /MECABRC 指定 |
GPUが使われない | CPU版torch/古いDriver | cu121版再インストール/Driver更新/check_gpu.py 確認 |
生成音が似ない | 参照音声の質が低い | 静音環境で3–10秒録り直し/台本増/複数参照で使い分け |
7. 自動化スクリプト(任意・便利)
7.1 一発セットアップ(scripts/setup_xtts.ps1)
- venv作成→依存固定→GPU版インストール→テストファイル配置まで自動化
(必要なら私が中身を作ってお渡しします)
7.2 一発ビルド(build.ps1)
.\.venv\Scripts\Activate.ps1
$env:COQUI_TOS_AGREED="1"
python .\scripts\build_scenes.py
python .\scripts\render_video.py
8. 更新ポリシー
- 四半期に一度、別ブランチで「最新版に追従できるか」を検証
- 本番は常に
constraints.txt
の版を使用 - ライブラリアップデート時は**検証用素材(小・中・長)**で品質/速度を比較