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

音声合成API

音声合成APIは、テキストとvoice_idを受け取り、MP3またはWAV音声を 返します。Base URLはhttps://api.kitschlabs.comで、公開APIへのリクエストは xi-api-keyヘッダーで認証します。

API概要​

項目値
Base URLhttps://api.kitschlabs.com
認証xi-api-key: <API_KEY>
デフォルト出力mp3_44100_128 (audio/mpeg)
追加出力wav_24000 (audio/wav)

language_codeスキーマはen、ko、ja、zhを受け付けます。利用できる 言語と音声はアカウントによって異なる場合があるため、GET /v1/voicesの レスポンスから選択してください。

どのエンドポイントを使用しますか?​

MethodEndpoint用途
GET/v1/voices利用可能な音声を取得
POST/v1/text-to-speech/{voice_id}完成した音声ファイルを生成

どのように認証しますか?​

すべての公開エンドポイントにxi-api-keyを送信します。例の<API_KEY>を 発行されたキーに置き換え、実際のキーをコードやログに残さないでください。

xi-api-key: <API_KEY>

音声一覧を取得するには?​

curl "https://api.kitschlabs.com/v1/voices" \
--header "xi-api-key: <API_KEY>"

音声合成には/v1/voicesレスポンスのvoice_idを使用します。表示名は変更される 可能性があるため、表示名ではなくvoice_idを保存してください。

音声を生成するには?​

POST /v1/text-to-speech/{voice_id}にJSONを送信し、レスポンスボディを ファイルに保存します。

curl --request POST \
"https://api.kitschlabs.com/v1/text-to-speech/<VOICE_ID>?output_format=mp3_44100_128" \
--header "xi-api-key: <API_KEY>" \
--header "Content-Type: application/json" \
--data '{
"text": "今日も良い一日をお過ごしください。",
"language_code": "ja"
}' \
--output speech.mp3

どのフィールドを送信しますか?​

フィールド型必須説明
textstringはい合成するテキスト。空文字列は不可
language_codestringいいえen、ko、ja、zhのいずれか
instructstringいいえ互換用フィールド。現在、話し方の指示には対応していません

speedとdurationで話す速さや音声の長さを調整することはできません。

角括弧を含むテキスト​

[laughter]などの角括弧を含む文字列は通常のテキストです。 タグによる笑い・ため息・感情・言語の制御には対応しておらず、文字列が そのまま読み上げられる場合があります。発話させる文章と句読点を入力してください。

エラーにはどのように対応しますか?​

エラーレスポンスには通常、detail.status、detail.message、 detail.request_idが含まれます。

{
"detail": {
"status": "rate_limited",
"message": "Rate limit exceeded. Please retry later.",
"request_id": "<REQUEST_ID>"
}
}
ステータス意味推奨対応
400·422リクエスト値が不正body、tag、範囲を修正
401APIキーがない、または無効キーとxi-api-keyヘッダーを確認
402利用可能なcreditが不足請求の状態を確認
404音声が見つからない、またはアクセス不可voice_idとアカウントの権限を確認
429アカウントのリクエスト上限を超過Retry-Afterに従いbackoffを適用
5xx一時的なサーバーエラーrequest IDを記録し、回数を制限して再試行

成功時とエラー時のレスポンスヘッダーに含まれるx-kitsch-request-idを ログに残すと、サポートへの問い合わせや障害追跡に利用できます。