次の方法で共有


バッチ文字起こしを作成する

バッチ文字起こしでは、音声データをバッチで送信します。 サービスではオーディオ データを文字起こしし、その結果をストレージ コンテナーに格納します。 その後、ストレージ コンテナーから結果を取得できます。

バッチ文字起こしの完了には、オーディオ データのサイズと送信されたファイルの数に応じて、数分から数時間かかることがあります。 同じサイズのオーディオ データでも、サービスの負荷やその他の要因に応じて、文字起こしに異なる時間がかかる場合があります。 このサービスでは、オーディオ データのバッチを文字起こしするのにかかる時間を見積もる方法はありません。

ヒント

2 時間未満でサイズが 300 MB 未満のオーディオ ファイルに対して一貫した高速速度が必要な場合は、代わりに 高速文字起こし API を使用することを検討してください。

前提条件

Speech 用の Azure AI Foundry リソースが必要です。

文字起こしジョブを作成する

バッチ文字起こしジョブを作成するには、音声テキスト REST API文字起こし - 送信操作を使用します。 次の手順に従って要求本文を作成します。

  • contentContainerUrl プロパティまたは contentUrls プロパティを設定する必要があります。 バッチ文字起こし用の Azure BLOB ストレージの詳細については、「バッチ文字起こし用のオーディオ ファイルを検索する」を参照してください。
  • 必須の locale プロパティを設定します。 この値は、文字起こしする音声データの想定されるロケールと一致する必要があります。 後でロケールを変更することはできません。
  • 必須の displayName プロパティを設定します。 後で参照できる文字起こしの名前を選択します。 文字起こしの名前は一意である必要はなく、後で変更できます。
  • 必須の timeToLiveHours プロパティを設定します。 このプロパティは、文字起こしが完了した後にシステムに保持する期間を指定します。 サポートされている最も短い期間は 6 時間で、サポートされている最も長い期間は 31 日です。 データが直接使用される場合、推奨値は 48 時間 (2 日) です。
  • 必要に応じて、基本モデル以外のモデルを使用するには、model プロパティをモデル ID に設定します。 詳細については、「カスタム モデルを使用する」および「Whisper モデルを使用する」を参照してください。
  • 必要に応じて、wordLevelTimestampsEnabled プロパティを true に設定して、文字起こし結果で単語レベルのタイムスタンプを有効にします。 既定値は false です。 Whisper モデルの場合は、代わりに displayFormWordLevelTimestampsEnabled プロパティを設定します。 Whisper は表示専用モデルであるため、文字起こしでは字句フィールドは設定されません。
  • 必要に応じて、languageIdentification プロパティを設定します。 言語識別は、サポートされている言語の一覧と照合する際に、オーディオで話されている言語を識別するために使用されます。 languageIdentification プロパティを設定する場合は、候補ロケールで languageIdentification.candidateLocales を設定する必要もあります。

詳細については、「要求の構成オプション」を参照してください。

次の 文字起こし - 送信 の例に示すように、URI を使用する HTTP POST 要求を行います。

  • YourSpeechResoureKeyを Azure AI Foundry リソース キーに置き換えます。
  • YourServiceRegionを Azure AI Foundry リソース リージョンに置き換えます。
  • 前に説明したように、要求本文のプロパティを設定します。
curl -v -X POST -H "Ocp-Apim-Subscription-Key: YourSpeechResoureKey" -H "Content-Type: application/json" -d '{
  "contentUrls": [
    "https://crbn.us/hello.wav",
    "https://crbn.us/whatstheweatherlike.wav"
  ],
  "locale": "en-US",
  "displayName": "My Transcription",
  "model": null,
  "properties": {
    "wordLevelTimestampsEnabled": true,
    "languageIdentification": {
      "candidateLocales": [
        "en-US", "de-DE", "es-ES"
      ],
      "mode": "Continuous"
    },
    "timeToLiveHours": 48
  }
}'  "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/transcriptions:submit?api-version=2024-11-15"

