バッチ合成 API (プレビュー) によるテキスト読み上げ

バッチ合成 API (プレビュー) は、大量のテキスト入力をその長短にかかわらず非同期的に合成できます。 パブリッシャーとオーディオ コンテンツ プラットフォームは、長い音声コンテンツをバッチで作成できます。 たとえば、オーディオブック、ニュース記事、ドキュメントなどです。 10 分を超える合成音声をバッチ合成 API で作成できます。

重要

バッチ合成 API は現在パブリック プレビュー段階です。 その一般提供が開始された後、Long Audio API は非推奨となる予定です。 詳細については、バッチ合成 API への移行に関する記事を参照してください。

バッチ合成 API は非同期であり、合成された音声をリアルタイムでは返しません。 合成するテキスト ファイルを送信し、状態をポーリングして、状態で成功が示されたときにオーディオ出力をダウンロードします。 テキスト入力は、プレーン テキストまたは SSML (音声合成マークアップ言語) テキストである必要があります。

次の図は、ワークフローの概要を示しています。

バッチ合成 API ワークフローの図。

ヒント

Speech SDK を使い、テキストを反復処理してチャンクで合成することにより、10 分より長い合成音声を作ることもできます。 C# の例については、GitHub をご覧ください。

バッチ合成には、次の REST API 操作を使用できます。

操作 Method REST API の呼び出し
バッチ合成を作成する POST texttospeech/3.1-preview1/batchsynthesis
バッチ合成を取得する GET texttospeech/3.1-preview1/batchsynthesis/{id}
バッチ合成を一覧表示する GET texttospeech/3.1-preview1/batchsynthesis
バッチ合成を削除する DELETE texttospeech/3.1-preview1/batchsynthesis/{id}

コード サンプルについては、GitHub を参照してください。

バッチ合成を作成する

バッチ合成要求を送信するには、次の手順に従って HTTP POST 要求本文を構築します。

  • 必須の textType プロパティを設定します。
  • textType プロパティが "PlainText" に設定されている場合、synthesisConfigvoice プロパティも設定する必要があります。 次の例では、textType が "SSML" に設定されているため、speechSynthesis は設定されていません。
  • 必須の displayName プロパティを設定します。 後で参照できる名前を選択してください。 表示名が一意である必要はありません。
  • 必要に応じて、descriptiontimeToLive などのプロパティを設定することもできます。 詳細については、「バッチ合成のプロパティ」を参照してください。

Note

許容される最大 JSON ペイロード サイズは 500 KB (キロバイト) です。 各 Speech リソースは、バッチ合成ジョブを最大 200 個受け取って同時に実行することができます。

HTTP POST 要求は、次の例に示すように URI を使用して行います。 YourSpeechKey は実際の Speech リソース キーに、YourSpeechRegion は実際の Speech リソース リージョンに置き換えたうえで、前述のように要求本文のプロパティを設定してください。

curl -v -X POST -H "Ocp-Apim-Subscription-Key: YourSpeechKey" -H "Content-Type: application/json" -d '{
    "displayName": "batch synthesis sample",
    "description": "my ssml test",
    "textType": "SSML",
    "inputs": [
        {
            "text": "<speak version='\''1.0'\'' xml:lang='\''en-US'\''>
				<voice xml:lang='\''en-US'\'' xml:gender='\''Female'\'' name='\''en-US-JennyNeural'\''>
					The rainbow has seven colors.
				</voice>
			</speak>",
        },
    ],
    "properties": {
        "outputFormat": "riff-24khz-16bit-mono-pcm",
        "wordBoundaryEnabled": false,
        "sentenceBoundaryEnabled": false,
        "concatenateResult": false,
        "decompressOutputFiles": false
    },
}'  "https://YourSpeechRegion.customvoice.api.speech.microsoft.com/api/texttospeech/3.1-preview1/batchsynthesis"

応答本文は次の形式で返されます。

