| name | japanese-tts-reading |
| description | 日本語テキストを音声に変換するTTS(Text-to-Speech)スキル。ナレーション原稿の読み上げ、コンテンツの音声化、アクセシビリティ対応に使用。 |
Japanese TTS Reading Skill
日本語テキストを自然な音声に変換するText-to-Speechスキル。
When to Use This Skill
以下の場合にこのスキルを使用:
- 「テキストを読み上げて」「音声に変換して」
- 「ナレーション音声を作成して」
- 「日本語TTSで出力して」
- 「音声ファイルを生成して」
対応TTS エンジン
1. macOS Say コマンド(ローカル・無料)
macOS標準の音声合成機能を使用。追加設定不要で即座に利用可能。
# 基本的な使用法
say -v Kyoko "こんにちは、世界"
# ファイルに保存
say -v Kyoko -o output.aiff "こんにちは、世界"
# MP3に変換(ffmpegが必要)
say -v Kyoko -o output.aiff "テキスト" && ffmpeg -i output.aiff output.mp3
利用可能な日本語ボイス:
| ボイス名 | 性別 | 特徴 |
|---|---|---|
| Kyoko | 女性 | 標準的な女性の声 |
| Otoya | 男性 | 標準的な男性の声 |
インストール確認:
# 利用可能な日本語ボイスを確認
say -v '?' | grep ja_JP
2. Google Cloud Text-to-Speech(クラウド・高品質)
Google の WaveNet / Neural2 音声を使用した高品質TTS。
セットアップ:
# 1. Google Cloud SDK インストール
brew install --cask google-cloud-sdk
# 2. 認証
gcloud auth application-default login
# 3. TTS API 有効化
gcloud services enable texttospeech.googleapis.com
使用例:
# Python で使用
pip install google-cloud-texttospeech
# スクリプト実行
python scripts/google-tts.py --text "こんにちは" --output output.mp3
推奨ボイス:
| ボイス名 | 性別 | 品質 |
|---|---|---|
| ja-JP-Neural2-B | 女性 | 最高品質 |
| ja-JP-Neural2-C | 男性 | 最高品質 |
| ja-JP-Wavenet-A | 女性 | 高品質 |
| ja-JP-Wavenet-B | 女性 | 高品質 |
| ja-JP-Wavenet-C | 男性 | 高品質 |
| ja-JP-Wavenet-D | 男性 | 高品質 |
3. VOICEVOX(ローカル・高品質・無料)
日本語に特化したオープンソース音声合成エンジン。
セットアップ:
# Docker で起動
docker pull voicevox/voicevox_engine:cpu-ubuntu20.04-latest
docker run --rm -p 50021:50021 voicevox/voicevox_engine:cpu-ubuntu20.04-latest
使用例:
# 音声合成クエリを作成
curl -X POST "http://localhost:50021/audio_query?text=こんにちは&speaker=1" \
-H "Content-Type: application/json" > query.json
# 音声を生成
curl -X POST "http://localhost:50021/synthesis?speaker=1" \
-H "Content-Type: application/json" \
-d @query.json > output.wav
利用可能なキャラクター:
| speaker ID | キャラクター |
|---|---|
| 0 | 四国めたん(あまあま) |
| 1 | ずんだもん(あまあま) |
| 2 | 四国めたん(ノーマル) |
| 3 | ずんだもん(ノーマル) |
4. OpenAI TTS(クラウド・高品質)
OpenAI の TTS API を使用。
セットアップ:
# 環境変数設定
export OPENAI_API_KEY="sk-xxx"
使用例:
curl https://api.openai.com/v1/audio/speech \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "tts-1-hd",
"input": "こんにちは、世界",
"voice": "nova"
}' \
--output output.mp3
利用可能なボイス:
| ボイス | 特徴 |
|---|---|
| alloy | 中性的 |
| echo | 男性的 |
| fable | 男性的・イギリス風 |
| onyx | 男性的・深い |
| nova | 女性的 |
| shimmer | 女性的・柔らかい |
Usage Examples
基本的な使用法
ユーザー: /japanese-tts-reading 「本日は晴天なり」
→ macOS: say -v Kyoko "本日は晴天なり"
→ ファイル保存: say -v Kyoko -o narration.aiff "本日は晴天なり"
長文の読み上げ
ユーザー: /japanese-tts-reading --file script.txt --output narration.mp3
→ テキストファイルを読み込んで音声化
→ MP3形式で保存
高品質出力
ユーザー: /japanese-tts-reading --engine google --voice ja-JP-Neural2-B "高品質なナレーション"
→ Google Cloud TTS を使用
→ Neural2 ボイスで最高品質出力
VOICEVOX キャラクター
ユーザー: /japanese-tts-reading --engine voicevox --speaker 1 "ずんだもんなのだ"
→ VOICEVOX エンジンを使用
→ ずんだもんの声で出力
パラメータ
| パラメータ | デフォルト | 説明 |
|---|---|---|
| --engine | macos | TTS エンジン (macos/google/voicevox/openai) |
| --voice | Kyoko | ボイス名 |
| --speaker | 0 | VOICEVOX speaker ID |
| --output | - | 出力ファイルパス |
| --file | - | 入力テキストファイル |
| --rate | 1.0 | 読み上げ速度 (0.5-2.0) |
| --format | mp3 | 出力形式 (mp3/wav/aiff) |
実装ガイド
macOS Say コマンド(推奨・即時利用可能)
#!/bin/bash
# scripts/tts-macos.sh
TEXT="$1"
OUTPUT="${2:-output.aiff}"
VOICE="${3:-Kyoko}"
RATE="${4:-200}" # 1-500 (デフォルト: 200)
say -v "$VOICE" -r "$RATE" -o "$OUTPUT" "$TEXT"
# MP3に変換(オプション)
if command -v ffmpeg &> /dev/null; then
ffmpeg -i "$OUTPUT" -y "${OUTPUT%.aiff}.mp3"
rm "$OUTPUT"
fi
Google Cloud TTS
# scripts/google-tts.py
from google.cloud import texttospeech
import argparse
def synthesize_speech(text, output_file, voice_name="ja-JP-Neural2-B"):
client = texttospeech.TextToSpeechClient()
synthesis_input = texttospeech.SynthesisInput(text=text)
voice = texttospeech.VoiceSelectionParams(
language_code="ja-JP",
name=voice_name
)
audio_config = texttospeech.AudioConfig(
audio_encoding=texttospeech.AudioEncoding.MP3
)
response = client.synthesize_speech(
input=synthesis_input,
voice=voice,
audio_config=audio_config
)
with open(output_file, "wb") as out:
out.write(response.audio_content)
print(f"Audio saved to {output_file}")
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--text", required=True)
parser.add_argument("--output", default="output.mp3")
parser.add_argument("--voice", default="ja-JP-Neural2-B")
args = parser.parse_args()
synthesize_speech(args.text, args.output, args.voice)
VOICEVOX
# scripts/voicevox-tts.py
import requests
import argparse
VOICEVOX_URL = "http://localhost:50021"
def synthesize_voicevox(text, speaker=1, output_file="output.wav"):
# 音声合成クエリを作成
query_response = requests.post(
f"{VOICEVOX_URL}/audio_query",
params={"text": text, "speaker": speaker}
)
query = query_response.json()
# 音声を合成
synthesis_response = requests.post(
f"{VOICEVOX_URL}/synthesis",
params={"speaker": speaker},
json=query
)
with open(output_file, "wb") as f:
f.write(synthesis_response.content)
print(f"Audio saved to {output_file}")
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--text", required=True)
parser.add_argument("--speaker", type=int, default=1)
parser.add_argument("--output", default="output.wav")
args = parser.parse_args()
synthesize_voicevox(args.text, args.speaker, args.output)
ユースケース
1. ナレーション原稿の音声化
ユーザー: セールス動画のナレーションを音声化して
→ 1. 原稿テキストを確認
→ 2. 適切なボイスを選択(プロフェッショナル: Google Neural2)
→ 3. 音声ファイルを生成
→ 4. 必要に応じて速度・トーンを調整
2. ブログ記事の音声版作成
ユーザー: この記事を音声に変換してポッドキャスト用に
→ 1. テキストを段落ごとに分割
→ 2. 適切な間を挿入
→ 3. 音声ファイルを生成
→ 4. MP3形式で出力
3. アクセシビリティ対応
ユーザー: ウェブサイトのコンテンツを音声で提供したい
→ 1. 主要コンテンツを抽出
→ 2. 音声ファイルを生成
→ 3. ウェブプレイヤーと統合
品質ガイドライン
読み上げテキストの最適化
- 句読点を適切に配置 - 自然な間を作る
- 難読漢字にルビを追加 - 読み間違いを防ぐ
- 長い文は分割 - 1文30文字程度を目安
- 専門用語は読み仮名を併記
例
Before:
「日本国憲法第九条は戦争放棄を規定している。」
After:
「日本国憲法(にほんこくけんぽう)第九条(だいきゅうじょう)は、
戦争放棄(せんそうほうき)を規定(きてい)しています。」
トラブルシューティング
macOS で日本語ボイスが見つからない
# システム環境設定で日本語ボイスをダウンロード
open "x-apple.systempreferences:com.apple.preference.speech"
# または直接確認
say -v '?' | grep -i japan
VOICEVOX が起動しない
# Docker 確認
docker ps
# ログ確認
docker logs voicevox
# ポート確認
curl http://localhost:50021/speakers
Google TTS 認証エラー
# 認証状態確認
gcloud auth application-default print-access-token
# 再認証
gcloud auth application-default login
関連スキル
- copywriting-helper - ナレーション原稿の作成
- vsl - VSL台本の音声化
- launch-video - ローンチ動画ナレーション