0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

音声合成(TTS, XTTS v2)標準手順書(SOP)

Last updated at Posted at 2025-08-14

最高です。「量産前に“誰でも同じ手順で再現できる”標準手順書(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.wavbuild/subs/scene_XX.srt

4.3 動画レンダリング(scripts/render_video.py)

(先にお渡しした MoviePy 版を設置)
実行:

python .\scripts\render_video.py
  • 出力:build/out/final.mp4

5. 運用ルール(標準化のキモ)

  1. バージョン固定

    • constraints.txt必ず使う。追加インストールは
      pip install -c constraints.txt <package>
    • 破った環境での不具合は切り分け困難。
  2. 差分ビルド

    • シーンごとに hash(text+image+voice_ref) を保存し、未変更のWAV/SRTは再生成しない(速度向上)。
  3. ファイル命名規約

    • scene_01.png / scene_01.wav / scene_01.srt を統一。将来の自動編集が楽。
  4. 素材品質規約

    • 参照音声は無音短め・ノイズ小。BGMは-18〜-20 LUFS。
    • 字幕は句読点入りで読みやすく。固有名詞はルビ(括弧)を入れて誤読を防止。
  5. テンプレ用意

    • scenes.json の雛形、script.md の見出しルール、プレースホルダ画像自動生成スクリプトを用意。
  6. バックアップ/キャッシュ

    • モデルキャッシュ:%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 の版を使用
  • ライブラリアップデート時は**検証用素材(小・中・長)**で品質/速度を比較

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?