次の形式で応答本文を受け取る必要があります。

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/transcriptions/788a1f24-f980-4809-8978-e5cf41f77b35?api-version=2024-11-15",
  "displayName": "My Transcription 2",
  "locale": "en-US",
  "createdDateTime": "2025-05-24T03:20:39Z",
  "lastActionDateTime": "2025-05-24T03:20:39Z",
  "links": {
    "files": "https://eastus.api.cognitive.microsoft.com/speechtotext/transcriptions/788a1f24-f980-4809-8978-e5cf41f77b35/files?api-version=2024-11-15"
  },
  "properties": {
    "wordLevelTimestampsEnabled": true,
    "displayFormWordLevelTimestampsEnabled": false,
    "channels": [
      0,
      1
    ],
    "punctuationMode": "DictatedAndAutomatic",
    "profanityFilterMode": "Masked",
    "timeToLiveHours": 48,
    "languageIdentification": {
      "candidateLocales": [
        "en-US",
        "de-DE",
        "es-ES"
      ],
      "mode": "Continuous"
    }
  },
  "status": "NotStarted"
}

応答本文の最上位の self プロパティは文字起こしの URI です。 この URI を使用して、文字起こしや文字起こしレポート ファイルの URI などの詳細を取得します。 また、この URI は、文字起こしの更新または削除にも使います。

文字起こし - 取得操作を使用して、 文字起こしの状態を 照会できます。

結果を取得した後は、サービスから Transcriptions - Delete を定期的に呼び出します。 または、timeToLive プロパティを設定して、確実に結果が最終的に削除されるようにします。

ヒント

GitHub で Python、C#、または Node.js を使用して、バッチ文字起こし API を試すこともできます。

文字起こしを作成するには、spx batch transcription create コマンドを使用します。 次の手順に従って要求パラメーターを作成します。

  • 必須の content パラメーターを設定します。 個々のファイルのコンマ区切りのリストまたはコンテナー全体の URL を指定できます。 バッチ文字起こし用の Azure BLOB ストレージの詳細については、「バッチ文字起こし用のオーディオ ファイルを検索する」を参照してください。
  • 必須の language プロパティを設定します。 この値は、文字起こしする音声データの想定されるロケールと一致する必要があります。 後でロケールを変更することはできません。 Speech CLI language パラメーターは、JSON 要求と応答の locale プロパティに対応します。
  • 必須の name プロパティを設定します。 後で参照できる文字起こしの名前を選択します。 文字起こしの名前は一意である必要はなく、後で変更できます。 Speech CLI name パラメーターは、JSON 要求と応答の displayName プロパティに対応します。
  • 必要な api-version パラメーターを v3.2に設定します。 Speech CLI ではバージョン 2024-11-15 以降はまだサポートされていないため、現時点では v3.2 を使用する必要があります。

文字起こしジョブを作成する音声 CLI コマンドの例を次に示します:

spx batch transcription create --api-version v3.2 --name "My Transcription" --language "en-US" --content https://crbn.us/hello.wav,https://crbn.us/whatstheweatherlike.wav

次の形式で応答本文を受け取る必要があります。

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/bbbbcccc-1111-dddd-2222-eeee3333ffff",
  "model": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/ccccdddd-2222-eeee-3333-ffff4444aaaa"
  },
  "links": {
    "files": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/7f4232d5-9873-47a7-a6f7-4a3f00d00dc0/files"
  },
  "properties": {
    "diarizationEnabled": false,
    "wordLevelTimestampsEnabled": false,
    "channels": [
      0,
      1
    ],
    "punctuationMode": "DictatedAndAutomatic",
    "profanityFilterMode": "Masked"
  },
  "lastActionDateTime": "2025-05-24T03:20:39Z",
  "status": "NotStarted",
  "createdDateTime": "2025-05-24T03:20:39Z",
  "locale": "en-US",
  "displayName": "My Transcription",
  "description": ""
}

