Long Audio API からバッチ合成 API にコードを移行する

Batch 合成 API は、長い形式のテキストを音声合成する非同期合成を提供します。 この記事では、Long Audio API から Batch 合成 API にアップグレードする利点と、その方法の詳細について説明します。

重要

バッチ合成 API が一般公開されています。 Long Audio API は、2027 年 4 月 1 日に廃止されます。

基本パスとバージョン

エンドポイントを https://YourSpeechRegion.customvoice.api.speech.microsoft.com から https://YourSpeechRegion.api.cognitive.microsoft.com に更新するか、代わりにカスタム ドメイン ( https://{customDomainName}.cognitiveservices.azure.com/) を使用できます。

コードのベース パスを /texttospeech/v3.0/longaudiosynthesis から /texttospeech/batchsyntheses に更新します。

ベース パスから?api-version=2024-04-01/texttospeech/v3.0/longaudiosynthesisクエリ文字列にバージョンを更新します。

たとえば、eastus リージョンの Speech リソースの合成ジョブを一覧表示するには、https://eastus.customvoice.api.speech.microsoft.com/api/texttospeech/v3.0/longaudiosynthesis の代わりに https://eastus.api.cognitive.microsoft.com/texttospeech/batchsyntheses?api-version=2024-04-01 を使用します。

リージョンとエンドポイント

バッチ合成 API は、より多くの Speech リージョンで使用できます。

Long Audio API は、次のリージョンに制限されています。

リージョン エンドポイント
オーストラリア東部 https://australiaeast.customvoice.api.speech.microsoft.com
米国東部 https://eastus.customvoice.api.speech.microsoft.com
インド中部 https://centralindia.customvoice.api.speech.microsoft.com
米国中南部 https://southcentralus.customvoice.api.speech.microsoft.com
東南アジア https://southeastasia.customvoice.api.speech.microsoft.com
英国南部 https://uksouth.customvoice.api.speech.microsoft.com
西ヨーロッパ https://westeurope.customvoice.api.speech.microsoft.com

サポートされる音声

Batch synthesis API では、テキスト読み上げの音声とスタイルがすべてサポートされます。

Long Audio API は、https://<endpoint>/api/texttospeech/v3.0/longaudiosynthesis/voices への GET 要求から返される一連の音声に制限されます。

テキスト入力

バッチ合成テキスト入力は、最大 2 メガバイトの JSON ペイロードで送信されます。

Long Audio API テキスト入力は、次の要件を満たすファイルからアップロードされます。

  • バイト オーダー マーク (BOM) 付き UTF-8 としてエンコードされた単一のプレーンテキスト (.txt) または SSML テキスト (.txt) ファイル。 ZIP などの圧縮ファイルは使わないでください。 複数の入力ファイルがある場合は、複数の要求を送信する必要があります。
  • プレーンテキストの場合は 400 文字以上、または SSML テキストの場合は 400 文字以上の課金対象文字を含み、1 万段落未満である。 プレーンテキストの場合、各段落は改行区切りとなります。 SSML テキストの場合、SSML の各要素は段落と見なされます。 異なる段落によって SSML 要素を分割します。

バッチ合成 API では、audiomstts:backgroundaudiolexicon 要素など、サポートされる SSML 要素であれば何でも使用することができます。 long audio API は、 audiomstts:backgroundaudio、および lexicon 要素をサポートしていません。

音声出力形式

Batch synthesis API では、テキスト読み上げの音声出力形式がすべてサポートされます。

Long Audio API は、以下の一連のオーディオ出力形式に制限されます。 長いオーディオ音声のサンプル レートは 48 kHz ではなく 24 kHz です。 その他のサンプル レートは、合成時にアップサンプリングまたはダウンサンプリングを通じて取得できます。

  • riff-8khz-16bit-mono-pcm
  • riff-16khz-16bit-mono-pcm
  • riff-24khz-16bit-mono-pcm
  • riff-48khz-16bit-mono-pcm
  • audio-16khz-32kbitrate-mono-mp3
  • audio-16khz-64kbitrate-mono-mp3
  • audio-16khz-128kbitrate-mono-mp3
  • audio-24khz-48kbitrate-mono-mp3
  • audio-24khz-96kbitrate-mono-mp3
  • audio-24khz-160kbitrate-mono-mp3

結果の取得

バッチ合成 API では、HTTP GET バッチ合成応答の outputs.result プロパティの URL を使用します。 結果は、音声 (0001.wav など)、概要、デバッグの詳細を含んだ ZIP ファイルに格納されます。

Long Audio API のテキスト入力と結果は、2 つの異なるコンテンツ URL で返されます。その例を次に示します。 "kind": "LongAudioSynthesisScript" がある 1 つは、送信された入力スクリプトです。 "kind": "LongAudioSynthesisResult" があるもう 1 つは、この要求の結果です。 どちらの ZIP ファイルも、links.contentUrl プロパティ内の URL からダウンロードできます。

リソースの後処理

バッチ合成 API では、状態が "Succeeded" または "Failed" ではない最大 300 個のバッチ合成ジョブがサポートされます。 Speech サービスは、各合成履歴を最大 31 日間保持するか、要求 timeToLiveInHours プロパティの期間のうち早い方に保持します。 "Succeeded" または "Failed" 状態の合成ジョブでは、自動削除の日時は lastActionDateTime + timeToLiveInHours プロパティと等しくなります。

Long Audio API の要求数の上限は、Azure サブスクリプション アカウントごとに 20,000 件です。 Speech サービスによってジョブ履歴が自動的に削除されることはありません。 新しい要求を行うことで上限を超えてしまいそうな場合は、それまでのジョブ実行履歴を事前に削除しておく必要があります。

次の手順