Skapa en batch-transkription

Med batch-transkriptioner skickar du ljuddata i en batch. Tjänsten transkriberar ljuddata och lagrar resultatet i en lagringscontainer. Du kan sedan hämta resultatet från lagringscontainern.

Viktigt!

Nya priser gäller för batch-transkription med hjälp av Speech to text REST API v3.2. Mer information finns i prisguiden.

Förutsättningar

  • Speech SDK installerat.
  • En standardtalresurs (S0). Kostnadsfria resurser (F0) stöds inte.

Skapa ett transkriptionsjobb

Om du vill skapa en transkription använder du den Transcriptions_Create åtgärden för REST API för tal till text. Skapa begärandetexten enligt följande instruktioner:

  • Du måste ange antingen contentContainerUrl egenskapen eller contentUrls . Mer information om Azure Blob Storage för batch-transkription finns i Hitta ljudfiler för batch-transkription.
  • Ange den obligatoriska locale egenskapen. Det här värdet ska matcha det förväntade språket för ljuddata som transkriberas. Du kan inte ändra nationella inställningar senare.
  • Ange den obligatoriska displayName egenskapen. Välj ett transkriptionsnamn som du kan referera till senare. Transkriptionsnamnet behöver inte vara unikt och kan ändras senare.
  • Om du vill använda en annan modell än basmodellen kan du ange model egenskapen som modell-ID. Mer information finns i Använda en anpassad modell och Använd en Whisper-modell.
  • Du kan också ange wordLevelTimestampsEnabled egenskapen till true för att aktivera tidsstämplar på ordnivå i transkriptionsresultatet. Standardvärdet är false. För Whisper-modeller anger du egenskapen displayFormWordLevelTimestampsEnabled i stället. Whisper är en modell som endast visas, så det lexikala fältet fylls inte i i transkriptionen.
  • Du kan också ange egenskapen languageIdentification . Språkidentifiering används för att identifiera språk som talas i ljud jämfört med en lista över språk som stöds. Om du anger egenskapen languageIdentification måste du också ange languageIdentification.candidateLocales med kandidatspråk.

Mer information finns i Alternativ för att begära konfiguration.

Gör en HTTP POST-begäran som använder URI:n enligt följande Transcriptions_Create exempel.

  • Ersätt YourSubscriptionKey med din Speech-resursnyckel.
  • Ersätt YourServiceRegion med din Speech-resursregion.
  • Ange egenskaperna för begärandetexten enligt beskrivningen ovan.
curl -v -X POST -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey" -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"
      ],
    }
  },
}'  "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions"

Du bör få en svarstext i följande format:

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/db474955-ab85-4c6c-ba6e-3bfe63d041ba",
  "model": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/base/13fb305e-09ad-4bce-b3a1-938c9124dda3"
  },
  "links": {
    "files": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/db474955-ab85-4c6c-ba6e-3bfe63d041ba/files"
  },
  "properties": {
    "diarizationEnabled": false,
    "wordLevelTimestampsEnabled": true,
    "channels": [
      0,
      1
    ],
    "punctuationMode": "DictatedAndAutomatic",
    "profanityFilterMode": "Masked",
    "languageIdentification": {
      "candidateLocales": [
        "en-US",
        "de-DE",
        "es-ES"
      ]
    }
  },
  "lastActionDateTime": "2022-10-21T14:18:06Z",
  "status": "NotStarted",
  "createdDateTime": "2022-10-21T14:18:06Z",
  "locale": "en-US",
  "displayName": "My Transcription"
}

Egenskapen på den översta nivån self i svarstexten är transkriptionens URI. Använd den här URI:n för att få information, till exempel URI för transkriptioner och transkriptionsrapportfiler. Du använder också den här URI:n för att uppdatera eller ta bort en transkription.

Du kan köra frågor mot statusen för dina transkriptioner med åtgärden Transcriptions_Get .

Anropa Transcriptions_Delete regelbundet från tjänsten när du har hämtat resultatet. Du kan också ange egenskapen timeToLive för att säkerställa att resultatet tas bort.

Använd kommandot för spx batch transcription create att skapa en transkription. Skapa begärandeparametrarna enligt följande instruktioner:

  • Ange den obligatoriska content parametern. Du kan ange en semikolonavgränsad lista över enskilda filer eller URL:en för en hel container. Mer information om Azure Blob Storage för batch-transkription finns i Hitta ljudfiler för batch-transkription.
  • Ange den obligatoriska language egenskapen. Det här värdet ska matcha det förväntade språket för ljuddata som transkriberas. Du kan inte ändra nationella inställningar senare. Parametern Speech CLI language motsvarar locale egenskapen i JSON-begäran och -svaret.
  • Ange den obligatoriska name egenskapen. Välj ett transkriptionsnamn som du kan referera till senare. Transkriptionsnamnet behöver inte vara unikt och kan ändras senare. Parametern Speech CLI name motsvarar displayName egenskapen i JSON-begäran och -svaret.