応答本文の最上位の self プロパティは文字起こしの URI です。 この URI を使用して、文字起こしや文字起こしレポート ファイルの URI などの詳細を取得します。 また、この URI は、文字起こしの更新または削除にも使います。

文字起こしに関する音声 CLI ヘルプを表示するには、次のコマンドを実行します:

spx help batch transcription

要求の構成オプション

こちらは、文字起こし - 送信 操作を呼び出す際に、文字起こしを設定するためのプロパティ オプションです。 言語識別を使用して文字起こしを作成するなど、同じページで他の例を見つけることができます。

プロパティ 説明
channels 処理するチャネル番号の配列。 チャネル 01 は既定で文字起こしされます。
contentContainerUrl 個々の音声ファイルまたはストレージ コンテナー全体を送信できます。

音声データの場所は、contentContainerUrl または contentUrls プロパティを使用して指定する必要があります。 バッチ文字起こし用の Azure BLOB ストレージの詳細については、「バッチ文字起こし用のオーディオ ファイルを検索する」を参照してください。

このプロパティは、応答では返されません。
contentUrls 個々の音声ファイルまたはストレージ コンテナー全体を送信できます。

音声データの場所は、contentContainerUrl または contentUrls プロパティを使用して指定する必要があります。 詳細については、「バッチ文字起こし用のオーディオ ファイルを検索する」を参照してください。

このプロパティは、応答では返されません。
destinationContainerUrl 結果は、Azure コンテナーに格納できます。 コンテナーを指定しないと、Speech サービスにより、結果は Microsoft が管理するコンテナーに格納されます。 文字起こしジョブを削除すると、文字起こしの結果データも削除されます。 サポートされているセキュリティ シナリオなどの詳細については、「宛先コンテナー URL を指定する」を参照してください。
diarization 複数の音声を含むモノラル チャネルであることが予測される入力に対して、音声サービスがダイアライゼーション分析を実行することを示します。 この機能は、ステレオ録音では使用できません。

ダイアライゼーションは、オーディオ データ内の話者を分離するプロセスです。 バッチ パイプラインは、モノラル チャンネル レコーディングで複数の話者を認識および分離できます。

話し中である可能性があるユーザーの最小数と最大数を指定します。 また、この diarizationEnabled プロパティを true に設定する必要があります。 文字起こしファイルには、文字起こしされたフレーズごとに speaker エントリが含まれています。

3 人以上の話者が予想される場合、このプロパティを使用する必要があります。 話者 2 人の場合、diarizationEnabled プロパティを true に設定するだけで十分です。 プロパティの使用方法の例については、「 文字起こし - 送信」を参照してください。

ダイアライゼーションの話者の最大数は 36 未満で、さらに minCount プロパティ以上であることが必要です。 例については、「 文字起こし - 送信」を参照してください。

このプロパティが選択されている場合、1 ファイルで 240 分を超える長さのソース オーディオは使用できません。

: このプロパティは、Speech to text REST API バージョン 3.1 以降でのみ使用できます。 このプロパティに以前のバージョン (バージョン 3.0 など) を設定しても無視され、2 人の話者のみが識別されます。
diarizationEnabled 2 つの音声を含むモノラル チャネルであることが予測される入力に対して、音声サービスでダイアライゼーション分析を実行することを指定します。 既定値は false です。

音声が 3 つ以上の場合は、プロパティ diarization を使用する必要もあります。 Speech to Text REST API バージョン 3.1 以降でのみ使用します。

このプロパティが選択されている場合、1 ファイルで 240 分を超える長さのソース オーディオは使用できません。
displayName バッチ文字起こしの名前。 後で参照できる名前を選択してください。 表示名が一意である必要はありません。

このプロパティは必須です。
displayFormWordLevelTimestampsEnabled 文字起こし結果の表示形式に単語レベルのタイムスタンプを含めるかどうかを指定します。 結果は、文字起こしファイルの displayWords プロパティで返されます。 既定値は false です。