{
  "textType": "SSML",
  "synthesisConfig": {},
  "customVoices": {},
  "properties": {
    "timeToLive": "P31D",
    "outputFormat": "riff-24khz-16bit-mono-pcm",
    "concatenateResult": false,
    "decompressOutputFiles": false,
    "wordBoundaryEnabled": false,
    "sentenceBoundaryEnabled": false
  },
  "lastActionDateTime": "2022-11-16T15:07:04.121Z",
  "status": "NotStarted",
  "id": "1e2e0fe8-e403-417c-a382-b55eb2ea943d",
  "createdDateTime": "2022-11-16T15:07:04.121Z",
  "displayName": "batch synthesis sample",
  "description": "my ssml test"
}

status プロパティは、NotStarted 状態から Running に、そして最後に Succeeded または Failed へと推移します。 SucceededFailed のどちらかの状態が返されるまで、GET バッチ合成 API を定期的に呼び出すことができます。

バッチ合成を取得する

バッチ合成ジョブの状態を取得するには、以下の例に示した URI を使用して HTTP GET 要求を行います。 YourSynthesisId をバッチ合成 ID に置き換え、YourSpeechKey を Speech リソース キーに置き換えて、YourSpeechRegion を Speech リソース リージョンに置き換えます。

curl -v -X GET "https://YourSpeechRegion.customvoice.api.speech.microsoft.com/api/texttospeech/3.1-preview1/batchsynthesis/YourSynthesisId" -H "Ocp-Apim-Subscription-Key: YourSpeechKey"

応答本文は次の形式で返されます。

{
    "textType": "SSML",
    "synthesisConfig": {},
    "customVoices": {},
    "properties": {
      "audioSize": 100000,
      "durationInTicks": 31250000,
      "succeededAudioCount": 1,
      "failedAudioCount": 0,
      "duration": "PT3.125S",
      "billingDetails": {
        "customNeural": 0,
        "neural": 33
      },
      "timeToLive": "P31D",
      "outputFormat": "riff-24khz-16bit-mono-pcm",
      "concatenateResult": false,
      "decompressOutputFiles": false,
      "wordBoundaryEnabled": false,
      "sentenceBoundaryEnabled": false
    },
    "outputs": {
      "result": "https://cvoiceprodeus.blob.core.windows.net/batch-synthesis-output/41b83de2-380d-45dc-91af-722b68cfdc8e/results.zip?SAS_Token"
    },
    "lastActionDateTime": "2022-11-05T14:00:32.523Z",
    "status": "Succeeded",
    "id": "41b83de2-380d-45dc-91af-722b68cfdc8e",
    "createdDateTime": "2022-11-05T14:00:31.523Z",
    "displayName": "batch synthesis sample",
    "description": "my test"
  }

音声 (0001.wav など)、概要、デバッグの詳細を含んだ ZIP ファイルを outputs.result からダウンロードできます。 詳細については、「バッチ合成の結果」を参照してください。

バッチ合成を一覧表示する

Speech リソースのすべてのバッチ合成ジョブを一覧表示するには、以下の例に示したように、URI を使用して HTTP GET 要求を行います。 YourSpeechKey は Speech リソースのキーに、YourSpeechRegion は Speech リソースのリージョンに置き換えます。 URL には、必要に応じて、skiptop (ページ サイズ) のクエリ パラメーターを設定できます。 skip の既定値は 0 で、top の既定値は 100 です。

curl -v -X GET "https://YourSpeechRegion.customvoice.api.speech.microsoft.com/api/texttospeech/3.1-preview1/batchsynthesis?skip=0&top=2" -H "Ocp-Apim-Subscription-Key: YourSpeechKey"

応答本文は次の形式で返されます。

