Jak używać tłumaczenia wideo
Uwaga
Ta funkcja jest obecnie w publicznej wersji zapoznawczej. Ta wersja zapoznawcza jest udostępniana bez umowy dotyczącej poziomu usług i nie zalecamy korzystania z niej w przypadku obciążeń produkcyjnych. Niektóre funkcje mogą być nieobsługiwane lub ograniczone. Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.
Z tego artykułu dowiesz się, jak używać tłumaczenia wideo usługi Mowa w usłudze Azure AI w studio.
Wszystko, co trzeba rozpocząć, to oryginalny film wideo. Sprawdź, czy tłumaczenie wideo obsługuje twój język i region.
Tworzenie projektu tłumaczenia wideo
Aby utworzyć projekt tłumaczenia wideo, wykonaj następujące kroki:
Zaloguj się do programu Speech Studio.
Wybierz subskrypcję i zasób usługi Mowa do pracy.
Wybierz pozycję Tłumaczenie wideo.
Na stronie Tworzenie projektów i zarządzanie nimi wybierz pozycję Utwórz projekt.
Na stronie Nowy projekt wybierz pozycję Typ głosu.
Możesz wybrać wstępnie utworzony głos neuronowy lub osobisty głos dla pozycji Typ głosu. W przypadku wstępnie utworzonego głosu neuronowego system automatycznie wybiera najbardziej odpowiedni wstępnie utworzony głos, dopasowując głos osoby mówiącej do wideo ze wstępnie utworzonymi głosami. W przypadku głosu osobistego system oferuje model, który generuje wysokiej jakości replikację głosową w ciągu kilku sekund.
Uwaga
Aby korzystać z osobistego głosu, musisz ubiegać się o dostęp.
Przekaż plik wideo, przeciągając i upuszczając plik wideo lub wybierając plik ręcznie.
Upewnij się, że wideo jest w formacie .mp4 mniejszym niż 500 MB i krótszym niż 60 minut.
Podaj nazwę projektu i wybierz pozycję Liczba osób mówiących, Język filmu wideo, Tłumacz na język.
Jeśli chcesz użyć własnych plików napisów, wybierz pozycję Dodaj plik podtytułu. Możesz przekazać źródłowy plik podtytułu lub docelowy plik podtytułu. Plik podtytułu może być w formacie WebVTT lub JSON. Aby uzyskać odwołanie, możesz pobrać przykładowy plik VTT, wybierając pozycję Pobierz przykładowy plik VTT.
Po przejrzeniu informacji o cenach i kodeksie postępowania przejdź do utworzenia projektu.
Po zakończeniu przekazywania możesz sprawdzić stan przetwarzania na karcie projektu.
Po utworzeniu projektu możesz wybrać projekt, aby przejrzeć szczegółowe ustawienia i wprowadzić korekty zgodnie z preferencjami.
Sprawdzanie i dostosowywanie ustawień głosowych
Na stronie szczegółów projektu projekt oferuje dwie karty Przetłumaczone i Oryginalne w obszarze Wideo, co pozwala porównać je obok siebie.
Po prawej stronie filmu wideo można wyświetlić zarówno oryginalny skrypt, jak i przetłumaczony skrypt. Umieszczenie kursora na każdej części oryginalnego skryptu powoduje wyzwolenie wideo w celu automatycznego przechodzenia do odpowiedniego segmentu oryginalnego wideo, a wskaźnik myszy na każdej części przetłumaczonego skryptu wyzwala film wideo, aby przejść do odpowiedniego przetłumaczonego segmentu.
Możesz również dodawać lub usuwać segmenty zgodnie z potrzebami. Jeśli chcesz dodać segment, upewnij się, że nowy znacznik czasu segmentu nie nakłada się na poprzedni i następny segment, a czas zakończenia segmentu powinien być większy niż czas rozpoczęcia. Prawidłowy format znacznika czasu powinien mieć wartość hh:mm:ss.ms
. W przeciwnym razie nie można zastosować zmian.
Ramy czasowe skryptów można dostosować bezpośrednio przy użyciu kształtu fal dźwiękowego poniżej wideo. Po wybraniu pozycji Zastosuj zmiany zostaną zastosowane korekty.
Jeśli napotkasz segmenty z "niezidentyfikowaną" nazwą głosu, może to być spowodowane tym, że system nie mógł dokładnie wykryć głosu, zwłaszcza w sytuacjach, w których głosy osoby mówiącej nakładają się na siebie. W takich przypadkach zaleca się ręczne zmianę nazwy głosu.
Jeśli chcesz dostosować głos, wybierz pozycję Ustawienia głosu, aby wprowadzić pewne zmiany. Na stronie Ustawienia głosu możesz dostosować typ głosu, płeć i głos. Wybierz próbkę głosu po prawej stronie pozycji Voice , aby określić wybór głosu. Jeśli okaże się, że brakuje głosu, możesz dodać nową nazwę głosu, wybierając pozycję Dodaj głośnik. Po zmianie ustawień wybierz pozycję Aktualizuj.
Jeśli wielokrotnie wprowadzasz zmiany, ale nie zostało to zrobione, wystarczy zapisać wprowadzone zmiany, wybierając pozycję Zapisz. Po wprowadzeniu wszystkich zmian wybierz pozycję Zastosuj zmiany , aby zastosować je do filmu wideo. Opłaty będą naliczane dopiero po wybraniu pozycji Zastosuj zmiany.
Oryginalny film wideo można przetłumaczyć na nowy język, wybierając pozycję Nowy język. Na stronie Tłumaczenie możesz wybrać nowy przetłumaczony język i typ głosu. Po przetłumaczeniu pliku wideo zostanie automatycznie utworzony nowy projekt.
Powiązana zawartość
Interfejs API REST tłumaczenia wideo ułatwia bezproblemową integrację tłumaczenia wideo z aplikacjami. Obsługuje przekazywanie, zarządzanie i udoskonalanie tłumaczeń wideo z wieloma iteracjami w celu ciągłego ulepszania. Z tego artykułu dowiesz się, jak korzystać z tłumaczenia wideo za pośrednictwem interfejsu API REST.
Ten diagram zawiera ogólne omówienie przepływu pracy.
Do tłumaczenia wideo można użyć następujących operacji interfejsu API REST:
Operacja | Method | Wywołanie interfejsu API REST |
---|---|---|
Tworzenie tłumaczenia | PUT |
/translations/{translationId} |
Wyświetlanie listy tłumaczeń | GET |
/translations |
Pobieranie tłumaczenia według identyfikatora tłumaczenia | GET |
/translations/{translationId} |
Tworzenie iteracji | PUT |
/translations/{translationId}/iterations/{iterationId} |
Wyświetlanie listy iteracji | GET |
/translations/{translationId}/iterations |
Pobieranie iteracji według identyfikatora iteracji | GET |
/translations/{translationId}/iterations/{iterationId} |
Pobieranie operacji według identyfikatora operacji | GET |
/operations/{operationId} |
Usuwanie tłumaczenia według identyfikatora tłumaczenia | DELETE |
/translations/{translationId} |
Aby zapoznać się z przykładami kodu, zobacz GitHub.
W tym artykule opisano podstawowe kroki procesu interfejsu API, w tym tworzenie tłumaczenia, tworzenie iteracji, sprawdzanie stanu każdej operacji, pobieranie iteracji według identyfikatora iteracji i usuwanie tłumaczenia według identyfikatora tłumaczenia. Aby uzyskać szczegółowe informacje, zapoznaj się z linkami podanymi dla każdego interfejsu API w tabeli.
Tworzenie tłumaczenia
Aby przesłać żądanie tłumaczenia wideo, należy skonstruować ścieżkę i treść żądania HTTP PUT zgodnie z następującymi instrukcjami:
Określ
Operation-Id
wartość : Wartość musi być unikatowaOperation-Id
dla każdej operacji. Gwarantuje to, że każda operacja jest śledzona oddzielnie. Zastąp[operationId]
element identyfikatorem operacji.Określ wartość
translationId
: MusitranslationId
być unikatowa. Zastąp[translationId]
element identyfikatorem tłumaczenia.Ustaw wymagane dane wejściowe: dołącz szczegóły, takie jak
sourceLocale
,targetLocale
,voiceKind
ivideoFileUrl
. Upewnij się, że masz adres URL wideo z usługi Azure Blob Storage. W przypadku języków obsługiwanych do tłumaczenia wideo zapoznaj się z obsługiwanymi językami źródłowymi i docelowymi. Możesz ustawićvoiceKind
parametr naPlatformVoice
wartość lubPersonalVoice
. W przypadkuPlatformVoice
systemu system automatycznie wybiera najbardziej odpowiedni wstępnie utworzony głos, pasując do głosu osoby mówiącej w filmie wideo ze wstępnie utworzonymi głosami. W przypadkuPersonalVoice
systemu system oferuje model, który generuje wysokiej jakości replikację głosową w ciągu kilku sekund.Uwaga
Aby korzystać z osobistego głosu, musisz ubiegać się o dostęp.
Zastąp
[YourResourceKey]
ciąg kluczem zasobu usługi Mowa i zastąp[YourSpeechRegion]
element regionem zasobu usługi Mowa.
Tworzenie tłumaczenia nie inicjuje procesu tłumaczenia. Możesz rozpocząć tłumaczenie wideo, tworząc iterację. Poniższy przykład dotyczy powłoki systemu Windows. Upewnij się, że należy uruchomić znak ucieczki &
, ^&
jeśli adres URL zawiera &
wartość . W poniższym przykładowym kodzie użyjemy publicznego adresu URL wideo, którego możesz użyć do własnych testów.
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"
Ważne
Dane utworzone za pośrednictwem interfejsu API nie będą wyświetlane w programie Speech Studio, a dane między interfejsem API i programem Speech Studio nie są synchronizowane.
Treść odpowiedzi powinna zostać wyświetlona w następującym formacie:
{
"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"
}
Właściwość statusu powinna przechodzić ze NotStarted
stanu do Running
, a na koniec do Succeeded
lub Failed
. Operację Get można wywołać okresowo, dopóki zwrócony stan to Succeeded
lub Failed
. Ta operacja umożliwia monitorowanie postępu procesu tworzenia tłumaczenia.
Pobieranie operacji według identyfikatora operacji
Sprawdź stan określonej operacji przy użyciu jego identyfikatora operacji. Identyfikator operacji jest unikatowy dla każdej operacji, dzięki czemu można śledzić każdą operację oddzielnie.
Zastąp [YourResourceKey]
ciąg kluczem zasobu usługi Mowa regionem [YourSpeechRegion]
zasobu usługi Mowa i [operationId]
identyfikatorem operacji, który chcesz sprawdzić.
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"
Treść odpowiedzi powinna zostać wyświetlona w następującym formacie:
{
"id": "createtranslation0920-1",
"status": "Running"
}
Tworzenie iteracji
Aby rozpocząć tłumaczenie wideo lub zaktualizować iterację dla istniejącego tłumaczenia, należy skonstruować ścieżkę żądania HTTP PUT i treść zgodnie z następującymi instrukcjami:
- Określ
Operation-Id
: elementOperation-Id
musi być unikatowy dla każdej operacji, na przykład podczas tworzenia każdej iteracji. Zastąp[operationId]
element unikatowym identyfikatorem tej operacji. - Określ
translationId
: jeśli w ramach pojedynczego tłumaczenia jest wykonywanych wiele iteracji, identyfikator tłumaczenia pozostaje niezmieniony. - Określ
iterationId
wartość : Wartość musi być unikatowaiterationId
dla każdej operacji. Zastąp[iterationId]
element identyfikatorem iteracji. - Ustaw wymagane dane wejściowe: dołącz szczegóły, takie jak
speakerCount
, ,subtitleMaxCharCountPerSegment
exportSubtitleInVideo
lubwebvttFile
. Domyślnie żadne napisy nie są osadzone w wyjściowym filmie wideo. - Zastąp
[YourResourceKey]
ciąg kluczem zasobu usługi Mowa i zastąp[YourSpeechRegion]
element regionem zasobu usługi Mowa.
Poniższy przykład dotyczy powłoki systemu Windows. Upewnij się, że należy uruchomić znak ucieczki &
, ^&
jeśli adres URL zawiera &
wartość .
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"
Uwaga
Jeśli podczas tworzenia iteracji określono już opcjonalne parametry speakerCount
, subtitleMaxCharCountPerSegment
i exportSubtitleInVideo
podczas tworzenia tłumaczenia, nie trzeba ich ponownie określać. Wartości będą dziedziczone z ustawień tłumaczenia. Po zdefiniowaniu tych parametrów podczas tworzenia iteracji nowe wartości zastąpią oryginalne ustawienia.
Parametr webvttFile
nie jest wymagany podczas tworzenia pierwszej iteracji. Jednak począwszy od drugiej iteracji, należy określić webvttFile
parametr w procesie iteracji. Musisz pobrać plik webvtt, wprowadzić niezbędne zmiany, a następnie przekazać go do usługi Azure Blob Storage. Musisz określić adres URL obiektu blob w kodzie curl.
Dane utworzone za pośrednictwem interfejsu API nie będą wyświetlane w programie Speech Studio, a dane między interfejsem API i programem Speech Studio nie są synchronizowane.
Plik podtytułu może być w formacie WebVTT lub JSON. Jeśli nie masz pewności, jak przygotować plik WebVTT, zapoznaj się z następującymi przykładowymi formatami.
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.
Treść odpowiedzi powinna zostać wyświetlona w następującym formacie:
{
"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"
}
Można użyć operationId
określonego identyfikatora operacji i wywołać operację get przez interfejs API identyfikatora operacji okresowo do momentu, gdy zwrócony stan to Succeeded
lub Failed
. Ta operacja umożliwia monitorowanie postępu tworzenia procesu iteracji.
Pobieranie iteracji według identyfikatora iteracji
Aby pobrać szczegóły konkretnej iteracji według jego identyfikatora, użyj żądania HTTP GET. Zastąp [YourResourceKey]
ciąg kluczem zasobu usługi Mowa, [YourSpeechRegion]
regionem zasobu usługi Mowa, identyfikatorem tłumaczenia, [translationId]
który chcesz sprawdzić, oraz [iterationId]
identyfikatorem iteracji, który chcesz sprawdzić.
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"
Treść odpowiedzi powinna zostać wyświetlona w następującym formacie:
{
"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"
}
Usuwanie tłumaczenia według identyfikatora tłumaczenia
Usuń określone tłumaczenie zidentyfikowane przez translationId
element . Ta operacja usuwa również wszystkie iteracji skojarzone z tym tłumaczeniem. Zastąp [YourResourceKey]
ciąg kluczem zasobu usługi Mowa, [YourSpeechRegion]
regionem zasobu usługi Mowa i [translationId]
identyfikatorem tłumaczenia, który chcesz usunąć. Jeśli nie zostanie usunięta ręcznie, usługa zachowuje historię tłumaczenia przez maksymalnie 31 dni.
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"
Nagłówki odpowiedzi zawierają HTTP/1.1 204 No Content
informację, czy żądanie usunięcia zakończyło się pomyślnie.
Dodatkowe informacje
Ta sekcja zawiera polecenia curl dla innych wywołań interfejsu API, które nie zostały opisane szczegółowo powyżej. Poszczególne interfejsy API można eksplorować przy użyciu następujących poleceń.
Wyświetlanie listy tłumaczeń
Aby wyświetlić listę wszystkich tłumaczeń wideo przekazanych i przetworzonych na koncie zasobu, utwórz żądanie HTTP GET, jak pokazano w poniższym przykładzie. Zastąp YourResourceKey
ciąg kluczem zasobu usługi Mowa i zastąp YourSpeechRegion
element regionem zasobu usługi Mowa.
curl -v -X GET -H "Ocp-Apim-Subscription-Key: [YourResourceKey]" "https://[YourSpeechRegion].api.cognitive.microsoft.com/videotranslation/translations?api-version=2024-05-20-preview"
Pobieranie tłumaczenia według identyfikatora tłumaczenia
Ta operacja pobiera szczegółowe informacje o konkretnym tłumaczeniu zidentyfikowanym przez jego unikatowy translationId
element . Zastąp [YourResourceKey]
ciąg kluczem zasobu usługi Mowa, [YourSpeechRegion]
regionem zasobu usługi Mowa i [translationId]
identyfikatorem tłumaczenia, który chcesz sprawdzić.
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"
Wyświetlanie listy iteracji
Wyświetl listę wszystkich iteracji dla określonego tłumaczenia. To żądanie zawiera listę wszystkich iteracji bez szczegółowych informacji. Zastąp [YourResourceKey]
ciąg kluczem zasobu usługi Mowa, [YourSpeechRegion]
regionem zasobu usługi Mowa i [translationId]
identyfikatorem tłumaczenia, który chcesz sprawdzić.
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"
Kody stanu HTTP
Sekcja zawiera szczegółowe informacje na temat kodów odpowiedzi HTTP i komunikatów z interfejsu API REST tłumaczenia wideo.
HTTP 200 OK
HTTP 200 OK wskazuje, że żądanie zakończyło się pomyślnie.
Błąd HTTP 204
Błąd HTTP 204 wskazuje, że żądanie zakończyło się pomyślnie, ale zasób nie istnieje. Na przykład:
- Próbowano pobrać lub usunąć tłumaczenie, które nie istnieje.
- Pomyślnie usunięto tłumaczenie.
Błąd HTTP 400
Oto przykłady, które mogą spowodować błąd 400:
- Określone ustawienia regionalne źródłowe lub docelowe nie należą do obsługiwanych ustawień regionalnych.
- Próbowano użyć zasobu usługi Mowa F0, ale region obsługuje tylko warstwę cenową zasobu usługi Mowa w warstwie Standardowa.
Błąd HTTP 500
Błąd wewnętrzny serwera HTTP 500 wskazuje, że żądanie nie powiodło się. Treść odpowiedzi zawiera komunikat o błędzie.