Här är ett exempel på ett Speech CLI-kommando som skapar ett transkriptionsjobb:

spx batch transcription create --name "My Transcription" --language "en-US" --content https://crbn.us/hello.wav;https://crbn.us/whatstheweatherlike.wav

Du bör få en svarstext i följande format:

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/7f4232d5-9873-47a7-a6f7-4a3f00d00dc0",
  "model": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/base/13fb305e-09ad-4bce-b3a1-938c9124dda3"
  },
  "links": {
    "files": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/7f4232d5-9873-47a7-a6f7-4a3f00d00dc0/files"
  },
  "properties": {
    "diarizationEnabled": false,
    "wordLevelTimestampsEnabled": false,
    "channels": [
      0,
      1
    ],
    "punctuationMode": "DictatedAndAutomatic",
    "profanityFilterMode": "Masked"
  },
  "lastActionDateTime": "2022-10-21T14:21:59Z",
  "status": "NotStarted",
  "createdDateTime": "2022-10-21T14:21:59Z",
  "locale": "en-US",
  "displayName": "My Transcription",
  "description": ""
}

Egenskapen på den översta nivån self i svarstexten är transkriptionens URI. Använd den här URI:n för att få information, till exempel URI för transkriptioner och transkriptionsrapportfiler. Du använder också den här URI:n för att uppdatera eller ta bort en transkription.

Kör följande kommando för speech CLI-hjälp med transkriptioner:

spx help batch transcription

Konfigurationsalternativ för begäranden

Här följer några egenskapsalternativ som du kan använda för att konfigurera en transkription när du anropar åtgärden Transcriptions_Create .

Property beskrivning
channels En matris med kanalnummer som ska bearbetas. Kanaler 0 och 1 transkriberas som standard.
contentContainerUrl Du kan skicka enskilda ljudfiler eller en hel lagringscontainer.

Du måste ange platsen för ljuddata med hjälp av antingen contentContainerUrl egenskapen eller contentUrls . Mer information om Azure Blob Storage för batch-transkription finns i Hitta ljudfiler för batch-transkription.

Den här egenskapen returneras inte i svaret.
contentUrls Du kan skicka enskilda ljudfiler eller en hel lagringscontainer.

Du måste ange platsen för ljuddata med hjälp av antingen contentContainerUrl egenskapen eller contentUrls . Mer information finns i Hitta ljudfiler för batch-transkription.

Den här egenskapen returneras inte i svaret.
destinationContainerUrl Resultatet kan lagras i en Azure-container. Om du inte anger en container lagrar Speech-tjänsten resultatet i en container som hanteras av Microsoft. När transkriptionsjobbet tas bort tas även transkriptionsresultatdata bort. Mer information, till exempel säkerhetsscenarier som stöds, finns i Ange en målcontainer-URL.
diarization Anger att Speech-tjänsten ska försöka utföra diariseringsanalys på indata, som förväntas vara en monokanal som innehåller flera röster. Funktionen är inte tillgänglig med stereoinspelningar.

Diarisering är processen att separera högtalare i ljuddata. Batch-pipelinen kan identifiera och separera flera högtalare på monokanalinspelningar.

Ange det lägsta och högsta antalet personer som kan tala. Du måste också ange egenskapen diarizationEnabled till true. Transkriptionsfilen innehåller en speaker post för varje transkriberad fras.

Du måste använda den här egenskapen när du förväntar dig tre eller fler talare. För två talare räcker det med att ställa in diarizationEnabled egenskapen på true . Ett exempel på egenskapsanvändningen finns i Transcriptions_Create.

Det maximala antalet talare för diarisering måste vara mindre än 36 och fler eller lika med egenskapen minSpeakers . Ett exempel finns i Transcriptions_Create.

När den här egenskapen har valts får källans ljudlängd inte överstiga 240 minuter per fil.

Obs! Den här egenskapen är endast tillgänglig med Speech to text REST API version 3.1 och senare. Om du anger den här egenskapen med någon tidigare version, till exempel version 3.0, ignoreras den och endast två talare identifieras.
diarizationEnabled Anger att Speech-tjänsten ska försöka utföra diariseringsanalys på indata, vilket förväntas vara en monokanal som innehåller två röster. Standardvärdet är false.

För tre eller fler röster måste du också använda egenskapen diarization. Använd endast med Speech to text REST API version 3.1 och senare.