{
  "values": [
    {
      "textType": "SSML",
      "synthesisConfig": {},
      "customVoices": {},
      "properties": {
        "audioSize": 100000,
        "durationInTicks": 31250000,
        "succeededAudioCount": 1,
        "failedAudioCount": 0,
        "duration": "PT3.125S",
        "billingDetails": {
          "customNeural": 0,
          "neural": 33
        },
        "timeToLive": "P31D",
        "outputFormat": "riff-24khz-16bit-mono-pcm",
        "concatenateResult": false,
        "decompressOutputFiles": false,
        "wordBoundaryEnabled": false,
        "sentenceBoundaryEnabled": false
      },
      "outputs": {
        "result": "https://cvoiceprodeus.blob.core.windows.net/batch-synthesis-output/41b83de2-380d-45dc-91af-722b68cfdc8e/results.zip?SAS_Token"
      },
      "lastActionDateTime": "2022-11-05T14:00:32.523Z",
      "status": "Succeeded",
      "id": "41b83de2-380d-45dc-91af-722b68cfdc8e",
      "createdDateTime": "2022-11-05T14:00:31.523Z",
      "displayName": "batch synthesis sample",
      "description": "my test"
    }
    {
      "textType": "PlainText",
      "synthesisConfig": {
        "voice": "en-US-JennyNeural",
        "style": "chat",
        "rate": "+30.00%",
        "pitch": "x-high",
        "volume": "80"
      },
      "customVoices": {},
      "properties": {
        "audioSize": 79384,
        "durationInTicks": 24800000,
        "succeededAudioCount": 1,
        "failedAudioCount": 0,
        "duration": "PT2.48S",
        "billingDetails": {
          "customNeural": 0,
          "neural": 33
        },
        "timeToLive": "P31D",
        "outputFormat": "riff-24khz-16bit-mono-pcm",
        "concatenateResult": false,
        "decompressOutputFiles": false,
        "wordBoundaryEnabled": false,
        "sentenceBoundaryEnabled": false
      },
      "outputs": {
        "result": "https://cvoiceprodeus.blob.core.windows.net/batch-synthesis-output/38e249bf-2607-4236-930b-82f6724048d8/results.zip?SAS_Token"
      },
      "lastActionDateTime": "2022-11-05T18:52:23.210Z",
      "status": "Succeeded",
      "id": "38e249bf-2607-4236-930b-82f6724048d8",
      "createdDateTime": "2022-11-05T18:52:22.807Z",
      "displayName": "batch synthesis sample",
      "description": "my test"
    },
  ],
  // The next page link of the list of batch synthesis.
  "@nextLink": "https://{region}.customvoice.api.speech.microsoft.com/api/texttospeech/3.1-preview1/batchsynthesis?skip=0&top=2"
} 

音声 (0001.wav など)、概要、デバッグの詳細を含んだ ZIP ファイルを outputs.result からダウンロードできます。 詳細については、「バッチ合成の結果」を参照してください。

合成要求は、json 応答の values プロパティにリストされます。 一覧は改ページ調整され、最大ページ サイズは 100 です。 ページ分割されたリストの後続ページを取得するための "@nextLink" プロパティが必要に応じて提供されます。

バッチ合成を削除する

音声出力の結果を取得したらバッチ合成のジョブ履歴を削除します。 Speech サービスによって各合成の履歴が保持される期間は、最大 31 日間または要求の timeToLive プロパティの期間のどちらか早い方となります。 "Succeeded" または "Failed" 状態の合成ジョブでは、自動削除の日時は lastActionDateTime + timeToLive プロパティと等しくなります。

バッチ合成ジョブを取得するには、以下の例に示した URI を使用して HTTP DELETE 要求を行います。 YourSynthesisId をバッチ合成 ID に置き換え、YourSpeechKey を Speech リソース キーに置き換えて、YourSpeechRegion を Speech リソース リージョンに置き換えます。

curl -v -X DELETE "https://YourSpeechRegion.customvoice.api.speech.microsoft.com/api/texttospeech/3.1-preview1/batchsynthesis/YourSynthesisId" -H "Ocp-Apim-Subscription-Key: YourSpeechKey"

