Använda videoöversättning
Kommentar
Den här funktionen är för närvarande i allmänt tillgänglig förhandsversion. Den här förhandsversionen tillhandahålls utan ett serviceavtal och vi rekommenderar det inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.
I den här artikeln får du lära dig hur du använder videoöversättning i Azure AI Speech i studion.
Allt som krävs för att komma igång är en ursprunglig video. Se om videoöversättning stöder ditt språk och din region.
Skapa ett videoöversättningsprojekt
Följ dessa steg för att skapa ett videoöversättningsprojekt:
Logga in på Speech Studio.
Välj den prenumeration och talresurs som du vill arbeta med.
Välj Videoöversättning.
På sidan Skapa och hantera projekt väljer du Skapa ett projekt.
På sidan Nytt projekt väljer du Rösttyp.
Du kan välja Fördefinierad neural röst eller Personlig röst för Rösttyp. För fördefinierad neural röst väljer systemet automatiskt den lämpligaste fördefinierade rösten genom att matcha talarens röst i videon med fördefinierade röster. För personlig röst erbjuder systemet en modell som genererar högkvalitativ röstreplikering på några sekunder.
Kommentar
Om du vill använda personlig röst måste du ansöka om åtkomst.
Ladda upp videofilen genom att dra och släppa videofilen eller välja filen manuellt.
Kontrollera att videon är i .mp4 format, mindre än 500 MB och kortare än 60 minuter.
Ange Projektnamn och välj Antal talare, Videons språk, Översätt till språk.
Om du vill använda dina egna undertextfiler väljer du Lägg till underrubrikfil. Du kan välja att ladda upp antingen källundertextfilen eller målundertextfilen. Undertextfilen kan vara i WebVTT- eller JSON-format. Du kan ladda ned en exempel-VTT-fil som referens genom att välja Ladda ned VTT-exempelfil.
När du har granskat prisinformationen och uppförandekoden fortsätter du att skapa projektet.
När uppladdningen är klar kan du kontrollera bearbetningsstatusen på projektfliken.
När projektet har skapats kan du välja projektet för att granska detaljerade inställningar och göra justeringar enligt dina inställningar.
Kontrollera och justera röstinställningar
På projektinformationssidan erbjuder projektet två flikar översatta och original under Video, så att du kan jämföra dem sida vid sida.
Till höger i videon kan du visa både det ursprungliga skriptet och det översatta skriptet. Hovring över varje del av det ursprungliga skriptet utlöser videon för att automatiskt hoppa till motsvarande segment i den ursprungliga videon, medan hovring över varje del av det översatta skriptet utlöser videon för att hoppa till motsvarande översatta segment.
Du kan också lägga till eller ta bort segment efter behov. När du vill lägga till ett segment ska du se till att den nya segmenttidsstämpeln inte överlappar föregående och nästa segment och att segmentsluttiden ska vara större än starttiden. Rätt format för tidsstämpeln ska vara hh:mm:ss.ms
. Annars kan du inte tillämpa ändringarna.
Du kan justera tidsramen för skripten direkt med hjälp av ljudvågformen under videon. När du har valt Tillämpa ändringar tillämpas justeringarna.
Om du stöter på segment med ett "oidentifierat" röstnamn kan det bero på att systemet inte kunde identifiera rösten korrekt, särskilt i situationer där talarröster överlappar varandra. I sådana fall rekommenderar vi att du ändrar röstnamnet manuellt.
Om du vill justera rösten väljer du Röstinställningar för att göra några ändringar. På sidan Röstinställningar kan du justera rösttyp, kön och röst. Välj röstexemplet till höger om Röst för att bestämma ditt röstval. Om du upptäcker att det saknas en röst kan du lägga till det nya röstnamnet genom att välja Lägg till talare. När du har ändrat inställningarna väljer du Uppdatera.
Om du gör ändringar flera gånger men inte är klar behöver du bara spara de ändringar du har gjort genom att välja Spara. När du har gjort alla ändringar väljer du Tillämpa ändringar för att tillämpa dem på videon. Du debiteras endast när du har valt Tillämpa ändringar.
Du kan översätta den ursprungliga videon till ett nytt språk genom att välja Nytt språk. På sidan Översätt kan du välja ett nytt översatt språk och en ny rösttyp. När videofilen har översatts skapas ett nytt projekt automatiskt.
Relaterat innehåll
REST API för videoöversättning underlättar sömlös integrering av videoöversättning i dina program. Det stöder uppladdning, hantering och förfinande av videoöversättningar, med flera iterationer för kontinuerlig förbättring. I den här artikeln får du lära dig hur du använder videoöversättning via REST-API:et.
Det här diagrammet ger en översikt över arbetsflödet på hög nivå.
Du kan använda följande REST API-åtgärder för videoöversättning:
Åtgärd | Method | REST API-anrop |
---|---|---|
Skapa en översättning | PUT |
/translations/{translationId} |
Lista översättningar | GET |
/translations |
Hämta en översättning via översättnings-ID | GET |
/translations/{translationId} |
Skapa en iteration | PUT |
/translations/{translationId}/iterations/{iterationId} |
Lista iterationer | GET |
/translations/{translationId}/iterations |
Hämta en iteration med iterations-ID | GET |
/translations/{translationId}/iterations/{iterationId} |
Hämta åtgärd efter åtgärds-ID | GET |
/operations/{operationId} |
Ta bort en översättning med översättnings-ID | DELETE |
/translations/{translationId} |
Kodexempel finns i GitHub.
Den här artikeln beskriver de primära stegen i API-processen, inklusive att skapa en översättning, skapa en iteration, kontrollera status för varje åtgärd, få en iteration med iterations-ID och ta bort en översättning med översättnings-ID. Fullständig information finns i länkarna för varje API i tabellen.
Skapa en översättning
Om du vill skicka en videoöversättningsbegäran måste du skapa en SÖKväg och brödtext för HTTP PUT-begäran enligt följande instruktioner:
Ange
Operation-Id
: MåsteOperation-Id
vara unikt för varje åtgärd. Det säkerställer att varje åtgärd spåras separat. Ersätt[operationId]
med ett åtgärds-ID.Ange
translationId
: MåstetranslationId
vara unikt. Ersätt[translationId]
med ett översättnings-ID.Ange nödvändiga indata: Inkludera information som
sourceLocale
,targetLocale
,voiceKind
ochvideoFileUrl
. Kontrollera att du har video-URL:en från Azure Blob Storage. De språk som stöds för videoöversättning finns i käll- och målspråken som stöds. Du kan angevoiceKind
parametern till antingenPlatformVoice
ellerPersonalVoice
. FörPlatformVoice
väljer systemet automatiskt den lämpligaste fördefinierade rösten genom att matcha talarens röst i videon med fördefinierade röster. FörPersonalVoice
erbjuder systemet en modell som genererar röstreplikering av hög kvalitet på några sekunder.Kommentar
Om du vill använda personlig röst måste du ansöka om åtkomst.
Ersätt
[YourResourceKey]
med din Speech-resursnyckel och ersätt[YourSpeechRegion]
med din Speech-resursregion.
Att skapa en översättning initierar inte översättningsprocessen. Du kan börja översätta videon genom att skapa en iteration. Följande exempel är för Windows-gränssnittet. Se till att komma undan &
med ^&
om URL:en innehåller &
. I följande exempelkod använder vi en offentlig video-URL som du är välkommen att använda för din egen testning.
curl -v -X PUT -H "Ocp-Apim-Subscription-Key: [YourResourceKey]" -H "Operation-Id: [operationId]" -H "Content-Type: application/json" -d "{\"displayName\": \"[YourDisplayName]\",\"description\": \"[OptionalYourDescription]\",\"input\": {\"sourceLocale\": \"[VideoSourceLocale]\",\"targetLocale\": \"[TranslationTargetLocale]\",\"voiceKind\": \"[PlatformVoice/PersonalVoice]\",\"speakerCount\": [OptionalVideoSpeakerCount],\"subtitleMaxCharCountPerSegment\": [OptionalYourPreferredSubtitleMaxCharCountPerSegment],\"exportSubtitleInVideo\": [Optional true/false],\"videoFileUrl\": \"https://speechstudioprodpublicsa.blob.core.windows.net/ttsvoice/VideoTranslation/PublicDoc/SampleData/es-ES-TryOutOriginal.mp4\"}}" "https://[YourSpeechRegion].api.cognitive.microsoft.com/videotranslation/translations/[translationId]?api-version=2024-05-20-preview"
Viktigt!
Data som skapas via API:et visas inte i Speech Studio och data mellan API:et och Speech Studio synkroniseras inte.
Du bör få en svarstext i följande format:
{
"input": {
"sourceLocale": "zh-CN",
"targetLocale": "en-US",
"voiceKind": "PlatformVoice",
"speakerCount": 1,
"subtitleMaxCharCountPerSegment": 30,
"exportSubtitleInVideo": true
},
"status": "NotStarted",
"lastActionDateTime": "2024-09-20T06:25:05.058Z",
"id": "mytranslation0920",
"displayName": "demo",
"description": "for testing",
"createdDateTime": "2024-09-20T06:25:05.058Z"
}
Statusegenskapen ska gå från NotStarted
status, till Running
och slutligen till Succeeded
eller Failed
. Du kan anropa API:et Hämta åtgärd för åtgärds-ID med jämna mellanrum tills den returnerade statusen är Succeeded
eller Failed
. Med den här åtgärden kan du övervaka förloppet för din översättningsprocess.
Hämta åtgärd efter åtgärds-ID
Kontrollera statusen för en specifik åtgärd med hjälp av dess åtgärds-ID. Åtgärds-ID:t är unikt för varje åtgärd, så du kan spåra varje åtgärd separat.
Ersätt [YourResourceKey]
med din Speech-resursnyckel, [YourSpeechRegion]
med resursregionen Speech och [operationId]
med det åtgärds-ID som du vill kontrollera.
curl -v -X GET -H "Ocp-Apim-Subscription-Key:[YourResourceKey]" "https://[YourSpeechRegion].api.cognitive.microsoft.com/videotranslation/operations/[operationId]?api-version=2024-05-20-preview"
Du bör få en svarstext i följande format:
{
"id": "createtranslation0920-1",
"status": "Running"
}
Skapa en iteration
Om du vill börja översätta videon eller uppdatera en iteration för en befintlig översättning måste du skapa en HTTP PUT-begärandesökväg och -brödtext enligt följande instruktioner:
- Ange
Operation-Id
: MåsteOperation-Id
vara unikt för varje åtgärd, till exempel att skapa varje iteration. Ersätt[operationId]
med ett unikt ID för den här åtgärden. - Ange
translationId
: Om flera iterationer utförs under en enda översättning förblir översättnings-ID:t oförändrat. - Ange
iterationId
: MåsteiterationId
vara unikt för varje åtgärd. Ersätt[iterationId]
med ett iterations-ID. - Ange nödvändiga indata: Inkludera information som
speakerCount
,subtitleMaxCharCountPerSegment
ellerexportSubtitleInVideo
webvttFile
. Inga undertexter bäddas in i utdatavideon som standard. - Ersätt
[YourResourceKey]
med din Speech-resursnyckel och ersätt[YourSpeechRegion]
med din Speech-resursregion.
Följande exempel är för Windows-gränssnittet. Se till att komma undan &
med ^&
om URL:en innehåller &
.
curl -v -X PUT -H "Ocp-Apim-Subscription-Key: [YourResourceKey]" -H "Operation-Id: [operationId]" -H "Content-Type: application/json" -d "{\"input\": {\"speakerCount\": [OptionalVideoSpeakerCount],\"subtitleMaxCharCountPerSegment\": [OptionalYourPreferredSubtitleMaxCharCountPerSegment],\"exportSubtitleInVideo\": [Optional true/false],\"webvttFile\": {\"Kind\": \"[SourceLocaleSubtitle/TargetLocaleSubtitle/MetadataJson]\", \"url\": \"[AzureBlobUrlWithSas]\"}}}" "https://[YourSpeechRegion].api.cognitive.microsoft.com/videotranslation/translations/[translationId]/iterations/[iterationId]?api-version=2024-05-20-preview"
Kommentar
Om du redan har angett de valfria parametrarna speakerCount
, subtitleMaxCharCountPerSegment
och exportSubtitleInVideo
när du skapar översättningen, behöver du inte ange dem igen när du skapar en iteration. Värdena ärver från översättningsinställningarna. När dessa parametrar har definierats när du skapar en iteration åsidosätter de nya värdena de ursprungliga inställningarna.
Parametern webvttFile
krävs inte när du skapar den första iterationen. Från och med den andra iterationen måste du dock ange parametern webvttFile
i iterationsprocessen. Du måste ladda ned webvtt-filen, göra nödvändiga ändringar och sedan ladda upp den till Azure Blob Storage. Du måste ange blob-URL:en i curl-koden.
Data som skapas via API:et visas inte i Speech Studio och data mellan API:et och Speech Studio synkroniseras inte.
Undertextfilen kan vara i WebVTT- eller JSON-format. Om du är osäker på hur du förbereder en WebVTT-fil kan du läsa följande exempelformat.
00:00:01.010 --> 00:00:06.030
Hello this is a sample subtitle.
00:00:07.030 --> 00:00:09.030
Hello this is a sample subtitle.
Du bör få en svarstext i följande format:
{
"input": {
"speakerCount": 1,
"subtitleMaxCharCountPerSegment": 30,
"exportSubtitleInVideo": true
},
"status": "Not Started",
"lastActionDateTime": "2024-09-20T06:31:53.760Z",
"id": "firstiteration0920",
"createdDateTime": "2024-09-20T06:31:53.760Z"
}
Du kan använda operationId
den angivna och anropa API:et Hämta åtgärd för åtgärds-ID med jämna mellanrum tills den returnerade statusen är Succeeded
eller Failed
. Med den här åtgärden kan du övervaka förloppet för att skapa iterationsprocessen.
Hämta en iteration med iterations-ID
Om du vill hämta information om en specifik iteration med dess ID använder du HTTP GET-begäran. Ersätt [YourResourceKey]
med din Speech-resursnyckel, [YourSpeechRegion]
med resursregionen Speech, [translationId]
med det översättnings-ID som du vill kontrollera och [iterationId]
med det iterations-ID som du vill kontrollera.
curl -v -X GET -H "Ocp-Apim-Subscription-Key: [YourResourceKey]" "https://[YourSpeechRegion].api.cognitive.microsoft.com/videotranslation/translations/[translationId]/iterations/[iterationId]?api-version=2024-05-20-preview"
Du bör få en svarstext i följande format:
{
"input": {
"speaker Count": 1,
"subtitleMaxCharCountPerSegment": 30,
"exportSubtitleInVideo": true
},
"result": {
"translatedVideoFileUrl": "https://xxx.blob.core.windows.net/container1/video.mp4?sv=2023-01-03&st=2024-05-20T08%3A27%3A15Z&se=2024-05-21T08%3A27%3A15Z&sr=b&sp=r&sig=xxx",
"sourceLocaleSubtitleWebvttFileUrl": "https://xxx.blob.core.windows.net/container1/sourceLocale.vtt?sv=2023-01-03&st=2024-05-20T08%3A27%3A15Z&se=2024-05-21T08%3A27%3A15Z&sr=b&sp=r&sig=xxx",
"targetLocaleSubtitleWebvttFileUrl": "https://xxx.blob.core.windows.net/container1/targetLocale.vtt?sv=2023-01-03&st=2024-05-20T08%3A27%3A15Z&se=2024-05-21T08%3A27%3A15Z&sr=b&sp=r&sig=xxx",
"metadataJsonWebvttFileUrl": "https://xxx.blob.core.windows.net/container1/metadataJsonLocale.vtt?sv=2023-01-03&st=2024-05-20T08%3A27%3A15Z&se=2024-05-21T08%3A27%3A15Z&sr=b&sp=r&sig=xxx"
},
"status": "Succeeded",
"lastActionDateTime": "2024-09-20T06:32:59.933Z",
"id": "firstiteration0920",
"createdDateTime": "2024-09-20T06:31:53.760Z"
}
Ta bort en översättning med översättnings-ID
Ta bort en specifik översättning som identifieras av translationId
. Den här åtgärden tar också bort alla iterationer som är associerade med den här översättningen. Ersätt [YourResourceKey]
med din Speech-resursnyckel, [YourSpeechRegion]
med resursregionen Speech och [translationId]
med det översättnings-ID som du vill ta bort. Om den inte tas bort manuellt behåller tjänsten översättningshistoriken i upp till 31 dagar.
curl -v -X DELETE -H "Ocp-Apim-Subscription-Key: [YourResourceKey]" "https://[YourSpeechRegion].api.cognitive.microsoft.com/videotranslation/translations/[translationId]?api-version=2024-05-20-preview"
Svarshuvudena inkluderar HTTP/1.1 204 No Content
om borttagningsbegäran lyckades.
Ytterligare information
Det här avsnittet innehåller curl-kommandon för andra API-anrop som inte beskrivs i detalj ovan. Du kan utforska varje API med hjälp av följande kommandon.
Lista översättningar
Om du vill visa en lista över alla videoöversättningar som har laddats upp och bearbetats i ditt resurskonto gör du en HTTP GET-begäran enligt följande exempel. Ersätt YourResourceKey
med din Speech-resursnyckel och ersätt YourSpeechRegion
med din Speech-resursregion.
curl -v -X GET -H "Ocp-Apim-Subscription-Key: [YourResourceKey]" "https://[YourSpeechRegion].api.cognitive.microsoft.com/videotranslation/translations?api-version=2024-05-20-preview"
Hämta en översättning via översättnings-ID
Den här åtgärden hämtar detaljerad information om en specifik översättning som identifieras av dess unika translationId
. Ersätt [YourResourceKey]
med din Speech-resursnyckel, [YourSpeechRegion]
med resursregionen Speech och [translationId]
med det översättnings-ID som du vill kontrollera.
curl -v -X GET -H "Ocp-Apim-Subscription-Key: [YourResourceKey]" "https://[YourSpeechRegion].api.cognitive.microsoft.com/videotranslation/translations/[translationId]?api-version=2024-05-20-preview"
Lista iterationer
Visa en lista över alla iterationer för en viss översättning. Den här begäran visar alla iterationer utan detaljerad information. Ersätt [YourResourceKey]
med din Speech-resursnyckel, [YourSpeechRegion]
med resursregionen Speech och [translationId]
med det översättnings-ID som du vill kontrollera.
curl -v -X GET -H "Ocp-Apim-Subscription-Key: [YourResourceKey]" "https://[YourSpeechRegion].api.cognitive.microsoft.com/videotranslation/translations/[translationId]/iterations?api-version=2024-05-20-preview"
HTTP-statuskoder
Avsnittet beskriver HTTP-svarskoderna och meddelandena från rest-API:et för videoöversättning.
HTTP 200 OK
HTTP 200 OK anger att begäran lyckades.
HTTP 204-fel
Ett HTTP 204-fel anger att begäran lyckades, men resursen finns inte. Till exempel:
- Du försökte hämta eller ta bort en översättning som inte finns.
- Du har tagit bort en översättning.
HTTP 400-fel
Här är exempel som kan resultera i 400-felet:
- Käll- eller målspråket som du angav finns inte bland de nationella inställningar som stöds.
- Du försökte använda en F0 Speech-resurs, men regionen stöder bara prisnivån Standard Speech-resurs.
HTTP 500-fel
HTTP 500 Internt serverfel anger att begäran misslyckades. Svarstexten innehåller felmeddelandet.