När den här egenskapen har valts får källans ljudlängd inte överstiga 240 minuter per fil.
displayName Namnet på batch-transkriptionen. Välj ett namn som du kan referera till senare. Visningsnamnet behöver inte vara unikt.

Egenskapen krävs.
displayFormWordLevelTimestampsEnabled Anger om tidsstämplar på ordnivå ska inkluderas i visningsformen för transkriptionsresultatet. Resultaten returneras i displayWords egenskapen för transkriptionsfilen. Standardvärdet är false.

Obs! Den här egenskapen är endast tillgänglig med Speech to text REST API version 3.1 och senare.
languageIdentification Språkidentifiering används för att identifiera språk som talas i ljud jämfört med en lista över språk som stöds.

Om du anger egenskapen languageIdentification måste du också ange dess omslutna candidateLocales egenskap.
languageIdentification.candidateLocales Språkidentifieringens kandidatspråk, till exempel "properties": { "languageIdentification": { "candidateLocales": ["en-US", "de-DE", "es-ES"]}}. Minst två och högst tio kandidatspråk, inklusive huvudspråket för transkriptionen, stöds.
locale Språkvarianten för batch-transkriptionen. Det här värdet ska matcha det förväntade språket för ljuddata som transkriberas. Språkvarianten kan inte ändras senare.

Egenskapen krävs.
model Du kan ange att model egenskapen ska använda en specifik basmodell eller anpassad talmodell . Om du inte anger modelanvänds standardbasmodellen för nationella inställningar. Mer information finns i Använda en anpassad modell och Använd en Whisper-modell.
profanityFilterMode Anger hur du hanterar svordomar i igenkänningsresultat. Godkända värden är None att inaktivera filtrering av svordomar, Masked ersätta svordomar med asterisker, Removed ta bort alla svordomar från resultatet eller Tags lägga till svordomstaggar. Standardvärdet är Masked.
punctuationMode Anger hur du hanterar skiljetecken i igenkänningsresultat. Godkända värden är None att inaktivera skiljetecken, Dictated att antyda explicit (talat) skiljetecken, Automatic att låta avkodaren hantera skiljetecken eller DictatedAndAutomatic använda dikterad och automatisk skiljetecken. Standardvärdet är DictatedAndAutomatic.

Den här egenskapen gäller inte för Whisper-modeller.
timeToLive En varaktighet efter att transkriptionsjobbet har skapats, när transkriptionsresultatet tas bort automatiskt. Värdet är en ISO 8601-kodad varaktighet. Ange till exempel PT12H i 12 timmar. Alternativt kan du anropa Transcriptions_Delete regelbundet när du har hämtat transkriptionsresultatet.
wordLevelTimestampsEnabled Anger om tidsstämplar på ordnivå ska inkluderas i utdata. Standardvärdet är false.

Den här egenskapen gäller inte för Whisper-modeller. Whisper är en modell som endast visas, så det lexikala fältet fylls inte i i transkriptionen.

För Speech CLI-hjälp med transkriptionskonfigurationsalternativ kör du följande kommando:

spx help batch transcription create advanced

Använda en anpassad modell

Batch-transkription använder standardbasmodellen för det språk du anger. Du behöver inte ange några egenskaper för att använda standardbasmodellen.

Du kan också ändra exemplet för att skapa transkription genom att ange egenskapen så att den model använder en specifik basmodell eller anpassad talmodell.

curl -v -X POST -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey" -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/v3.1/models/base/1aae1070-7972-47e9-a977-87e3b05c457d"
  },
  "properties": {
    "wordLevelTimestampsEnabled": true,
  },
}'  "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions"
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.1/models/base/1aae1070-7972-47e9-a977-87e3b05c457d"

Om du vill använda en anpassad talmodell för batch-transkription behöver du modellens URI. Egenskapen på den översta nivån self i svarstexten är modellens URI. Du kan hämta modellplatsen när du skapar eller hämtar en modell. Mer information finns i JSON-svarsexemplet i Skapa en modell.

Dricks

En värdbaserad distributionsslutpunkt krävs inte för att använda anpassat tal med batch-transkriptionstjänsten. Du kan spara resurser om du endast använder den anpassade talmodellen för batch-transkription.

Batch-transkriptionsbegäranden för utgångna modeller misslyckas med ett 4xx-fel. Ange egenskapen model till en basmodell eller anpassad modell som inte har upphört att gälla. Annars inkluderar model du inte egenskapen för att alltid använda den senaste basmodellen. Mer information finns i Välj en modell och livscykel för anpassad talmodell.

Använda en Whisper-modell

Azure AI Speech stöder OpenAI:s Whisper-modell med hjälp av batch-transkriptions-API:et. Du kan använda Whisper-modellen för batch-transkription.

