Udostępnij za pośrednictwem


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:

  1. Zaloguj się do programu Speech Studio.

  2. Wybierz subskrypcję i zasób usługi Mowa do pracy.

  3. Wybierz pozycję Tłumaczenie wideo.

  4. Na stronie Tworzenie projektów i zarządzanie nimi wybierz pozycję Utwórz projekt.

  5. Na stronie Nowy projekt wybierz pozycję Typ głosu.

    Zrzut ekranu przedstawiający wybieranie typu głosu na nowej stronie projektu.

    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.

  6. Przekaż plik wideo, przeciągając i upuszczając plik wideo lub wybierając plik ręcznie.

    Zrzut ekranu przedstawiający przekazywanie pliku wideo na nowej stronie projektu.

    Upewnij się, że wideo jest w formacie .mp4 mniejszym niż 500 MB i krótszym niż 60 minut.

  7. Podaj nazwę projektu i wybierz pozycję Liczba osób mówiących, Język filmu wideo, Tłumacz na język.

    Zrzut ekranu przedstawiający udostępnianie informacji wideo na nowej stronie projektu.

    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.

    Zrzut ekranu przedstawiający dodawanie pliku podtytułu na nowej stronie projektu.

  8. 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.

Zrzut ekranu przedstawiający jeden segment z niezidentyfikowaną nazwą 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.

Zrzut ekranu przedstawiający dostosowywanie ustawień głosowych na stronie ustawień głosowych.

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.

Zrzut ekranu przedstawiający wybieranie przycisku Zastosuj zmiany po wprowadzeniu wszystkich zmian.

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.

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.

Diagram przepływu pracy interfejsu API tłumaczenia wideo.

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-Idwartość : Wartość musi być unikatowa Operation-Id dla każdej operacji. Gwarantuje to, że każda operacja jest śledzona oddzielnie. Zastąp [operationId] element identyfikatorem operacji.

  • Określ wartość translationId: Musi translationId być unikatowa. Zastąp [translationId] element identyfikatorem tłumaczenia.

  • Ustaw wymagane dane wejściowe: dołącz szczegóły, takie jak sourceLocale, targetLocale, voiceKindi videoFileUrl. 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 na PlatformVoice wartość lub PersonalVoice. W przypadku PlatformVoicesystemu 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 przypadku PersonalVoicesystemu 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: element Operation-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 iterationIdwartość : Wartość musi być unikatowa iterationId dla każdej operacji. Zastąp [iterationId] element identyfikatorem iteracji.
  • Ustaw wymagane dane wejściowe: dołącz szczegóły, takie jak speakerCount, , subtitleMaxCharCountPerSegmentexportSubtitleInVideolub webvttFile. 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, subtitleMaxCharCountPerSegmenti 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 translationIdelement . 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 translationIdelement . 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.