「クラウドの音声合成APIは月額料金がかかるし、プライバシーも気になる。ローカルで動く高品質な音声合成エンジンはないか」と探している方に、決定版の選択肢がPiper TTSです。Raspberry Pi 5クラスの小型PCでもリアルタイム合成が可能で、CPUのみで動作、30以上の言語と100を超える音声モデルが用意されています。Home Assistantの標準TTSエンジンとしても採用されているデファクトスタンダードです。
本記事では、2026年7月時点の最新版(OHF-Voice/piper1-gpl v1.4.2)に基づき、Piper TTSのインストールから実践的な運用、日本語音声合成、Home Assistant連携、学習によるオリジナル音声作成まで、一次情報だけで完結できるレベルまで徹底的に解説します。開発体制の大きな変遷(rhasspy/piperアーカイブ→OHF-Voice/piper1-gpl移行、日本語対応フォークayutaz/piper-plus登場)についても、混乱しないように順を追って整理します。
Piper TTSとは何か
Piper TTS(以下Piper)は、深層学習ベースの高速かつ完全ローカルで動作するニューラル音声合成エンジンです。VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)系のモデルを軽量ONNX形式にエクスポートし、onnxruntime上で推論することで、GPUなしのCPUだけでも実用的な速度で音声を生成できます。
基本情報
- 公式リポジトリ: github.com/OHF-Voice/piper1-gpl
- 開発元: Open Home Foundation(Nabu Casa傘下のオープンソース団体、Home Assistantを開発する組織)
- ライセンス: GPL-3.0(現行のpiper1-gpl。旧rhasspy/piperはMIT)
- 言語: 実装はC++とPython。Python API経由の呼び出しが標準的
- 対応言語: 30を超える言語、100以上の学習済みボイス
- 特徴: 完全オフライン、リアルタイム合成、Raspberry Piでも動作、Home Assistantデファクト
主な特徴
- ONNX Runtimeによる高速推論。espeak-ngをG2P(Grapheme-to-Phoneme、書記素-音素変換)に組み込み
- CPU単体でリアルタイム以上の合成速度(Raspberry Pi 5でも実用域)
- ボイスモデルは1音声あたり10〜75MB程度と軽量。ディスク・メモリ負荷が小さい
- コマンドラインからワンライナーで音声生成可能、パイプ処理にも対応
- Python APIで直接呼び出し可能、HTTPサーバーモードも標準搭載
- Home AssistantのWyoming Protocol経由で自動検出、標準TTSエンジンに採用
- クオリティレベル(x_low / low / medium / high)を用途に応じて選択可能
2026年時点の最新リリース情報と開発体制の変遷
Piperを扱う上で最も重要な前提が、2024〜2025年にかけて起きた開発体制の再編です。ここを押さえずに古い情報を追うと、アーカイブされたリポジトリで詰まる可能性があります。
開発リポジトリの変遷
| 時期 | リポジトリ | 状態 | 概要 |
|---|---|---|---|
| 〜2023年 | rhasspy/piper | アーカイブ済み | Michael Hansen氏個人による初期実装。v1.2.0(2023-08-01)が最終安定版。MITライセンス |
| 2024-07以降 | OHF-Voice/piper1-gpl | 現行公式 | Open Home Foundationに移管。GPL-3.0化、Pythonリファクタ、C++コード一時削除 |
| 2024〜 | ayutaz/piper-plus | 日本語対応フォーク | OpenJTalk統合、つくよみちゃんモデル同梱、MIT維持、多言語ランタイム(Rust/C#/Go/JS-WASM等) |
2025年10月6日、旧rhasspy/piperリポジトリは正式にアーカイブされました。以降、新規開発はOHF-Voice/piper1-gplで進んでいます。ネット上には旧リポジトリの手順(pip install piper-ttsを旧バージョンで説明したブログ、旧HuggingFaceパスなど)が大量に残っていますが、2026年7月現在の推奨は新公式リポジトリです。
piper1-gplのバージョン別変更履歴(直近1.5年)
- v1.4.2(2026-04-02):
pathvalidate依存関係の修正 - v1.4.1(2026-02-05): 不足していたwheelバイナリの追加配布
- v1.4.0(2026-01-30): 中国語向けg2pW音素化の実装、複数音素化タイプ(pinyin / text / IPA)に対応、ボコーダーのウォームスタート機能、事前生成音素IDでの学習対応
- v1.3.0(2024-07-10): OHF-Voice組織への移管。C++コードを一時削除しPython開発に集中、ライセンスをGPL-3.0に変更、Python API大幅リファクタ
piper-plus(日本語対応フォーク)の状況
公式piper1-gplには2026年7月時点でもまだ公式な日本語ボイスモデルが存在しません。日本語を扱いたい場合、実質的な選択肢はコミュニティフォークayutaz/piper-plusとなります。
- 公式リポジトリ: github.com/ayutaz/piper-plus
- ライセンス: MIT(唯一のMIT系Piperフォーク、商用組込みに向く)
- 対応言語: 日本語・英語・中国語・スペイン語・フランス語・ポルトガル語(他にスウェーデン語・韓国語のコード対応)
- 特徴: OpenJTalk統合による日本語韻律処理、疑問詞マーカー、文脈依存「ん」バリアントの再現
- ランタイム: Python / Rust / C# / Go / JS-WASM / C++ の6ランタイム
- 推論バックエンド: CUDA / CoreML / DirectML対応(Rust CLI)
- 最新版: 2026年時点でv2.0系(2026年5月〜)。Docker既定イメージがCUDA 12.8 + Ubuntu 24.04 + Python 3.13に統一、学習用torch 2.11+cu128にアップデート、TF32+bf16-mixedが学習デフォルトへ
- 同梱モデル: つくよみちゃん(
tsukuyomi)、multilingual-6lang、bilingual-ja-en-v4
ライセンスに注意です。公式piper1-gplはGPL-3.0のため、独自サービスに組み込む場合はソース公開義務が発生する可能性があります。商用組み込みや配布物のクローズド運用が必要な場合は、MITライセンスのpiper-plusを検討してください。
他ツールとの徹底比較
日本語話者がローカル音声合成エンジンを選ぶ際、実質的な選択肢は以下の5つです。それぞれの2026年7月時点の最新版で比較します。
| 項目 | Piper(piper1-gpl) | piper-plus | VOICEVOX | Style-Bert-VITS2 | Coqui TTS |
|---|---|---|---|---|---|
| 最新版 | v1.4.2(2026-04) | v2.0系(2026-05) | ENGINE v0.25.2(2026-04) | v2.7.0(2025-08) | v0.27.5(2026-01) |
| ライセンス | GPL-3.0 | MIT | LGPL-3.0 | AGPL-3.0 | MPL-2.0 |
| 日本語対応 | 非対応(公式) | OpenJTalk統合で標準対応 | 日本語専用 | 日本語特化(JP-Extra) | 要別途G2P |
| 対応言語数 | 30+ | 6+2 | 日本語のみ | マルチリンガル | 1100+モデル |
| 推論速度 | 非常に高速(CPU可) | 非常に高速(CPU/GPU) | 高速(CPU/GPU) | 中速(CPU/GPU) | 中速(GPU推奨) |
| ラズパイ動作 | Pi 5でリアルタイム | Pi 5で実用 | Pi 5でも可(重い) | 非現実的 | 非現実的 |
| 感情・スタイル制御 | 限定的 | 限定的 | キャラごとにスタイル切替 | スタイル強弱を細かく制御 | モデル依存 |
| 音質 | 中〜高 | 中〜高 | 非常に高い | 非常に高い | モデル次第 |
| Home Assistant | デフォルトTTS | 直接統合なし | コミュニティ統合あり | 非対応 | 非対応 |
| 商用利用 | GPL条件次第 | MITで容易 | キャラ規約に従う | AGPLで制限強い | MPLで比較的容易 |
| 学習・ファインチューニング | 可能(Python) | 可能(Docker完備) | 公式非提供 | 可能(GPU必須) | 可能(重い) |
選び方の指針
- Home AssistantでボイスAIを組みたい → 迷わずPiper(piper1-gpl)
- 日本語で軽量・高速なローカル音声合成が欲しい → piper-plus
- 日本語のキャラクターボイスを使いたい → VOICEVOX(キャラ規約に注意)
- ナレーションで感情表現を細かく調整したい → Style-Bert-VITS2
- 研究・実験でモデル差し替えを重視 → Coqui TTS
- ラズパイやミニPCで完全オフライン運用 → Piper(1択)
メリットとデメリット
メリット
- 圧倒的な軽量性: 1ボイスモデルが10〜75MB、メモリ使用量も数百MB程度でRaspberry Piでも動作
- リアルタイム以上の推論速度: 最新Ryzen/Coreクラスなら音声より数倍速く合成できる
- 完全オフライン: インターネット接続不要、プライバシー完全保護
- Home Assistantデファクト: Wyoming ProtocolでHome Assistantに自動連携
- 100超のボイス: 英語だけでも数十種類、地域アクセントや性別・年齢のバリエーション豊富
- ONNX Runtimeベース: CUDA / DirectML / CoreMLで加速可能、モバイルSDKへの組み込みも容易
- MIT系フォーク(piper-plus)が現役: ライセンス面で不安な場合の逃げ道あり
デメリット
- 公式に日本語ボイスがない: 日本語利用ではpiper-plusまたは自前学習が必須
- 感情・スタイル制御が限定的: 感情表現の細やかさではStyle-Bert-VITS2に劣る
- ライセンスがGPL-3.0: 独自サービスの一部として組み込むと再配布ソース公開義務が発生しうる
- 破壊的変更あり: 2024年のPython大規模リファクタで旧APIコードは動かない
- ドキュメントが分散: 旧rhasspy時代の記事が大量に残っており、新旧の情報混在で混乱しやすい
- 学習には計算リソース必要: 自前ボイスの学習にはGPU(できれば24GB VRAM級)と数十時間の音源が必要
動作要件
推論(音声合成のみ)の要件
| 項目 | 最小 | 推奨 | ハイエンド |
|---|---|---|---|
| OS | Ubuntu 20.04 / Windows 10 / macOS 12 | Ubuntu 22.04 / Windows 11 / macOS 14 | Ubuntu 24.04 / Windows 11 / macOS 15 |
| CPU | 4コア(ARM含む) | 8コア以上(Ryzen 5 / Core i5クラス) | 16コア以上 |
| GPU | 不要(CPUで十分) | 不要(速度が欲しければ任意) | RTX 4070クラス(大量合成向け) |
| RAM | 2GB | 4GB | 8GB以上 |
| ディスク | 500MB | 2GB | 10GB以上(複数モデル) |
| Python | 3.10 | 3.11以上 | 3.13 |
ポイント: 推論のみならば、Raspberry Pi 5(RAM 4GB、CPU 4コア)でも実用速度で合成できます。GPUは無くても構いません。実際にHome Assistant Green等の小型ホームアシスタント機ではCPUだけで動作しています。
学習(オリジナルボイス作成)の要件
| 項目 | 最小 | 推奨 |
|---|---|---|
| GPU | NVIDIA GTX 1660 (6GB VRAM) | RTX 4070 Ti SUPER (16GB) 以上 |
| RAM | 16GB | 32GB以上 |
| ディスク | 50GB空き | 500GB NVMe SSD |
| 音声データ | 1時間以上 | 10時間以上(クリーンな音源) |
| CUDA | 11.8以上 | 12.8(piper-plusのDocker既定) |
| NVIDIA driver | R525以上 | R570以上 |
インストール手順
Linux(Ubuntu)でのpipインストール(推奨)
最も簡単で確実な方法です。Python 3.10以上とpipが入っていれば、以下のコマンドで完了します。
python3 -m venv piper_env
source piper_env/bin/activate
pip install --upgrade pip
pip install piper-tts
# 動作確認
piper --version
依存関係としてespeak-ngが必要なため、Ubuntuなら事前にaptで入れておきます(一部のモデルは音素化にespeak-ngを使わないケースもあります)。
sudo apt-get update
sudo apt-get install -y espeak-ng
Windows でのインストール
Windowsでは、Python 3.11以上を公式サイトからインストールし、PowerShellで以下を実行します。
# 作業ディレクトリを作る
mkdir C:\piper
cd C:\piper
# 仮想環境を作る
python -m venv piper_env
.\piper_env\Scripts\Activate.ps1
# pipアップグレードとインストール
python -m pip install --upgrade pip
pip install piper-tts
# 動作確認
piper --version
Windowsではespeak-ngを別途GitHub ReleasesからMSIインストーラーで入れる必要があります。インストール後、環境変数PATHにC:\Program Files\eSpeak NGが追加されているか確認してください。
macOS(Apple Silicon / Intel)でのインストール
Homebrewで依存関係を入れ、pipでインストールします。Apple Silicon(M1〜M4)ではネイティブに動作します。
brew install espeak-ng python@3.12
python3.12 -m venv ~/piper_env
source ~/piper_env/bin/activate
pip install --upgrade pip
pip install piper-tts
piper --version
Dockerでの実行(本番運用推奨)
本番運用では公式Docker Composeイメージを使うのが安定です。Home Assistant環境ならアドオンで簡単に入ります。
# docker-compose.yml
services:
piper:
image: rhasspy/wyoming-piper:latest
container_name: piper
restart: unless-stopped
ports:
- "10200:10200"
volumes:
- ./data:/data
command: --voice en_US-lessac-medium
docker compose up -d
docker logs -f piper
Wyoming Protocol(TCPポート10200)でTTSサーバーとして起動し、Home Assistantから自動検出されます。
Home Assistantアドオンとしてのインストール
Home Assistant OS / Supervisedを使っている場合、公式アドオンから数クリックでインストール可能です。
- Home Assistantの設定 → アドオン → アドオンストアを開く
- 右上のメニューから「リポジトリ」→ Nabu Casa公式アドオンリポジトリが登録されているか確認
- 「Piper」を検索してインストール
- デフォルトのボイス(
en_US-lessac-medium)で起動 - 設定 → 音声アシスタント → TTSでPiperを選択
ボイスを日本語や別のアクセントに変えたい場合、アドオンの設定画面からvoiceを書き換えるだけで済みます。
piper-plus(日本語)のインストール
日本語で音声合成をしたい場合、公式ではなくpiper-plusを使います。uv(超高速Pythonパッケージマネージャ)ベースの手順が推奨されています。
# uvのインストール(未導入の場合)
curl -LsSf https://astral.sh/uv/install.sh | sh
# piper-plusのインストール(CPU推論)
uv pip install "piper-plus[inference]"
# GPU推論(CUDA環境)
uv pip install "piper-plus[inference-gpu]"
# 学習環境
uv pip install "piper-plus[train]"
# 日本語モデル(つくよみちゃん)で合成
python -m piper --model ja_JP-tsukuyomi-chan-medium -f output.wav "こんにちは、今日は良い天気ですね。"
piper-plusはPython 3.13を推奨しており、3.11以上でも動作します。Dockerイメージを使う場合、既定でCUDA 12.8とUbuntu 24.04がプリセットされ、NVIDIA driver R570以上が必要です。
初期設定とモデルのダウンロード
ボイスモデルの入手
Piperは、モデル本体(.onnx)と設定ファイル(.onnx.json)の2つのファイルで1つのボイスを構成します。両ファイルともHuggingFaceの公式リポジトリから入手可能です。
# 例: en_US-lessac-medium(英語・女性・ミディアム品質)をダウンロード
wget https://huggingface.co/rhasspy/piper-voices/resolve/main/en/en_US/lessac/medium/en_US-lessac-medium.onnx
wget https://huggingface.co/rhasspy/piper-voices/resolve/main/en/en_US/lessac/medium/en_US-lessac-medium.onnx.json
# CLIから直接ダウンロードすることも可能
python -m piper.download_voices en_US-lessac-medium
クオリティレベルの選択
多くのボイスは複数のクオリティレベルで提供されています。用途に応じて選んでください。
| 品質 | サンプルレート | ファイルサイズ目安 | 用途 |
|---|---|---|---|
| x_low | 16000Hz | 約10MB | 組み込み機器、超低遅延用途 |
| low | 16000Hz | 約20MB | Raspberry Pi、低スペック機 |
| medium | 22050Hz | 約60MB | 汎用(推奨デフォルト) |
| high | 22050Hz | 約75MB | ナレーション、放送品質 |
迷ったらmediumを選べば失敗しません。Home Assistantの応答音声のように短いフレーズが中心ならlowで十分実用的、動画のナレーションを作るならhigh推奨です。
基本的な使い方(CLI)
ワンライナーでの音声合成
最もシンプルな使い方は、標準入力からテキストを流し込む方法です。
echo "Hello, this is Piper text-to-speech engine." | \
piper --model en_US-lessac-medium.onnx \
--output_file greeting.wav
これでgreeting.wavができ、22050Hz 16bitのWAVで書き出されます。音を確認するにはaplay greeting.wav(Linux)やafplay greeting.wav(macOS)を使います。
複数文をまとめて処理
テキストファイルから複数行を一括処理したい場合、--json-inputオプションでJSON形式の入力が使えます。
cat << 'EOF' | piper --model en_US-lessac-medium.onnx --output_dir ./output --json-input
{"text": "Good morning.", "output_file": "morning.wav"}
{"text": "Good evening.", "output_file": "evening.wav"}
{"text": "Good night.", "output_file": "night.wav"}
EOF
outputフォルダに3つのWAVファイルが生成されます。バッチ処理やCI/CDでの音声生成に便利です。
主要なコマンドラインオプション
| オプション | 意味 | デフォルト |
|---|---|---|
--model | ONNXモデルファイルのパス | 必須 |
--config | 設定JSONファイルのパス | modelと同名を自動検索 |
--output_file | 出力WAVファイル名 | 標準出力 |
--output_dir | 出力先ディレクトリ | カレントディレクトリ |
--speaker | マルチスピーカーモデルの話者ID | 0 |
--length_scale | 発話速度(大きいほどゆっくり) | 1.0 |
--noise_scale | 音質のバリエーション | 0.667 |
--noise_w | 音素長のバリエーション | 0.8 |
--sentence_silence | 文末の無音秒数 | 0.2 |
--phoneme_silence | 指定音素の無音時間 | なし |
--cuda | CUDA GPUを使用 | false(CPU) |
発話速度と抑揚のチューニング
ナレーション用途では、標準の発話速度は少し早すぎる場合があります。--length_scale 1.15のように1.1〜1.3の値を指定すると、聞き取りやすい速度になります。
echo "Welcome to Warokai blog. Today we will introduce Piper TTS." | \
piper --model en_US-lessac-high.onnx \
--output_file intro.wav \
--length_scale 1.15 \
--sentence_silence 0.5
実践的な使い方
ケース1: ブログ記事の音声化(Podcast風)
WordPressの記事本文をテキストファイルとして書き出し、Piperで音声化してMP3にまとめる流れを示します。
# 1. 記事テキストを用意(article.txt)
# 2. Piperで音声化
piper --model en_US-lessac-high.onnx \
--output_file article.wav \
--length_scale 1.1 \
< article.txt
# 3. ffmpegでMP3変換(ビットレート128kbps)
ffmpeg -i article.wav -codec:a libmp3lame -b:a 128k article.mp3
# 4. 音量ノーマライズ(-16 LUFSはPodcast標準)
ffmpeg -i article.mp3 -af loudnorm=I=-16:LRA=11:TP=-1.5 article_norm.mp3
日本語ブログの場合、piper-plusで同じ流れになります。
python -m piper \
--model ja_JP-tsukuyomi-chan-medium \
--output_file article_ja.wav \
--length_scale 1.1 \
< article_ja.txt
ffmpeg -i article_ja.wav -codec:a libmp3lame -b:a 128k article_ja.mp3
ケース2: 動画ナレーション生成
YouTubeやTikTok向けのショート動画では、スクリプトを段落ごとにWAV化し、無音区切りで結合するのが定石です。
# 段落ごとに分割された scenes/ フォルダのテキストを一括音声化
for f in scenes/*.txt; do
base=$(basename "$f" .txt)
piper --model en_US-lessac-high.onnx \
--output_file "audio/${base}.wav" \
--length_scale 1.05 \
< "$f"
done
# 全WAVを結合(file_list.txtに順序を書く)
ls -1 audio/*.wav | awk '{print "file " $0}' > file_list.txt
ffmpeg -f concat -safe 0 -i file_list.txt -c copy narration_full.wav
ケース3: Home Assistantでの完全ローカル音声アシスタント
Whisper(STT)+ Piper(TTS)+ Home Assistantで、Alexaに依存しない完全ローカル音声アシスタントが組めます。ここが2026年時点でPiperを選ぶ最大の理由の1つです。
- Home Assistantのアドオンストアから「Whisper」「Piper」「openWakeWord」をインストール
- 設定 → 音声アシスタント → 新しいアシスタントを作成
- Speech-to-textにWhisper、Text-to-speechにPiperを設定
- ウェイクワード(
Hey Jarvisなど)を選択 - ESP32ベースのAtom Echo等の音声デバイスとペアリング
これで「テレビをつけて」「照明を暗くして」といった自然言語コマンドが完全ローカルで実行できます。クラウドを一切経由しないため、応答は300ms程度と非常に低遅延、プライバシーも守られます。
応用・カスタマイズ
Python APIから直接呼び出す
スクリプトの中でPiperを呼び出したい場合、Python APIを使います。
from piper import PiperVoice
import wave
# モデルのロード(起動時に1度だけ)
voice = PiperVoice.load("en_US-lessac-medium.onnx")
# 音声合成してWAVに書き出す
with wave.open("output.wav", "wb") as wav_file:
voice.synthesize_wav(
"Hello world from Piper Python API.",
wav_file,
)
# ストリーミング合成(音声データのバイト列を逐次取得)
for audio_chunk in voice.synthesize("This is streamed audio."):
# audio_chunk.audio_int16_bytes を音声出力デバイスに流す
pass
Webアプリケーションのバックエンドやチャットボットで、リクエストごとに動的に音声を生成する用途に最適です。
HTTPサーバーモード
Piperには標準でHTTP APIサーバーが付属しています。他プロセスから音声合成を呼びたい場合に便利です。
# Piper HTTPサーバーを起動(デフォルトport 5000)
python -m piper.http_server \
--model en_US-lessac-medium.onnx \
--port 5000
# クライアントからPOSTでリクエスト
curl -X POST http://localhost:5000/ \
-H "Content-Type: text/plain" \
--data "Hello from HTTP API." \
--output response.wav
Wyoming Protocolサーバーモード
Home Assistantと連携する場合、Wyoming Protocolでの起動が推奨です。TCPポート10200を待ち受け、Home Assistantから自動検出されます。
pip install wyoming-piper
python -m wyoming_piper \
--piper piper \
--voice en_US-lessac-medium \
--uri tcp://0.0.0.0:10200 \
--data-dir ./voices \
--download-dir ./voices
マルチスピーカーモデルの活用
いくつかのモデルは1つのONNXに複数の話者を内包しています。--speakerオプションで切り替え可能です。
# en_US-libritts-highは904話者収録
echo "Speaker zero speaking." | \
piper --model en_US-libritts-high.onnx --speaker 0 --output_file spk0.wav
echo "Speaker forty-two speaking." | \
piper --model en_US-libritts-high.onnx --speaker 42 --output_file spk42.wav
オリジナルボイスの学習
自前の音声データからオリジナルボイスを学習することも可能です。piper-plusは学習用Dockerイメージを提供しており、比較的セットアップが楽です。
# 学習環境のインストール
uv pip install "piper-plus[train]"
# データセット準備(LJSpeech形式のCSV+WAV)
# metadata.csv: id|text|normalized_text
# wavs/*.wav (22050Hz mono推奨)
# 学習実行
python -m piper_train \
--dataset-dir ./my_dataset \
--output-dir ./my_voice_model \
--language ja \
--sample-rate 22050 \
--quality medium \
--batch-size 16 \
--max-epochs 6000
音声データは、クリーンなスタジオ収録で最低1時間、実用品質を狙うなら10時間以上が目安です。学習にはRTX 4070 Ti SUPER(16GB VRAM)クラス以上のGPUで数日〜1週間程度かかります。
パフォーマンス最適化
CPU推論の最適化
- onnxruntimeのスレッド数調整: 環境変数
OMP_NUM_THREADSとMKL_NUM_THREADSで並列度を制御。CPUの物理コア数に合わせるのが基本 - クオリティレベルを下げる: mediumからlowにするだけで2〜3倍高速化
- ボイス設定のnoise_scaleを0にする: 確定的合成になり若干高速化(音質のバリエーションはなくなる)
# 4コア機で並列度を最適化
OMP_NUM_THREADS=4 MKL_NUM_THREADS=4 \
piper --model en_US-lessac-low.onnx --output_file fast.wav < input.txt
GPU推論の有効化
onnxruntime-gpuを別途インストールし、--cudaフラグを付けるとGPU推論が有効化されます。ただし、Piperは軽量なため、GPUを使ってもCPUと比較して劇的な高速化は得られません。大量のテキストを短時間に処理したい場合に検討してください。
pip uninstall onnxruntime
pip install onnxruntime-gpu
# CUDA GPUでの推論
piper --model en_US-lessac-high.onnx \
--output_file gpu_output.wav \
--cuda \
< input.txt
モデルキャッシュとロード時間短縮
HTTPサーバーモードやPython APIでは、初回のモデルロードに1〜2秒かかりますが、その後は数十ms〜数百msで合成できます。CLIモードでも常駐プロセスを立てておくとレスポンスが安定します。
よくあるエラーとトラブルシューティング
1. ModuleNotFoundError: No module named 'piper'
仮想環境がアクティブでない、または旧パッケージpiper-tts-plusと現行piper-plusが混在しているケースが多発しています。
# 仮想環境の再有効化
source piper_env/bin/activate
# 旧パッケージのアンインストール
pip uninstall piper-tts-plus piper-tts
# 新パッケージのクリーンインストール
pip install --upgrade --force-reinstall piper-tts # 公式使う場合
# または
pip install --upgrade --force-reinstall piper-plus # 日本語なら
2. espeak-ng not foundエラー
espeak-ngが未インストール、またはPATHに含まれていない場合に発生します。
# Ubuntu / Debian
sudo apt-get install -y espeak-ng
# Fedora / RHEL
sudo dnf install -y espeak-ng
# macOS
brew install espeak-ng
# Windows: GitHub Releasesからespeak-ng-X64.msiを入手してインストール後、PATHに追加
3. 生成音声にプツプツとノイズが入る
WAVのサンプルレート指定と再生機のミスマッチが原因です。設定ファイル(.onnx.json)のsample_rateを確認し、再生側に合わせてください。ffmpegでリサンプルする対処例:
ffmpeg -i piper_output.wav -ar 48000 -ac 2 output_48k.wav
4. 日本語テキストが「不明な音素」で失敗する
公式piper1-gplは日本語未対応です。以下のどちらかを使用してください。
- piper-plusに切り替える(
pip install piper-plus) - OpenJTalkベースの前処理でカタカナ・ローマ字化してから流し込む
5. onnxruntime.capi.onnxruntime_pybind11_state.InvalidArgument
ONNXモデルと.onnx.jsonのバージョン不整合、またはonnxruntimeのバージョン古すぎが原因です。
pip install --upgrade onnxruntime
# GPU版を使っているなら
pip install --upgrade onnxruntime-gpu
# モデルを再ダウンロード
rm en_US-lessac-medium.onnx*
python -m piper.download_voices en_US-lessac-medium
6. Wyoming Protocolで Home Assistant から検出されない
ファイアウォールでポート10200が閉じられている、あるいはZeroconf/mDNSが機能していない可能性があります。
# ポート開放(ufwの場合)
sudo ufw allow 10200/tcp
# 手動で追加する場合、Home Assistantの設定 → 統合 → Wyoming Protocolを追加
# ホスト: piperコンテナのIP、ポート: 10200
7. Docker実行時に「CUDA not available」警告
GPU推論用のonnxruntime-gpuを使うDockerイメージでは、ホスト側のNVIDIA driverがR525以上(piper-plusはR570以上)である必要があります。nvidia-container-toolkitのインストールも必須です。
nvidia-smi # ドライバのバージョン確認
sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker
docker run --gpus all --rm nvidia/cuda:12.8.0-runtime-ubuntu24.04 nvidia-smi
おすすめの組み合わせ・連携
Whisper(音声認識)+ Piper(音声合成)
Wyoming Faster Whisperと組み合わせることで、双方向の音声インターフェースを完全ローカルで実現できます。Home AssistantでもこのペアがデフォルトのSTT+TTS構成です。
Home Assistant + ESPHome音声デバイス
ESP32-S3ベースのAtom Echo、M5Stack Atom Echoなどのハードウェアと組み合わせると、数千円で完全ローカルスマートスピーカーが作れます。Amazon EchoやGoogle NestからHome Assistantへ完全移行する事例が増えています。
Piper + ffmpeg + OBS Studio
配信・録画用途では、Piperで生成した音声を仮想オーディオデバイス(VB-Audio Cable等)経由でOBS Studioに流し込み、ライブ配信のBGMやナレーションとして使えます。
Piper + Ollama(ローカルLLM)
OllamaでローカルLLMを動かし、その応答をPiperで読み上げる構成は、完全オフラインのボイスAIアシスタントの王道です。以下は最小構成のPythonスクリプト例です。
import subprocess
import requests
def ask_ollama(prompt):
r = requests.post(
"http://localhost:11434/api/generate",
json={"model": "llama3.2:3b", "prompt": prompt, "stream": False},
)
return r.json()["response"]
def speak(text):
subprocess.run(
["piper", "--model", "en_US-lessac-medium.onnx",
"--output_file", "reply.wav"],
input=text.encode(),
check=True,
)
subprocess.run(["aplay", "reply.wav"], check=True)
question = "What is the capital of Japan?"
answer = ask_ollama(question)
print("LLM:", answer)
speak(answer)
用途別 推奨PCスペック
入門(Piper推論のみ、Home Assistant用途)
| パーツ | 推奨 | 理由 |
|---|---|---|
| 本体 | Raspberry Pi 5(8GB版) | Piper単独で十分動作、消費電力小 |
| ストレージ | 128GB microSD or M.2 SSD | 複数モデル格納にゆとりあり |
| 電源 | Pi 5公式27W USB-C PD | 安定動作の必須条件 |
| ネットワーク | 1000BASE-T有線 | Home Assistantとの低遅延通信 |
標準(Piper + Whisper + Ollama軽量モデル)
| パーツ | 推奨 | 理由 |
|---|---|---|
| CPU | Ryzen 5 7600 / Core i5-13500 | Piperは軽量、他ワークロード並列実行 |
| メモリ | DDR5メモリ 32GB | 複数AIツール同時運用に必要 |
| GPU | RTX 4060 Ti (16GB) | Ollama 7Bモデル並列稼働に十分 |
| SSD | 1TB NVMe SSD | モデル30〜50GB格納で余裕 |
| 電源 | 750W 80+ GOLD | 拡張性を確保 |
ハイエンド(オリジナルボイス学習・大量ナレーション生成)
| パーツ | 推奨 | 理由 |
|---|---|---|
| CPU | Ryzen 9 9950X / Core i9-14900K | データ前処理の並列度確保 |
| メモリ | DDR5メモリ 64GB | 大規模データセット扱う際の余裕 |
| GPU | RTX 4070 Ti SUPER (16GB) 以上 | 学習には最低16GB VRAM推奨 |
| SSD | 2TB NVMe SSD | 音声データセット数百GB級を保存 |
| 電源 | 1000W 80+ PLATINUM | 学習中のピーク電力に耐える |
| 冷却 | 360mm水冷 | 長時間学習の温度管理 |
まとめ
Piper TTSは、2026年時点でローカル音声合成のデファクトスタンダードです。特徴を改めて整理すると以下の通りです。
- Raspberry Pi 5クラスでもリアルタイム動作する圧倒的な軽量性
- Home AssistantのデフォルトTTSエンジンとして完全統合済み
- 公式リポジトリはOHF-Voice/piper1-gpl(v1.4.2、GPL-3.0)
- 日本語利用にはコミュニティフォークのayutaz/piper-plus(v2.0系、MIT)が現実解
- Whisper・Ollamaと組み合わせれば完全ローカルの音声AIが数千円のハードから作れる
2025年10月のリポジトリアーカイブと2024年のOHF-Voice移管により、ネット上の情報は新旧混在しています。今から新規に導入するなら、迷わずpiper1-gplまたはpiper-plusを選ぶのが正解です。特にHome Assistant環境やRaspberry Piを持っている方は、まずアドオンやpip install piper-ttsでインストールして、その速度と品質を体感してみてください。
今後のロードマップとしては、公式piper1-gpl側でも日本語含む未対応言語のモデル追加、v2.0系のC++コード復活が予告されています。piper-plus側もv2.0でCUDA 12.8+bf16対応と学習効率が大きく改善しており、オリジナルボイス作成のハードルはさらに下がる見込みです。「クラウド不要の音声AI」を実現する最短ルートとして、Piperは今後も進化し続けるでしょう。
📦 この記事で紹介した商品
- Raspberry Pi 5 (8GB RAM) → Amazonで見る
- ゼロから作るDeep Learning → Amazonで見る
- Piper TTS 音声合成入門 → Amazonで見る
- GB DDR5メモリ → Amazonで見る
- TB NVMe SSD → Amazonで見る
※ 上記リンクはAmazonアソシエイトリンクです。購入いただくと当サイトに紹介料が入ります。