削除要求が成功した場合、応答ヘッダーには HTTP/1.1 204 No Content が格納されます。

バッチ合成の結果

status が "Succeeded" である バッチ合成ジョブを取得したら、音声出力の結果をダウンロードできます。 バッチ合成を取得したときに返される outputs.result プロパティから得られる URL を使用します。

バッチ合成の結果ファイルを取得するには、以下の例に示した URI を使用して HTTP GET 要求を行います。 YourOutputsResultUrl は、バッチ合成を取得したときに返される outputs.result プロパティから得られる URL に置き換えます。 YourSpeechKey をSpeech リソース キーに置き換えます。

curl -v -X GET "YourOutputsResultUrl" -H "Ocp-Apim-Subscription-Key: YourSpeechKey" > results.zip

結果は、音声 (0001.wav など)、概要、デバッグの詳細を含んだ ZIP ファイルに格納されます。 各ファイル名の番号付きプレフィックス (以下の例では [nnnn]) は、バッチ合成を作成する際に使用したテキスト入力と同じ順序になります。

Note

[nnnn].debug.json ファイルには、合成結果の ID など、トラブルシューティングに役立つ可能性のある情報が格納されています。 格納されるプロパティは変化する可能性があるので、どのような形であれ、この JSON 形式に依存することは避けてください。

各テキスト入力の合成結果は summary ファイルに格納されます。 summary.json ファイルの例を次に示します。

{
  "jobID":  "41b83de2-380d-45dc-91af-722b68cfdc8e",
  "status":  "Succeeded",
  "results":  [
    {
      "texts":  [
        "<speak version='1.0' xml:lang='en-US'>\n\t\t\t\t<voice xml:lang='en-US' xml:gender='Female' name='en-US-JennyNeural'>\n\t\t\t\t\tThe rainbow has seven colors.\n\t\t\t\t</voice>\n\t\t\t</speak>"
      ],
      "status":  "Succeeded",
      "billingDetails":  {
        "CustomNeural":  "0",
        "Neural":  "33"
      },
      "audioFileName":  "0001.wav",
      "properties":  {
        "audioSize":  "100000",
        "duration":  "PT3.1S",
        "durationInTicks":  "31250000"
      }
    }
  ]
}

文の境界データが要求された場合 ("sentenceBoundaryEnabled": true の場合)、対応する [nnnn].sentence.json ファイルが結果に追加されます。 同様に、単語の境界データが要求された場合 ("wordBoundaryEnabled": true の場合)、対応する [nnnn].word.json ファイルが結果に追加されます。

音声のオフセットと時間 (ミリ秒単位) を含んだ単語データ ファイルの例を次に示します。

[
  {
    "Text": "the",
    "AudioOffset": 38,
    "Duration": 153
  },
  {
    "Text": "rainbow",
    "AudioOffset": 201,
    "Duration": 326
  },
  {
    "Text": "has",
    "AudioOffset": 567,
    "Duration": 96
  },
  {
    "Text": "seven",
    "AudioOffset": 673,
    "Duration": 96
  },
  {
    "Text": "colors",
    "AudioOffset": 778,
    "Duration": 451
  },
]

バッチ合成のプロパティ

次の表に、バッチ合成のプロパティを示します。

プロパティ 説明
createdDateTime バッチ合成ジョブが作成された日時。

このプロパティは読み取り専用です。
customProperties オプションのバッチ合成の構成設定のカスタム セット。

このプロパティは、作成した合成ジョブと取得または一覧表示した合成ジョブとを関連付けるために便宜上格納されます。 このプロパティは格納されますが、Speech サービスによって使用されることはありません。

キーと値のペアとして最大 10 個のカスタム プロパティを指定できます。 許容されるキーの最大長は 64 文字で、許容される値の最大長は 256 文字です。
customVoices カスタム音声の名前とそのデプロイ ID のマッピング。