: このプロパティは、Speech to text REST API バージョン 3.1 以降でのみ使用できます。
languageIdentification 言語識別は、サポートされている言語の一覧と照合する際に、オーディオで話されている言語を識別するために使用されます。

languageIdentification プロパティを設定する場合は、その囲まれた candidateLocales プロパティも設定する必要があります。
languageIdentification.candidateLocales "properties": { "languageIdentification": { "candidateLocales": ["en-US", "de-DE", "es-ES"]}} などの言語識別の候補ロケール。 文字起こし用のメイン ロケールを含め、最小 2 個から最大 10 個の候補ロケールがサポートされています。
locale バッチ文字起こしのロケール。 この値は、文字起こしする音声データの想定されるロケールと一致する必要があります。 ロケールを後から変更することはできません。

このプロパティは必須です。
model 特定の基本モデルまたはmodelモデルを使用するように プロパティを設定できます。 model を指定しない場合、ロケールの既定のベース モデルが使われます。 詳細については、「カスタム モデルを使用する」および「Whisper モデルを使用する」を参照してください。
profanityFilterMode 認識結果内の不適切な表現をどう扱うかを指定します。 指定できる値は、None (不適切な表現のフィルターを無効にする)、Masked (不適切な表現をアスタリスクに置き換える)、Removed (すべての不適切な表現を結果から除去する)、または Tags (不適切な表現のタグを追加する) です。 既定値は Masked です。
punctuationMode 認識結果内の句読点をどう扱うかを指定します。 指定できる値は、None (句読点を無効にする)、Dictated (明示的な (音声指示の) 句読点を暗黙指定する)、Automatic (デコーダーで句読点を処理する)、または DictatedAndAutomatic (口述指示および自動の句読点を使用する) です。 既定値は DictatedAndAutomatic です。

このプロパティは、Whisper モデルには適用できません。
timeToLiveHours この必須プロパティは、文字起こしが完了した後にシステムに保持する期間を指定します。

文字起こしが完了 (成功または失敗) した後の有効期間に達すると、自動的に削除されます。

サポートされている最も短い期間は 6 時間で、サポートされている最も長い期間は 31 日です。 データが直接使用される場合、推奨値は 48 時間 (2 日) です。

別の方法として、Transcriptions - Deleteを文字起こし結果を取得した後に定期的に呼び出すことができます。
wordLevelTimestampsEnabled 単語レベルのタイムスタンプを出力に含めるかどうかを指定します。 既定値は false です。

このプロパティは、Whisper モデルには適用できません。 Whisper は表示専用モデルであるため、文字起こしでは字句フィールドは設定されません。

文字起こしに関する構成オプションに関する音声 CLI ヘルプを表示するには、次のコマンドを実行します:

spx help batch transcription create advanced

カスタム モデルを使用する

バッチ文字起こしでは、指定したロケールに既定の基本モデルが使用されます。 既定の基本モデルを使用するためにプロパティを設定する必要はありません。

必要に応じて、特定の基本モデルまたはカスタム音声モデルを使用するように model プロパティを設定することで、前の文字起こしの作成の例を変更できます。

curl -v -X POST -H "Ocp-Apim-Subscription-Key: YourSpeechResoureKey" -H "Content-Type: application/json" -d '{
  "contentUrls": [
    "https://crbn.us/hello.wav",
    "https://crbn.us/whatstheweatherlike.wav"
  ],
  "locale": "en-US",
  "displayName": "My Transcription",
  "model": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/models/base/ccccdddd-2222-eeee-3333-ffff4444aaaa"
  },
  "properties": {
    "wordLevelTimestampsEnabled": true,
  }
}'  "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/transcriptions:submit?api-version=2024-11-15"
spx batch transcription create --name "My Transcription" --language "en-US" --content https://crbn.us/hello.wav,https://crbn.us/whatstheweatherlike.wav --model "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/ccccdddd-2222-eeee-3333-ffff4444aaaa"

