ニューラル音声合成

音声合成API

感情表現豊かで​表現力の​ある​音声合成で​自然な​音声を​生成。​あらゆる​アプリケーション向けに、​テキストを​生き​生きとした​日本語と​英語の​音声に​変換します。

人間のような​音声

感情知能を​備えた​最先端の​ニューラルTTS

自然な​音声
自然な​イントネーションと​韻律を​持つ非常に​リアルな​日本語と​英語の​音声
感情表現
感情的な​音声変調で​喜び、​懸念、​興奮、​または​プロフェッショナリズムを​表現
カスタム音声クローン
ブランド音声を​クローンするか、​一貫した​オーディオブランディングの​ために​カスタム音声を​作成
リアルタイムストリーミング
インタラクティブアプリケーションと​リアルタイム会話の​ための​低遅延ストリーミング
複数言語
ネイティブ発音品質で​日本語、​英語などを​サポート
エンタープライズグレード
99.9%稼働時間SLA、​セキュアな​処理、​エンタープライズニーズ向けの​専用サポート

自分で​試してみてください

この​インタラクティブな​デモで​テキスト音声APIを​体験してください。​テキストを​自然な​音声に​変換します。

🎵 テキスト音声合成デモ
テキストを​自然な​音声に​変換
最大200文字45/200
💡 ヒント:Ctrl+Enterで​素早く​音声を​生成できます。​最良の​結果を​得るには、​200文字までを​使用してください。

APIキー

APIキーを​設定
APIキーを​入力すると、​以下の​コード例に​自動的に​反映されます。

クイックスタート

3つの​ステップで​音声を​生成できます。

ステップ1:認証

すべての​リクエストの​Authorizationヘッダーに​APIキーを​含めてください。

Authorization: Bearer YOUR_API_KEY
ステップ2:最初の​リクエスト

音声に​変換したい​テキストを​POSTリクエストで​送信します。

curl -s -X POST "https://api.shisa.ai/tts" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "voice_id": "e3362c0a-7677-4cd8-b122-91fb093305c9",
    "format": "mp3",
    "stream": false,
    "text": "こんにちは。Shisa Talkへようこそ。"
  }' \
  --output speech.mp3

最小リクエスト

voice_id、​text、​formatのみが​必須です。​リアルタイムストリーミングには​stream: trueを​設定してください。

ステップ3:音声を​再生

APIは​指定された​形式の​バイナリ音声データを​返します。​ファイルに​保存するか、​オーディオプレーヤーに​直接ストリーミングできます。

# Play the generated audio
ffplay -nodisp -autoexit speech.mp3

# Or stream directly
curl -s -X POST "https://api.shisa.ai/tts" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{"voice_id": "e3362c0a-7677-4cd8-b122-91fb093305c9", "format": "mp3", "stream": true, "text": "ストリーミングテストです。"}' \
  --output - | ffplay -nodisp -autoexit -

APIエンドポイント

音声生成と​利用​可能な​音声の​一覧取得の​ための​2つの​エンドポイント。

音声生成
POSThttps://api.shisa.ai/tts

テキストを​音声に​変換します。​指定された​形式の​バイナリ音声データを​返します。

音声一覧
GEThttps://api.shisa.ai/tts/voices

利用​可能な​音声の​メタデータ、​対応フォーマット、​ストリーミング対応状況を​JSON配列で​返します。

リクエストパラメータ

POST /tts エンドポイントの​パラメータ。

POST /tts パラメータ
パラメータ必須説明
voice_idstring必須使用する​音声の​UUID。​利用​可能な​IDは​GET /tts/voicesから​取得できます。
textstring必須音声に​変換する​テキスト。​最大5000文字。
formatstring必須出力音声フォーマット。​選択した​音声が​サポートする​形式を​指定してください。
オプション: mp3, wav, ogg, pcm, flac
streamboolean任意trueの​場合、​リアルタイム再生用の​チャンクストリームと​して​音声を​返します。​streaming: trueの​音声のみ​利用​可能です。
デフォルト: false

レスポンス形式

音声生成と​音声一覧の​レスポンス形式。

POST /tts — バイナリ音声

成功時、​APIは​適切な​Content-Typeヘッダー​(例:audio/mp3)​付きの​生バイナリ音声データを​返します。​レスポンスボディを​そのまま​ファイルに​保存してください。

# The response is binary audio data — save directly to file
curl -s -X POST "https://api.shisa.ai/tts" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"voice_id": "e3362c0a-7677-4cd8-b122-91fb093305c9", "format": "mp3", "text": "テスト"}' \
  --output speech.mp3
GET /tts/voices — JSON

利用​可能な​音声オブジェクトの​JSON配列を​返します。

[
  {
    "id": "e3362c0a-7677-4cd8-b122-91fb093305c9",
    "description": "Young male Japanese voice...",
    "language": "Japanese & English",
    "gender": "Male",
    "formats": ["mp3", "ogg", "pcm"],
    "streaming": true
  }
]

音声フィールド

  • id: リクエストで​voice_idと​して​使用する​UUID
  • description: 人間が​読める​音声の​説明
  • language: 対応言語
  • gender: 音声の​性別​(Male、​Female、​Neutral)
  • formats: 対応する​出力音声フォーマット
  • streaming: リアルタイムストリーミングの​対応状況