例: "customVoices": {"your-custom-voice-name": "502ac834-6537-4bc3-9fd6-140114daa66d"}

音声名は synthesisConfig.voice (textType"PlainText" に設定されている場合)、または inputs の SSML テキスト内 (textType"SSML" に設定されている場合) で使用できます。

カスタム音声を使用するためには、このプロパティが必須となります。 ここで定義されていないカスタム音声を使用しようとすると、サービスからエラーが返されます。
description バッチ合成の説明。

このプロパティは省略可能です。
displayName バッチ合成の名前。 後で参照できる名前を選択してください。 表示名が一意である必要はありません。

このプロパティは必須です。
id バッチ合成のジョブ ID。

このプロパティは読み取り専用です。
inputs 合成するプレーン テキストまたは SSML。

textType"PlainText" に設定されている場合、「"inputs": [{"text": "The rainbow has seven colors."}]」のようにプレーンテキストを指定します。 textType"SSML" に設定されている場合、「"inputs": [{"text": "<speak version='\''1.0'\'' xml:lang='\''en-US'\''><voice xml:lang='\''en-US'\'' xml:gender='\''Female'\'' name='\''en-US-JennyNeural'\''>The rainbow has seven colors.</voice></speak>"}]」のように、音声合成マークアップ言語 (SSML) でテキストを指定します。

複数の音声出力ファイルが必要な場合、追加できるテキスト オブジェクトは最大 1,000 個です。 たとえば、合成して 2 つの音声出力ファイルを得るためには、入力テキストを「"inputs": [{"text": "synthesize this to a file"},{"text": "synthesize this to another file"}]」のようにします。 ただし、properties.concatenateResult プロパティが true に設定されている場合、同期された各結果は同じ音声出力ファイルに書き込まれます。

テキスト入力は段落を分ける必要ありません。 最大 1,000 個のテキスト入力の中で、"\r\n" (改行) 文字列を使用して新しい段落を指定することができます。 たとえば、2 つの段落を含んだ入力テキストを合成して同じ音声出力ファイルを得るためには、「"inputs": [{"text": "synthesize this to a file\r\nsynthesize this to another paragraph in the same file"}]」のようにします。

段落の上限はありませんが、許容される JSON ペイロードの最大サイズ (すべてのテキスト入力およびその他のプロパティを含む) は 500 KB (キロバイト) であることに注意してください。

新しいバッチ合成ジョブを作成する場合、このプロパティは必須です。 合成ジョブを取得する際の応答には、このプロパティは含まれません。
lastActionDateTime status プロパティの値が変更された直近の日時。

このプロパティは読み取り専用です。
outputs.result 音声出力とログを含むバッチ合成結果ファイルの場所。

このプロパティは読み取り専用です。
properties オプションのバッチ合成の構成設定の定義済みセット。
properties.audioSize 音声出力のサイズ (バイト単位)。

このプロパティは読み取り専用です。
properties.billingDetails customNeuralneural (事前構築済み) の音声によって処理されて課金された単語の数。

このプロパティは読み取り専用です。
properties.concatenateResult 結果を連結するかどうかを決定します。 省略可能な bool 値 ("true" または "false") であり、既定では "false" になります。
properties.decompressOutputFiles 出力先コンテナーで合成結果ファイルを解凍するかどうかを決定します。 このプロパティは、Speech リソースの BYOS (Bring Your Own Storage) が構成されているか、destinationContainerUrl プロパティが設定されている場合にのみ設定できます。 省略可能な bool 値 ("true" または "false") であり、既定では "false" になります。
properties.destinationContainerUrl バッチ合成の結果は、書き込み可能な Azure コンテナーに格納できます。 コンテナーの URI を共有アクセス署名 (SAS) トークンと共に指定しなかった場合は、Microsoft が管理するコンテナーに結果が格納されます。 保存されているアクセス ポリシーを使用した SAS はサポートされていません。 合成ジョブが削除されると、結果データも削除されます。