Kommentar

Azure OpenAI Service stöder även OpenAI:s Whisper-modell för tal till text med ett synkront REST-API. Mer information finns i Tal till text med Azure OpenAI Whisper-modellen. Mer information om när du ska använda Azure AI Speech jämfört med Azure OpenAI Service finns i Vad är Whisper-modellen?

Om du vill använda en Whisper-modell för batch-transkription måste du ange model egenskapen. Whisper är en modell som endast visas, så det lexikala fältet fylls inte i i svaret.

Viktigt!

För Whisper-modeller bör du alltid använda version 3.2 av tal-till-text-API:et.

Whisper-modeller efter batch-transkription stöds i regionerna Australien, östra, USA, centrala, USA, östra, USA, norra centrala, USA, södra centrala, Sydostasien och Europa, västra.

Du kan göra en Models_ListBaseModels begäran om att få tillgängliga basmodeller för alla nationella inställningar.

Gör en HTTP GET-begäran enligt följande exempel för eastus regionen. Ersätt YourSubscriptionKey med din Speech-resursnyckel. Ersätt eastus om du använder en annan region.

curl -v -X GET "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2-preview.2/models/base" -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey"

Som standard returneras endast de 100 äldsta basmodellerna. skip Använd frågeparametrarna och top för att bläddra igenom resultaten. Följande begäran returnerar till exempel nästa 100 basmodeller efter de första 100.

curl -v -X GET "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2-preview.2/models/base?skip=100&top=100" -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey"

Se till att du anger konfigurationsvariablerna för en Speech-resurs i någon av de regioner som stöds. Du kan köra spx csr list --base kommandot för att hämta tillgängliga basmodeller för alla nationella inställningar.

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

Egenskapen displayName för en Whisper-modell innehåller "Whisper" som visas i det här exemplet. Whisper är en modell som endast visas, så det lexikala fältet fylls inte i i transkriptionen.

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2-preview.2/models/base/e418c4a9-9937-4db7-b2c9-8afbff72d950",
  "links": {
    "manifest": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2-preview.2/models/base/e418c4a9-9937-4db7-b2c9-8afbff72d950/manifest"
  },
  "properties": {
    "deprecationDates": {
      "adaptationDateTime": "2025-04-15T00:00:00Z",
      "transcriptionDateTime": "2026-04-15T00:00:00Z"
    },
    "features": {
      "supportsTranscriptions": true,
      "supportsEndpoints": false,
      "supportsTranscriptionsOnSpeechContainers": false,
      "supportsAdaptationsWith": [
        "Acoustic"
      ],
      "supportedOutputFormats": [
        "Display"
      ]
    },
    "chargeForAdaptation": true
  },
  "lastActionDateTime": "2024-02-29T15:53:28Z",
  "status": "Succeeded",
  "createdDateTime": "2024-02-29T15:46:07Z",
  "locale": "en-US",
  "displayName": "20240228 Whisper Large V2",
  "description": "OpenAI Whisper Model in Azure AI Speech (Whisper v2-large)"
},

Du anger den fullständiga modell-URI:n enligt det här exemplet för eastus regionen. Ersätt YourSubscriptionKey med din Speech-resursnyckel. Ersätt eastus om du använder en annan region.

curl -v -X POST -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey" -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/v3.2-preview.2/models/base/d9cbeee6-582b-47ad-b5c1-6226583c92b6"
  },
  "properties": {
    "wordLevelTimestampsEnabled": true,
  },
}'  "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2-preview.2/transcriptions"
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-preview.2/models/base/d9cbeee6-582b-47ad-b5c1-6226583c92b6" --api-version v3.2-preview.2

Ange en målcontainer-URL

Transkriptionsresultatet kan lagras i en Azure-container. Om du inte anger en container lagrar Speech-tjänsten resultatet i en container som hanteras av Microsoft. I så fall tas även transkriptionsresultatdata bort när transkriptionsjobbet tas bort.

Du kan lagra resultatet av en batch-transkription i en skrivbar Azure Blob Storage-container med hjälp av alternativet destinationContainerUrl i begäran om att skapa batch-transkription. Det här alternativet använder endast en ad hoc SAS-URI och stöder inte säkerhetsmekanismen betrodda Azure-tjänster. Det här alternativet stöder inte heller åtkomstprincipbaserad SAS. Lagringskontoresursen för målcontainern måste tillåta all extern trafik.

Om du vill lagra transkriptionsresultatet i en Azure Blob Storage-container med hjälp av säkerhetsmekanismen Betrodda Azure-tjänster bör du överväga att använda BYOS (Bring-your-own-storage). Mer information finns i Använda BYOS-talresursen (Bring Your Own Storage) för tal till text.