エラーハンドリング

エラーレスポンスと​その​対処方法。

エラーレスポンス形式
{
  "context": ["..."],
  "code": 104,
  "name": "ErrAuthenticationFailed",
  "error": "Authentication error: Invalid token"
}
エラーコード
ステータス原因対処方​法
400パラメータの​欠落または​不正voice_id、​text、​formatフィールドを​確認してください
400音声に​対応していない​フォーマット音声の​formats配列に​含まれる​フォーマットを​使用してください
401APIキーが​無効または​未設定Authorization: Bearerヘッダーを​確認してください
429レート制限超過指数バック​オフで​待機して​リトライしてください
500内部​サーバーエラーリクエストを​リトライするか、​サポートに​連絡してください

シンプルな​統合

使いやすい​APIで​数分で​音声生成を​開始

cURLで​クイックスタート
# List available voices
curl -s -X GET "https://api.shisa.ai/tts/voices" \
  -H "Authorization: Bearer YOUR_API_KEY" | jq .

# Generate speech
curl -s -X POST "https://api.shisa.ai/tts" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "voice_id": "e3362c0a-7677-4cd8-b122-91fb093305c9",
    "format": "mp3",
    "stream": false,
    "text": "こんにちは。Shisa Talkへようこそ。"
  }' \
  --output speech.mp3

# Stream audio directly to a player
curl -s -X POST "https://api.shisa.ai/tts" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "voice_id": "e3362c0a-7677-4cd8-b122-91fb093305c9",
    "format": "mp3",
    "stream": true,
    "text": "ストリーミングテストです。"
  }' \
  --output - | ffplay -nodisp -autoexit -
Python統合
import requests

API_URL = "https://api.shisa.ai"
API_KEY = "YOUR_API_KEY"
HEADERS = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

# List available voices
def list_voices():
    response = requests.get(f"{API_URL}/tts/voices", headers=HEADERS)
    return response.json()

# Generate speech
def generate_speech(text, voice_id="e3362c0a-7677-4cd8-b122-91fb093305c9", format="mp3", stream=False):
    response = requests.post(
        f"{API_URL}/tts",
        headers=HEADERS,
        json={
            "voice_id": voice_id,
            "format": format,
            "stream": stream,
            "text": text
        },
        stream=stream
    )

    output_file = f"output.{format}"
    with open(output_file, "wb") as f:
        if stream:
            for chunk in response.iter_content():
                f.write(chunk)
        else:
            f.write(response.content)

    return output_file

# Example usage
voices = list_voices()
print(voices)

audio_file = generate_speech(
    "お客様の声を大切にしています。",
    voice_id="e3362c0a-7677-4cd8-b122-91fb093305c9"
)
JavaScript/TypeScriptストリーミング
const API_URL = 'https://api.shisa.ai';
const API_KEY = 'YOUR_API_KEY';
const headers = {
  'Authorization': `Bearer ${API_KEY}`,
  'Content-Type': 'application/json',
};

// List available voices
const listVoices = async () => {
  const response = await fetch(`${API_URL}/tts/voices`, { headers });
  return response.json();
};

// Generate speech
const generateSpeech = async (text, voiceId = 'e3362c0a-7677-4cd8-b122-91fb093305c9', format = 'mp3') => {
  const response = await fetch(`${API_URL}/tts`, {
    method: 'POST',
    headers,
    body: JSON.stringify({
      voice_id: voiceId,
      format,
      stream: true,
      text,
    }),
  });

  // Handle streaming response
  const reader = response.body.getReader();
  const chunks = [];

  while (true) {
    const { done, value } = await reader.read();
    if (done) break;
    chunks.push(value);
  }

  // Combine chunks and create audio blob
  const blob = new Blob(chunks, { type: `audio/${format}` });
  const url = URL.createObjectURL(blob);

  // Play audio
  const audio = new Audio(url);
  audio.play();
};

// Example usage
const voices = await listVoices();
console.log(voices);

await generateSpeech('ようこそ、Shisa Talkへ。', 'e3362c0a-7677-4cd8-b122-91fb093305c9');

信頼される​ユースケース

企業が​TTS APIを​どのように​活用しているかを​ご覧ください

バーチャルアシスタント
魅力的な​ユーザーインタラクションの​ために、​自然な​音声で​AIアシスタント、​チャットボット、​音声インターフェースを​強化。
  • AI電話エージェント
  • スマートホームアシスタント
  • インタラクティブ音声応答
  • 音声対応アプリ
オーディオブックと​コンテンツ
プロフェッショナル品質の​ナレーションで​オーディオブック、​ポッドキャスト、​教育コンテンツを​大規模に​作成。
  • オーディオブックナレーション
  • eラーニングコース
  • ポッドキャスト制作
  • ビデオナレーション
アクセシビリティ
視覚障害者が​コンテンツに​アクセスできるようにし、​すべての​ユーザーに​音声代替を​提供。
  • スクリーンリーダー
  • ニュース記事音声
  • 文書ナレーション
  • ナビゲーション支援

アプリケーションに​音声を

月間20,000文字の​無料から​始められます。​いつでも​アップグレードしてより​多くの​容量と​機能を​利用できます。