合成ジョブを取得する際の応答には、このオプション プロパティは含まれません。
properties.duration 音声出力の時間。 値は ISO 8601 でエンコードされた継続時間です。

このプロパティは読み取り専用です。
properties.durationInTicks 音声出力の時間 (ティック数)。

このプロパティは読み取り専用です。
properties.failedAudioCount 音声出力に失敗したバッチ合成入力の数。

このプロパティは読み取り専用です。
properties.outputFormat 音声出力形式。

許容される値については、オーディオ出力形式に関するセクションを参照してください。 既定の出力形式は riff-24khz-16bit-mono-pcm です。
properties.sentenceBoundaryEnabled 文の境界データを生成するかどうかを決定します。 省略可能な bool 値 ("true" または "false") であり、既定では "false" になります。

文の境界データが要求された場合、対応する [nnnn].sentence.json ファイルが結果データの ZIP ファイルに追加されます。
properties.succeededAudioCount 音声出力に成功したバッチ合成入力の数。

このプロパティは読み取り専用です。
properties.timeToLive 合成ジョブが作成されてから、合成の結果が自動的に削除されるまでの期間。 値は ISO 8601 でエンコードされた継続時間です。 たとえば、12 時間なら PT12H を指定します。 省略可能な設定であり、既定では P31D (31 日) になります。 最大 Time to Live は 31 日です。 "Succeeded" または "Failed" 状態の合成ジョブでは、自動削除の日時は lastActionDateTime + timeToLive プロパティと等しくなります。

それ以外の場合、合成の削除メソッドを呼び出せば、もっと早い段階でジョブを削除できます。
properties.wordBoundaryEnabled 単語の境界データを生成するかどうかを決定します。 省略可能な bool 値 ("true" または "false") であり、既定では "false" になります。

単語の境界データが要求された場合、対応する [nnnn].word.json ファイルが結果データの ZIP ファイルに追加されます。
status バッチ合成処理の状態。

状態は "NotStarted" から "Running" に、そして最後に "Succeeded" または "Failed" へと推移します。

このプロパティは読み取り専用です。
synthesisConfig プレーンテキストのバッチ合成に使用する構成設定。

このプロパティは、textType"PlainText" に設定されている場合にのみ適用されます。
synthesisConfig.pitch 音声出力のピッチ。

指定できる値については、音声合成マークアップ言語 (SSML) のドキュメントの「韻律を調整する」の表を参照してください。 無効な値は無視されます。

これは省略可能なプロパティであり、textType"PlainText" に設定されている場合にのみ適用されます。
synthesisConfig.rate 音声出力のレート。

指定できる値については、音声合成マークアップ言語 (SSML) のドキュメントの「韻律を調整する」の表を参照してください。 無効な値は無視されます。

これは省略可能なプロパティであり、textType"PlainText" に設定されている場合にのみ適用されます。
synthesisConfig.style 一部の音声では、話し方を調整して、陽気さ、共感、落ち着きなど、さまざまな感情を表現できます。 カスタマー サービス、ニュースキャスト、音声アシスタントなど、さまざまなシナリオで音声を最適化できます。

音声ごとに使用できるスタイルについては、「音声のスタイルと役割」を参照してください。

これは省略可能なプロパティであり、textType"PlainText" に設定されている場合にのみ適用されます。
synthesisConfig.voice 音声出力を読み上げる音声。

使用可能な事前構築済みニューラル音声については、言語と音声のサポートに関する記事を参照してください。 カスタム音声を使用するには、customVoices プロパティで有効なカスタム音声とデプロイ ID のマッピングを指定する必要があります。

このプロパティは、textType"PlainText" に設定されている場合は必須です。
synthesisConfig.volume 音声出力のボリューム。

指定できる値については、音声合成マークアップ言語 (SSML) のドキュメントの「韻律を調整する」の表を参照してください。 無効な値は無視されます。

