メインコンテンツまでスキップ

TTS API リファレンス

Shisa TTS の​ HTTP API は​ 2 つの​エンドポイントを​公開しています。​1 つは​音声を​生成する​もの、​もう​ 1​ つは​利用​可能な​音声を​一覧取得する​ものです。​どちらも​標準の​ベアラートークンで​認証します。​ストリーミング音声を​ WebSocket で​受け取る​場合は、WebSocket ストリーミングを​参照してください。

Authorization: Bearer YOUR_API_KEY

エンドポイント

音声生成

POST https://api.shisa.ai/tts

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

音声​一​覧

GET https://api.shisa.ai/tts/voices

現在アクティブな​すべての​音声に​ついて、​メタデータ、​対応形式、​サンプルレート、​ストリーミング対応状況を​含むvoices配列を​持つオブジェクトを​返します。​カタログに​ついては音声を​参照してください。

リクエストパラメータ

POST /tts エンドポイントの​パラメータ。​JSON ボディとして​送信します。

パラメータ必須説明
voice_idstring必須使用する​音声の​ UUID。​利用​可能な​ ID は​ GET /tts/voices から​取得します。
textstring必須音声に​変換する​テキスト。​デフォルト上限: 5,000 Unicode文字。
formatstring必須出力音声形式。​選択した​音声が​サポートしている​必要が​あります。mp3wavoggpcmflac の​いずれか。
streamboolean任意true の​場合、​リアルタイム再生用に​チャンク化された​ストリームと​して​音声を​返します。​音声のstreamingtrueで、​かつ​選択した​形式が​その​プロバイダーで​ストリーミング対応している​必要が​あります。​デフォルトはfalse
sample_rateinteger任意省略または0で​デフォルトの​24,000 Hz。​複数の​サンプルレートを​掲載する​音声で​のみ、​0以外の​値を​指定します。​Qwen系音声のogg形式では​上書きを​指定できません。
temperaturenumber任意プロバイダー固有の​変化量制御。​現在は​Qwen系音声で​有効です​(Qwenの​デフォルト: 0.5)。​他の​音声では​省略してください。

レスポンス

POST /tts — バイナリ音声

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

# 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": "61ba1141-60aa-4bc3-a3b3-be1ec20700b3", "format": "mp3", "text": "テスト"}' \
--output speech.mp3

GET /tts/voices — JSON

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

{
"voices": [
{
"id": "e3362c0a-7677-4cd8-b122-91fb093305c9",
"description": "Young male Japanese voice...",
"language": "Japanese & English",
"gender": "Male",
"formats": ["mp3", "ogg", "pcm"],
"sample_rates": [8000, 16000, 22050, 24000, 32000, 44100, 48000],
"streaming": true
}
]
}

音声オブジェクトの​フィールド:

フィールド説明
idstring (uuid)リクエストで​ voice_id と​して​使用する​ UUID。
descriptionstring人間が​読める​音声の​説明。
languagestring対応​言語。
genderstring音声の​性別​(Male、​Female、​Neutral)。
formatsarray対応する​出力音声形式。
sample_ratesarray対応する​出力サンプルレート​(Hz)。
streamingboolean音声の​プロバイダーが​少なくとも​1つの​形式で​リアルタイムストリーミングに​対応しているか​どうか。​すべてのformats値が​ストリーミング可能と​いう​意味では​ありません。

エラーハンドリング

エラーは​次の​形式の​ JSON で​返されます。

{
"context": ["..."],
"code": 104,
"name": "ErrAuthenticationFailed",
"error": "Authentication error: Invalid token"
}

エラーコード

ステータス原​因対​処​方法
400パラメータの​欠落または​不正voice_idtextformat フィールドを​確認してください。
400音声に​対応していない​形式音声の​ formats 配列に​記載された​形式を​使用してください。
400プロバイダーと​形式の​組み合わせが​ストリーミング非対応streamfalseに​するか、​ストリーミング対応の​形式を​選択してください。
400サポートされていない​サンプルレートsample_rateを​省略するか、​音声が​設定可能な​レートを​選択してください。
400テキストが​設定上限を​超過テキストを​短くしてください。​デフォルト上限は​5,000文字です。
401API キーが​無効または​未設定Authorization: Bearer ヘッダーを​確認してください。
403サービスへの​アクセスを​拒否選択した​音声の​背後に​ある​プロバイダーを、​この​キーでは​利用できません。
404TTSサービス/プロバイダーが​未登録サービス提供状況を​確認するか、​サポートに​お問い​合わせください。
429レート制限超過指数バック​オフで​待機して​リトライしてください。
500内部​サーバーエラーリクエストを​リトライするか、​サポートに​連絡してください。
警告

リクエストされたformatが​選択した​音声のformats配列に​含まれていない​場合も400が​返されます。​さらに、streaming: trueは​すべての​対応形式を​ストリーミングできる​ことを​保証しません。​プロバイダーと​形式の​組み合わせが​非対応の​場合、stream: true400を​返します。

次の​ステップ

  • クイックスタートで​最初の​リクエストを​順を​追って​実行。
  • 音声カタログで​利用​可能な​音声を​閲覧。
  • 利用が​どのように​課金されるかを料​金で​確認。