VOICEVOXは、無料で使える高品質なテキスト音声合成ソフトウェアとして、動画制作者や個人開発者に広く使われている。デフォルト設定でも十分な品質だが、イントネーション・間の取り方・語尾の上げ下げを丁寧に調整することで、プロのナレーションに匹敵する音声を作ることができる。
この記事では、VOICEVOX の発話品質を最大限に引き出すテクニックを 5つのレイヤー に分けて整理した。GUI の基本操作から API による自動化、後処理のポストプロダクションまで、段階的にレベルアップできる構成になっている。
レイヤー1: GUI上の基本パラメータ調整
VOICEVOX の GUI には、音声品質に直結する 5つの基本パラメータ がある。まずはこれらを理解することが出発点だ。
調整可能な5つのパラメータ
| パラメータ | 操作箇所 | 効果 |
|---|---|---|
| アクセント | アクセントバー(緑丸をスライド) | 単語ごとの高低アクセント位置を変更 |
| イントネーション | イントネーション縦バー | 一音ごとのピッチを連続値で調整。最も表現力が高い |
| 長さ(モーラ) | 長さバー | 子音・母音それぞれの長さを個別調整 |
| 話速 | 右パネル speedScale |
発話全体の速度(デフォルト1.0) |
| 抑揚 | 右パネル intonationScale |
イントネーションの振れ幅を増減(デフォルト1.0) |
パラメータ調整のコツ
アクセント位置の修正が最初のステップ。VOICEVOXは日本語のアクセントをかなり正確に推定するが、複合語や固有名詞では不自然になることがある。アクセントバーの緑丸をスライドさせて、正しい高低パターンに調整しよう。
単語の接続変更も重要だ。「ディープラーニング」が「ディープ」と「ラーニング」に分かれてしまった場合、アクセント項目で文字の間をクリックすることで1語にまとめられる。逆に、不要な結合を切り離すこともできる。
レイヤー2: イントネーションの精密制御
音声の「自然さ」を最も大きく左右するのがイントネーションだ。ここに時間をかけることが、品質向上の最短ルートになる。
疑問文の語尾上げ
VOICEVOXには 「疑問文を自動調整」 機能がある(設定からON)。?で終わる文の語尾を自動で上げてくれる仕組みだ。
- 語尾を伸ばし + 音高を上げ + 伸ばした部分を少し短くする、という3段階の処理が入る
- ただし、キャラクター・スタイルによっては全体の音高まで上がってしまうことがある
- その場合は自動調整をOFFにして、手動でイントネーションバーを調整する方が良い結果になる
手動イントネーション調整の実践手順
- まず自分で声に出して読む — 人間のイントネーションを耳で確認するのが最も確実な参照点
- キーボードの
2を押してイントネーション欄を表示する - 縦線のバーを上下させて、一音ずつ高さを調整する
Ctrl+ マウスホイールで さらに細かく 調整できるAltキーを押しながら操作すると、同じアクセント区間内をまとめて上下できる
金属っぽいノイズを防ぐ
音と音の間の落差が大きいときに、金属っぽい違和感のある音が出やすい。イントネーションの設定で前後の値が近くなるように調整すると軽減される。
例: 「ナンデモ」の「モ」: 5.57 → 6.01 に微調整
例: 「スギナイカラ」の「イ」: 6.13 → 6.01 に微調整
→ 前後の値の差を0.5以内に収めると自然さが大幅に増す
無声化の制御
「キ」「ツ」「ス」などが無声化されている場合、イントネーションバーが灰色になる。テキストをクリックすることで無声化を解除できる(対象はイ行とウ行のみ)。意図的に無声化を使い分けることで、より自然な発話になる。
レイヤー3: 「間」の制御 — 最も効果的なテクニック
読点(ポーズ)の調整は、最小の労力で最大の効果が得られるテクニックだ。適切な「間」があるだけで、聞き取りやすさが劇的に変わる。
読点の補充と調整
| テクニック | 方法 | 推奨値 |
|---|---|---|
| 読点の補充 | 長い文に適度に読点を追加 | 「原稿を見ず音声だけで内容がスッと入るか」が基準 |
| 読点の長さ調整 | 長さバーで個別設定 | 0.10〜0.15 が自然(デフォルト0.30〜0.50は長すぎ) |
| 開始無音 | prePhonemeLength |
デフォルト0.1秒。文脈に応じて調整 |
| 終了無音 | postPhonemeLength |
デフォルト0.1秒。文脈に応じて調整 |
| カギ括弧の間 | 「」前後に自動挿入される読点を削除 | 間が不要な箇所は手動で削除 |
読点のデフォルト値は長すぎる
これは多くのユーザーが見落としがちなポイントだ。VOICEVOXのデフォルトの読点長は 0.30〜0.50秒 だが、自然な会話では 0.10〜0.15秒 程度が心地よい。長さバーで個別に短くするだけで、一気にプロっぽい仕上がりになる。
短い語句の発音問題
「また、」「なお、」のような短い語句は、正しく発音されないことがある。
ワークアラウンド:
- 前に「、っ、」を入れる(促音でリズムを整える)
- v0.6.0以降では、無音の長さ調整機能で改善できる場合もある
- 読み方&アクセント辞書に登録しておくのも有効
「音声を繋いで書き出し」の活用
複数のテキスト欄を使って文を分割し、開始無音・終了無音をテキスト欄ごとに設定すると、繋いだときにちょうどいい間で喋ってくれる。長いナレーション原稿を扱うときに特に有効だ。
レイヤー4: APIによるプログラマブル制御
VOICEVOXはローカルでHTTPサーバーとして動作し、REST API で完全に制御できる。GUI で手動調整していた内容を、プログラムで自動化できるのが最大の強みだ。
公式APIドキュメント: voicevox.github.io/voicevox_engine/api/
基本ワークフロー
1. POST /audio_query?text=テキスト&speaker=ID
→ AudioQuery(JSON)を取得
2. AudioQuery の accent_phrases を編集
→ モーラごとの pitch / length を調整
3. pause_mora の vowel_length を調整
→ 読点の長さ(間の制御)
4. POST /synthesis?speaker=ID
→ 編集済み AudioQuery を送信 → WAV 取得
AudioQuery の全体構造
{
"accent_phrases": [...],
"speedScale": 1.0,
"pitchScale": 0.0,
"intonationScale": 1.0,
"volumeScale": 1.0,
"prePhonemeLength": 0.1,
"postPhonemeLength": 0.1,
"outputSamplingRate": 24000,
"outputStereo": false
}
| パラメータ | 型 | 説明 |
|---|---|---|
speedScale |
float | 話速。0.5で半速、2.0で倍速 |
pitchScale |
float | 全体の音高オフセット |
intonationScale |
float | 抑揚の強さ。1.5で誇張、0.5で平坦 |
volumeScale |
float | 音量 |
prePhonemeLength |
float | 発話前の無音(秒) |
postPhonemeLength |
float | 発話後の無音(秒) |
outputSamplingRate |
int | サンプリングレート |
accent_phrases の構造(モーラレベル制御)
ここが API 活用の核心部分だ。accent_phrases の中には moras 配列があり、一音ずつの子音長・母音長・ピッチを制御できる。
{
"moras": [
{
"text": "コ",
"consonant": "k",
"consonant_length": 0.06,
"vowel": "o",
"vowel_length": 0.12,
"pitch": 5.8
}
],
"accent": 1,
"pause_mora": {
"text": "、",
"vowel": "pau",
"vowel_length": 0.15
}
}
| フィールド | 制御対象 | 調整のポイント |
|---|---|---|
consonant_length |
子音の長さ | 破裂音(k, t, p)を短くするとキレが出る |
vowel_length |
母音の長さ | 語尾を伸ばしたいときに増やす |
pitch |
一音のピッチ | イントネーションの精密制御。前後差を0.5以内に |
pause_mora.vowel_length |
読点の長さ | 0.10〜0.15が自然 |
Python での実装例
import requests
import json
BASE_URL = "http://localhost:50021"
SPEAKER_ID = 3 # ずんだもん(ノーマル)
def generate_high_quality_voice(text: str, output_path: str):
# 1. AudioQuery を取得
query = requests.post(
f"{BASE_URL}/audio_query",
params={"text": text, "speaker": SPEAKER_ID}
).json()
# 2. パラメータを調整
query["speedScale"] = 1.1 # 少し速めに
query["intonationScale"] = 1.2 # 抑揚をやや強く
query["prePhonemeLength"] = 0.05
query["postPhonemeLength"] = 0.05
# 3. 読点の長さを自然な値に
for phrase in query["accent_phrases"]:
if phrase.get("pause_mora"):
phrase["pause_mora"]["vowel_length"] = 0.12
# 4. ピッチの急激な変化を滑らかに
for phrase in query["accent_phrases"]:
moras = phrase["moras"]
for i in range(1, len(moras)):
diff = abs(moras[i]["pitch"] - moras[i-1]["pitch"])
if diff > 1.0:
avg = (moras[i]["pitch"] + moras[i-1]["pitch"]) / 2
moras[i]["pitch"] = avg + 0.3 * (1 if moras[i]["pitch"] > moras[i-1]["pitch"] else -1)
# 5. 音声合成
audio = requests.post(
f"{BASE_URL}/synthesis",
params={"speaker": SPEAKER_ID},
json=query
).content
with open(output_path, "wb") as f:
f.write(audio)
print(f"✅ 生成完了: {output_path}")
generate_high_quality_voice(
"こんにちは、VOICEVOXの音声品質を極限まで高める方法を紹介します。",
"output.wav"
)
非公式クライアントライブラリ
Pythonの場合、voicevox-client を使うとさらに簡潔に書ける。
from vvclient import Client
import asyncio
async def main():
async with Client() as client:
audio_query = await client.create_audio_query(
"こんにちは!", speaker=1
)
with open("voice.wav", "wb") as f:
f.write(await audio_query.synthesis(speaker=1))
asyncio.run(main())
レイヤー5: 後処理(ポストプロダクション)
VOICEVOXの出力音声をさらに仕上げることで、配信・動画に使えるレベルの品質になる。
推奨する後処理チェーン
| 順番 | 処理 | ツール | 効果 |
|---|---|---|---|
| 1 | ノーマライズ | ffmpeg / Audacity | 音量を統一 |
| 2 | EQ(イコライザー) | DAW / Audacity | 200Hz以下カット(モゴモゴ感除去)、3-5kHz ブースト(明瞭度向上) |
| 3 | コンプレッサー | DAW | 音量のダイナミクスを均す |
| 4 | ノイズゲート | DAW | 無音部分の微小ノイズを除去 |
| 5 | 軽いリバーブ | DAW | ナレーション向けの空間感を追加(Dry多め) |
ffmpeg でのワンライナー後処理
個人開発者ならDAWを使わずとも、ffmpeg で基本的な後処理ができる。
# ノーマライズ + ハイパスフィルタ + 明瞭度ブースト
ffmpeg -i input.wav \
-af "highpass=f=200,equalizer=f=4000:t=q:w=1:g=3,loudnorm" \
output.wav
実践チェックリスト
段階ごとにまとめた。上から順に取り組むことで、効率よく品質を上げられる。
✅ 必須(これだけは確実に)
- 単語の区切りが意図通りか全文確認
- 読み方が正しいか全文確認(辞書登録を活用)
- 疑問文の語尾上げが機能しているか確認
🔧 推奨(ここまでやると大きく差が出る)
- 自分で声に出して読み、イントネーションの参考にする
- 適度に読点を補う(一息で読めない長さを区切る)
- 読点の長さを 0.10〜0.15 に調整(デフォルトは長すぎ)
- カギ括弧前後の不要なポーズを削除
- カタカナ語の語尾に伸ばし棒を追加(「インフィニティ」→「インフィニティー」)
- イントネーションの前後の落差を滑らかに
- 「~していた」等の語尾パターンを複数試す
🎯 上級(プロレベル)
- APIでモーラレベルの pitch / length を精密制御
- 後処理(EQ + ノーマライズ + コンプ)をパイプライン化
- スタイル(ノーマル/あまあま/ツンツン等)を場面で使い分け
- プリセット機能で頻出パターンを保存
- ルビ機能(
{漢字|かんじ})で読み方を直接指定
ユースケース別の推奨設定
| ユースケース | 話速 | 抑揚 | 読点長 | 後処理 |
|---|---|---|---|---|
| 動画ナレーション | 1.0〜1.1 | 1.1〜1.3 | 0.12 | EQ + ノーマライズ |
| ポッドキャスト | 0.9〜1.0 | 1.0〜1.2 | 0.15 | コンプ + 軽リバーブ |
| ゲーム実況風 | 1.1〜1.3 | 1.3〜1.5 | 0.08 | ノーマライズ |
| 読み聞かせ | 0.8〜0.9 | 1.2〜1.4 | 0.20 | リバーブ |
| 業務用アナウンス | 1.0 | 0.8〜1.0 | 0.10 | EQ + コンプ |
まとめ
VOICEVOXの音声品質は、デフォルト設定でも「そのまま使える」レベルだが、本記事で紹介した5つのレイヤーを意識することで、プロのナレーションに近づけることができる。
効果の大きい順に並べると:
- 読点の長さ調整(0.10〜0.15に短縮)— 最小労力で最大効果
- イントネーションの滑らか化 — 前後差を小さくするだけで自然に
- 読点の補充 — 聞き手の理解度が変わる
- API活用 — 大量生成や反復作業の自動化に
- 後処理 — 配信品質への最後の仕上げ
VOICEVOXは無料でありながら、調整次第で商用レベルの音声を生成できる。個人開発者にとって、音声UIやコンテンツ制作の強力な武器になるはずだ。
参考リンク:
- VOICEVOX 公式サイト・使い方ガイド
- VOICEVOX Engine API ドキュメント
- VOICEVOX 協同組合 Wiki — 調整ノウハウ
- voicevox-client (Python)
💡 エキスパートコメント
AI Solo Craft 編集部のエキスパートが、今日のニュースを専門視点で読み解きます。
「間」の制御が最も効果的、という指摘に強く共感します。UIデザインでもホワイトスペースが読みやすさを決めるように、音声でも「無音の設計」が聞き心地を左右するんですよね。読点のデフォルト値が長すぎるというのは、多くのユーザーが気づかないまま使っている落とし穴。プリセット機能でユースケース別の設定を保存しておけば、制作ワークフロー全体がスムーズになります。
VOICEVOXが完全無料でこの品質を出せるのは、個人開発者の音声コンテンツ参入障壁を大幅に下げています。特にAPI経由での自動化は、ポッドキャスト・動画の量産体制を一人で組めることを意味します。商用利用可能なキャラクターも多いので、プロダクトのオンボーディング音声やチュートリアル動画など、ビジネス活用の幅は想像以上に広いですね。
📋 デスクコメント
この記事のポイントは「5つのレイヤー」という構造化にあります。初心者は読点調整から、上級者はAPI自動化からと、自分のレベルに合わせて取り組める設計になっている。個人開発者への具体的なアクションとしては、まず(1)読点の長さを0.12に設定してみる、(2)ffmpegのワンライナーで後処理する、の2つだけで劇的に変わるはず。音声品質は「やるかやらないか」の差が大きい領域です。
VOICEVOXのAPIがローカルHTTPサーバーとして動くのは個人開発者にとって最高の設計だと思います。
audio_query→ JSON編集 →synthesisの3ステップで完全にプログラマブル制御できるので、バッチ処理やCI/CDに組み込むのも容易です。記事中のピッチ平滑化コードは実用的ですが、本番運用するならaccent_phrasesのバリデーションも入れておくと安心ですね。サンプリングレートを上げても品質は変わらない点は、公式ドキュメントにも明記されている重要な注意点です。