これは省略可能なプロパティであり、textType"PlainText" に設定されている場合にのみ適用されます。
textType inputs テキスト プロパティをプレーンテキストにするか SSML にするかを示します。 指定できる値は "PlainText" と "SSML" で、大文字と小文字は区別されません。 textType"PlainText" に設定されている場合は、synthesisConfig 音声プロパティも設定する必要があります。

このプロパティは必須です。

HTTP 状態コード

このセクションでは、バッチ合成 API の HTTP 応答コードとメッセージについて詳しく取り上げます。

HTTP 200 OK

HTTP 200 OK は、要求が成功したことを示します。

HTTP 201 Created

HTTP 201 Created は、(HTTP POST での) バッチ合成要求の作成が成功したことを示します。

HTTP 204 エラー

HTTP 204 エラーは、要求は成功したが、リソースが存在しないことを示します。 次に例を示します。

  • 存在しない合成ジョブを取得または削除しようとしました。
  • 合成ジョブが正常に削除されました。

HTTP 400 エラー

400 エラーが発生する可能性のある例を次に示します。

  • outputFormat がサポートされていないか無効である。 有効なフォーマット値を指定してください。既定の設定を使用する場合は outputFormat を空のままにします。
  • 要求されたテキスト入力の数が上限である 1,000 件を超えた。
  • topクエリ パラメーターが上限である 100 を超えている。
  • 無効なデプロイ ID または正常にデプロイされていないカスタム音声を使用しようとした。 Speech リソースがカスタム音声にアクセスできること、また、カスタム音声が正常にデプロイされていることを確認してください。 また、バッチ合成要求における {"your-custom-voice-name": "your-deployment-ID"} のマッピングが正しいことを確認する必要があります。
  • 開始されていないバッチ合成ジョブ、または実行が完了していないバッチ合成ジョブを削除しようとした。 バッチ合成ジョブは、状態が "Succeeded" または "Failed" である場合にのみ削除できます。
  • F0 Speech リソースを使おうとしたが、リージョンでサポートされている Speech リソースの価格レベルが Standard のみである。
  • アクティブなジョブの上限である 200 を超える新しいバッチ合成ジョブを作成しようとした。 各 Speech リソースには、状態が "Succeeded" でも "Failed" でもない最大 200 個のバッチ合成ジョブを割り当てることができます。

HTTP 404 エラー

指定されたエンティティが見つかりません。 合成 ID が正しいことを確認してください。

HTTP 429 エラー

直近の要求が多すぎます。 各クライアント アプリケーションが各 Speech リソースに対して送信できる要求は 5 秒につき 50 個までです。 1 秒あたりの要求の数を減らしてください。

レート制限と残りのクォータは、HTTP ヘッダーを使用して確認できます。その例を次に示します。

X-RateLimit-Limit: 50
X-RateLimit-Remaining: 49
X-RateLimit-Reset: 2022-11-11T01:49:43Z

HTTP 500 エラー

HTTP 500 内部サーバー エラーは、要求が失敗したことを示します。 エラー メッセージは応答本文に含まれています。

HTTP エラーの例

ここに示したのは、top クエリ パラメーターが 100 より大きい値に設定されているために HTTP 400 エラーになる要求の例です。

curl -v -X GET "https://YourSpeechRegion.customvoice.api.speech.microsoft.com/api/texttospeech/3.1-preview1/batchsynthesis?skip=0&top=200" -H "Ocp-Apim-Subscription-Key: YourSpeechKey"

この場合、応答ヘッダーには HTTP/1.1 400 Bad Request が格納されます。

応答本文は、次の例に示す JSON のようになります。

{
  "code": "InvalidRequest",
  "message": "The top parameter should not be greater than 100.",
  "innerError": {
    "code": "InvalidParameter",
    "message": "The top parameter should not be greater than 100."
  }
}

次の手順