バッチ文字起こしにカスタム音声モデルを使用するには、モデルの URI が必要です。 応答本文の最上位の self プロパティはモデルの URI です。 モデルを作成または取得するときに、モデルの場所を取得できます。 詳細については、「モデルの作成」にある JSON 応答の例を参照してください。

ヒント

バッチ文字起こしサービスで Custom Speech を使用するには、ホストされたデプロイ エンドポイントは必要ありません。 カスタム音声モデルをバッチ文字起こしにのみ使用する場合は、リソースを節約できます。

廃止されたモデルのバッチ文字起こし要求は、4xx エラーで失敗します。 model プロパティを、まだ期限切れになっていない基本モデルまたはカスタム モデルに設定します。 それ以外の場合は、最新の基本モデルを常に使用する model プロパティを含めないでください。 詳細については、「モデルの選択」および「カスタム音声モデルのライフサイクル」を参照してください。

Whisper モデルを使用する

Azure AI 音声は、バッチ文字起こし API を介した OpenAI の Whisper モデルをサポートしています。 バッチ文字起こしに Whisper モデルを使用できます。

Azure AI Foundry Models の Azure OpenAI では、同期 REST API を使用した音声テキスト変換用の OpenAI のささやきモデルもサポートされています。 詳細については、「Azure OpenAI の Whisper モデルを使った音声テキスト変換」を参照してください。 Azure AI Foundry モデルで Azure AI Speech と Azure OpenAI を使用するタイミングの詳細については、「ささやきモデルとは」を参照してください。

バッチ文字起こしに Whisper モデルを使用するには、model プロパティを設定する必要があります。 Whisper は表示専用モデルであるため、応答では字句フィールドは設定されません。

重要

ささやきモデルを使用したバッチ文字起こしは、バッチ文字起こしをサポートするリージョンのサブセットで使用できます。 サポートされているリージョンの現在の一覧については、 Speech Service リージョンの表を参照してください。 ささやきモデルのサポートは、バッチ文字起こしをサポートするリージョン内の特定のリージョンに限定される場合があることに注意してください。

Models - List Base Models 要求を作成して、すべてのロケールで使用可能な基本モデルを取得できます。

次の例に示すように、eastus リージョンに対して HTTP GET 要求を行います。 YourSpeechResoureKeyを Azure AI Foundry リソース キーに置き換えます。 別のリージョンを使用している場合は、eastus を置き換えます。

curl -v -X GET "https://eastus.api.cognitive.microsoft.com/speechtotext/models/base?api-version=2024-11-15" -H "Ocp-Apim-Subscription-Key: YourSpeechResoureKey"

既定では、最も古い 100 個の基本モデルのみが返されます。 skip および top クエリ パラメーターを使用して、結果ページ間を移動します。 たとえば、次の要求は、最初の 100 個の基本モデルの後、次の 100 個の基本モデルを返します。

curl -v -X GET "https://eastus.api.cognitive.microsoft.com/speechtotext/models/base?api-version=2024-11-15&skip=100&top=100" -H "Ocp-Apim-Subscription-Key: YourSpeechResoureKey"

サポートされているいずれかのリージョンで、音声用の AI Foundry リソースの 構成変数 を設定していることを確認します。 spx csr list --base コマンドを実行して、すべてのロケールで使用可能な基本モデルを取得できます。

必要な api-version パラメーターを v3.2に設定します。 Speech CLI ではバージョン 2024-11-15 以降はまだサポートされていないため、現時点では v3.2 を使用する必要があります。

spx csr list --base --api-version v3.2

この例に示すように、Whisper モデルの displayName プロパティには "Whisper" が含まれています。 Whisper は表示専用モデルであるため、文字起こしでは字句フィールドは設定されません。

{
  "links": {
    "manifest": "https://eastus.api.cognitive.microsoft.com/speechtotext/models/base/69adf293-9664-4040-932b-02ed16332e00/manifest?api-version=2024-11-15"
  },
  "properties": {
    "deprecationDates": {
      "adaptationDateTime": "2025-04-15T00:00:00Z",
      "transcriptionDateTime": "2026-04-15T00:00:00Z"
    },
    "features": {
      "supportsAdaptationsWith": [
        "Acoustic"
      ],
      "supportsTranscriptionsSubmit": true,
      "supportsTranscriptionsTranscribe": false,
      "supportsEndpoints": false,
      "supportsTranscriptionsOnSpeechContainers": false,
      "supportedOutputFormats": [
        "Display"
      ]
    },
    "chargeForAdaptation": true
  },
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/models/base/69adf293-9664-4040-932b-02ed16332e00?api-version=2024-11-15",
  "displayName": "20240228 Whisper Large V2",
  "description": "OpenAI Whisper Model in Azure AI Speech (Whisper v2-large)",
  "locale": "en-US",
  "createdDateTime": "2024-02-29T15:46:31Z",
  "lastActionDateTime": "2024-02-29T15:51:53Z",
  "status": "Succeeded"
},

この例に示すように、eastus リージョンに対して完全なモデル URI を設定します。 YourSpeechResoureKeyを Azure AI Foundry リソース キーに置き換えます。 別のリージョンを使用している場合は、eastus を置き換えます。

curl -v -X POST -H "Ocp-Apim-Subscription-Key: YourSpeechResoureKey" -H "Content-Type: application/json" -d '{
  "contentUrls": [
    "https://crbn.us/hello.wav",
    "https://crbn.us/whatstheweatherlike.wav"
  ],
  "locale": "en-US",
  "displayName": "My Transcription",
  "model": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/models/base/69adf293-9664-4040-932b-02ed16332e00?api-version=2024-11-15"
  },
  "properties": {
    "wordLevelTimestampsEnabled": true,
  },
}'  "https://eastus.api.cognitive.microsoft.com/speechtotext/transcriptions:submit?api-version=2024-11-15"

この例に示すように、eastus リージョンに対して完全なモデル URI を設定します。 別のリージョンを使用している場合は、eastus を置き換えます。

必要な api-version パラメーターを v3.2に設定します。 Speech CLI ではバージョン 2024-11-15 以降はまだサポートされていないため、現時点では v3.2 を使用する必要があります。

spx batch transcription create --name "My Transcription" --language "en-US" --content https://crbn.us/hello.wav,https://crbn.us/whatstheweatherlike.wav --model "https://eastus.api.cognitive.microsoft.com/speechtotext/models/base/ddddeeee-3333-ffff-4444-aaaa5555bbbb" --api-version v3.2

宛先コンテナー URL を指定する

文字起こし結果は、Azure コンテナーに格納できます。 コンテナーを指定しないと、Speech サービスにより、結果は Microsoft が管理するコンテナーに格納されます。 その場合、文字起こしジョブを削除すると、文字起こしの結果データも削除されます。

destinationContainerUrlでオプション を使用して、バッチ文字起こしの結果を書き込み可能な Azure BLOB ストレージ コンテナーに格納できます。 このオプションはアドホック SAS URI を使用しているのみで、信頼された Azure サービスのセキュリティ メカニズムはサポートしていません。 このオプションでは、アクセス ポリシー ベースの SAS もサポートされていません。 宛先コンテナーのストレージ アカウント リソースによって、すべての外部トラフィックが許可される必要があります。

信頼された Azure サービスセキュリティ メカニズムを使用して文字起こしの結果を Azure Blob Storage コンテナーに格納する場合は、Bring Your Own Storage (BYOS) の使用を検討してください。 詳細については、「 音声テキスト変換に Bring Your Own Storage (BYOS) Azure AI Foundry リソースを使用する」を参照してください。