Verwenden der Videoübersetzung
Hinweis
Dieses Feature ist zurzeit als öffentliche Preview verfügbar. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und sollte nicht für Produktionsworkloads verwendet werden. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.
In diesem Artikel erfahren Sie, wie Sie die Azure AI Speech-Videoübersetzung im Studio verwenden.
Alles, was für die ersten Schritte erforderlich ist, ist ein Originalvideo. Überprüfen Sie, ob die Videoübersetzung Ihre Sprache und Region unterstützt.
Erstellen eines Videoübersetzungsprojekts
Führen Sie die folgenden Schritte aus, um ein Videoübersetzungsprojekt zu erstellen:
Melden Sie sich in Speech Studio an.
Wählen Sie das Abonnement und die Speech-Ressource aus, mit denen Sie arbeiten möchten.
Wählen Sie Videoübersetzung aus.
Wählen Sie auf der Seite Projekte erstellen und verwalten die Option Projekt erstellen aus.
Wählen Sie auf der Seite Neues Projekt die Option Voice-Typ aus.
Sie können vorkonfigurierte neurale Stimme oder persönliche Stimme als Sprachtyp auswählen. Für vorkonfigurierte neurale Stimme wählt das System automatisch die am besten geeignete vorkonfigurierte Stimme aus, indem es die Stimme des Sprechers im Video mit vordefinierten Stimmen abgleicht. Für personalisierte Stimmen bietet das System ein Modell, das in wenigen Sekunden eine qualitativ hochwertige Stimmreplikation generiert.
Hinweis
Um die persönliche Stimme zu nutzen, müssen Sie Zugriff beantragen.
Laden Sie Ihre Videodatei hoch, indem Sie diese ziehen und ablegen oder manuell auswählen.
Stellen Sie sicher, dass das Video im MP4-Format vorliegt, weniger als 500 MB groß und kürzer als 60 Minuten ist.
Geben Sie Projektnamen an, und wählen Sie Anzahl der Lautsprecher, Sprache des Videos, Übersetzen in aus.
Wenn Sie Eigene Untertiteldateien verwenden möchten, wählen Sie Untertiteldatei hinzufügen aus. Sie können entweder die Quelluntertiteldatei oder die Zieluntertiteldatei hochladen. Die Untertiteldatei kann im WebVTT- oder JSON-Format vorliegen. Sie können eine VTT-Beispieldatei für Ihre Referenz herunterladen, indem Sie VTT-Beispieldatei herunterladen auswählen.
Nachdem Sie die Preisinformationen und Verhaltensregeln überprüft haben, fahren Sie mit der Erstellung des Projekts fort.
Sobald der Upload abgeschlossen ist, können Sie den Verarbeitungsstatus auf der Registerkarte „Projekt“ überprüfen.
Nachdem das Projekt erstellt wurde, können Sie das Projekt auswählen, um detaillierte Einstellungen zu überprüfen und Anpassungen entsprechend Ihren Wünschen vorzunehmen.
Überprüfen und Anpassen von Stimmeinstellungen
Auf der Projektdetailseite bietet das Projekt zwei Registerkarten Übersetzt und Original unter Video, sodass Sie diese nebeneinander vergleichen können.
Auf der rechten Seite des Videos können Sie sowohl das ursprüngliche Skript als auch das übersetzte Skript anzeigen. Wenn Sie auf die einzelnen Teile des ursprünglichen Skripts zeigen, springt das Video automatisch zum entsprechenden Segment des ursprünglichen Videos, während beim Draufzeigen auf die einzelnen Teile des übersetzten Skripts das Video zum entsprechenden übersetzten Segment springt.
Sie können bei Bedarf auch Segmente hinzufügen oder entfernen. Wenn Sie ein Segment hinzufügen möchten, stellen Sie sicher, dass der neue Segmentzeitstempel nicht mit dem vorherigen und nächsten Segment überlappt, und die Endzeit des Segments sollte größer sein als die Startzeit. Das richtige Format des Zeitstempels wäre hh:mm:ss.ms
. Andernfalls können Sie die Änderungen nicht anwenden.
Sie können den Zeitrahmen der Skripts direkt mithilfe der Audiowellenform unterhalb des Videos anpassen. Nachdem Sie Änderungen anwenden ausgewählt haben, werden die Anpassungen angewendet.
Wenn Sie auf Segmente mit einem „nicht identifizierten“ Stimmnamen stoßen, könnte dies daran liegen, dass das System die Stimme nicht genau erkennen konnte, insbesondere in Situationen, in denen sich die Sprecherstimmen überschneiden. In solchen Fällen ist es ratsam, den Stimmnamen manuell zu ändern.
Wenn Sie die Stimme anpassen möchten, wählen Sie Stimmeinstellungen aus, um einige Änderungen vorzunehmen. Auf der Seite Stimmeinstellungen können Sie den Stimmtyp, das Geschlecht und die Stimme anpassen. Wählen Sie das Stimmbeispiel rechts neben Stimme aus, um Ihre Stimmauswahl zu treffen. Wenn Sie feststellen, dass eine Stimme fehlt, können Sie den neuen Stimmnamen hinzufügen, indem Sie Sprecher hinzufügen auswählen. Nachdem Sie die Einstellungen geändert haben, wählen Sie Aktualisieren aus.
Wenn Sie Änderungen mehrmals vornehmen, aber noch nicht fertig sind, brauchen Sie nur die von Ihnen vorgenommenen Änderungen zu speichern, indem Sie Speichern auswählen. Nachdem Sie alle Änderungen vorgenommen haben, wählen Sie Änderungen übernehmen aus, um sie auf das Video anzuwenden. Sie werden erst belastet, nachdem Sie Änderungen übernehmen ausgewählt haben.
Sie können das ursprüngliche Video in eine neue Sprache übersetzen, indem Sie Neue Sprache auswählen. Auf der Seite Übersetzen können Sie eine neue übersetzte Sprache und einen neuen Stimmtyp auswählen. Nachdem die Videodatei übersetzt wurde, wird automatisch ein neues Projekt erstellt.
Zugehöriger Inhalt
Die REST-API für die Videoübersetzung erleichtert die nahtlose Integration von Videoübersetzungen in Ihre Anwendungen. Sie unterstützt das Hochladen, Verwalten und Verfeinern von Videoübersetzungen mit mehreren Iterationen für die ständige Verbesserung. In diesem Artikel erfahren Sie, wie Sie die Videoübersetzung mithilfe der REST-API nutzen.
Dieses Diagramm bietet eine allgemeine Übersicht über den Workflow.
Sie können die folgenden REST-API-Vorgänge für die Videoübersetzung verwenden:
Vorgang | Methode | REST-API-Aufruf |
---|---|---|
Erstellen einer Übersetzung | PUT |
/translations/{translationId} |
Auflisten von Übersetzungen | GET |
/translations |
Abrufen einer Übersetzung anhand einer Übersetzungs-ID | GET |
/translations/{translationId} |
Erstellen einer Iteration | PUT |
/translations/{translationId}/iterations/{iterationId} |
Auflisten von Iterationen | GET |
/translations/{translationId}/iterations |
Abrufen einer Iteration anhand einer Iterations-ID | GET |
/translations/{translationId}/iterations/{iterationId} |
Abrufen eines Vorgangs anhand einer Vorgangs-ID | GET |
/operations/{operationId} |
Löschen einer Übersetzung anhand einer Übersetzungs-ID | DELETE |
/translations/{translationId} |
Codebeispiele finden Sie auf GitHub.
In diesem Artikel werden die primären Schritte des API-Prozesses beschrieben, einschließlich Erstellen einer Übersetzung, Erstellen einer Iteration, Überprüfen des Status der einzelnen Vorgänge, Abrufen einer Iteration anhand einer Iterations-ID und Löschen einer Übersetzung anhand einer Übersetzungs-ID. Ausführliche Informationen finden Sie unter den Links zu jeder API in der Tabelle.
Erstellen einer Übersetzung
Um eine Videoübersetzungsanforderung zu übermitteln, müssen Sie einen HTTP PUT-Anforderungspfad und -Text gemäß den folgenden Anweisungen erstellen:
Angeben von
Operation-Id
: DieOperation-Id
muss für jeden Vorgang eindeutig sein. Dadurch wird sichergestellt, dass jeder Vorgang separat nachverfolgt wird. Ersetzen sie[operationId]
durch eine Vorgangs-ID.Angeben von
translationId
: DietranslationId
muss eindeutig sein. Ersetzen sie[translationId]
durch eine Übersetzungs-ID.Festlegen der erforderlichen Eingabe: Schließen Sie Details wie
sourceLocale
,targetLocale
,voiceKind
undvideoFileUrl
ein. Stellen Sie sicher, dass Sie über die Video-URL aus Azure Blob Storage verfügen. Informationen zu den Sprachen, die für die Videoübersetzung unterstützt werden, finden Sie unter unterstützte Quell- und Zielsprachen. Sie können den ParametervoiceKind
entweder aufPlatformVoice
oder aufPersonalVoice
festlegen. FürPlatformVoice
wählt das System automatisch die am besten geeignete vorkonfigurierte Stimme aus, indem es die Stimme des Sprechers im Video mit vordefinierten Stimmen abgleicht. FürPersonalVoice
bietet das System ein Modell, das in wenigen Sekunden eine qualitativ hochwertige Stimmreplikation generiert.Hinweis
Um die persönliche Stimme zu nutzen, müssen Sie Zugriff beantragen.
Ersetzen Sie
[YourResourceKey]
durch den Schlüssel Ihrer Speech-Ressource und[YourSpeechRegion]
durch die Region Ihrer Speech-Ressource.
Durch das Erstellen einer Übersetzung wird der Übersetzungsprozess nicht initiiert. Sie können mit der Übersetzung des Videos beginnen, indem Sie eine Iteration erstellen. Das folgende Beispiel bezieht sich auf Windows-Shell. Stellen Sie sicher, dass Sie ^&
als Escapezeichen für &
verwenden, wenn die URL &
enthält. Im folgenden Beispielcode verwenden wir eine öffentliche Video-URL, die Sie gerne für Ihre eigenen Tests verwenden können.
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"
Wichtig
Daten, die über die API erstellt wurden, werden in Speech Studio nicht angezeigt, und die Daten zwischen der API und Speech Studio werden nicht synchronisiert.
Sie sollten einen Antworttext im folgenden Format erhalten:
{
"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"
}
Die Statuseigenschaft sollte von Status NotStarted
zu Running
und schließlich zu Succeeded
oder Failed
wechseln. Sie können die API Abrufen eines Vorgangs anhand einer Vorgangs-ID regelmäßig aufrufen, bis der zurückgegebene Status Succeeded
oder Failed
ist. Mit diesem Vorgang können Sie den Fortschritt des Erstellungsprozesses überwachen.
Abrufen eines Vorgangs anhand einer Vorgangs-ID
Überprüfen Sie den Status eines bestimmten Vorgangs mithilfe der Vorgangs-ID. Die Vorgangs-ID ist für jeden Vorgang eindeutig, sodass Sie jeden Vorgang separat nachverfolgen können.
Ersetzen Sie [YourResourceKey]
durch Ihren Sprachressourcenschlüssel, [YourSpeechRegion]
durch Ihren Sprachressourcenbereich, und [operationId]
durch die Vorgangs-ID, die Sie überprüfen möchten.
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"
Sie sollten einen Antworttext im folgenden Format erhalten:
{
"id": "createtranslation0920-1",
"status": "Running"
}
Erstellen einer Iteration
Um mit der Übersetzung Ihres Videos zu beginnen oder eine Iteration für eine vorhandene Übersetzung zu aktualisieren, müssen Sie einen HTTP PUT-Anforderungspfad und -text gemäß den folgenden Anweisungen erstellen:
- Angeben von
Operation-Id
: DieOperation-Id
muss für jeden Vorgang eindeutig sein, z. B. das Erstellen der einzelnen Iterationen. Ersetzen Sie[operationId]
durch eine eindeutige ID für diesen Vorgang. - Angeben von
translationId
: Wenn mehrere Iterationen unter einer einzigen Übersetzung durchgeführt werden, bleibt die Übersetzungs-ID unverändert. - Angeben von
iterationId
: DieiterationId
muss für jeden Vorgang eindeutig sein. Ersetzen Sie[iterationId]
durch eine Iterations-ID. - Festlegen der erforderlichen Eingabe: Schließen Sie Details wie
speakerCount
,subtitleMaxCharCountPerSegment
,exportSubtitleInVideo
oderwebvttFile
ein. Standardmäßig sind keine Untertitel in das Ausgabevideo eingebettet. - Ersetzen Sie
[YourResourceKey]
durch den Schlüssel Ihrer Speech-Ressource und[YourSpeechRegion]
durch die Region Ihrer Speech-Ressource.
Das folgende Beispiel bezieht sich auf Windows-Shell. Stellen Sie sicher, dass Sie ^&
als Escapezeichen für &
verwenden, wenn die URL &
enthält.
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"
Hinweis
Wenn Sie beim Erstellen einer Iteration bereits die optionalen Parameter speakerCount
, subtitleMaxCharCountPerSegment
, und exportSubtitleInVideo
während der Erstellung der Übersetzung angegeben haben müssen Sie sie nicht erneut angeben. Die Werte werden von den Übersetzungseinstellungen vererbt. Sobald diese Parameter beim Erstellen einer Iteration definiert wurden, überschreiben die neuen Werte die ursprünglichen Einstellungen.
Der Parameter webvttFile
ist beim Erstellen der ersten Iteration nicht erforderlich. Ab der zweiten Iteration müssen Sie jedoch den Parameter webvttFile
im Iterationsprozess angeben. Sie müssen die WebVTT-Datei herunterladen, die erforderlichen Änderungen vornehmen und dann in Ihren Azure Blob Storage hochladen. Sie müssen die Blob-URL im Curl-Code angeben.
Daten, die über die API erstellt wurden, werden in Speech Studio nicht angezeigt, und die Daten zwischen der API und Speech Studio werden nicht synchronisiert.
Die Untertiteldatei kann im WebVTT- oder JSON-Format vorliegen. Wenn Sie nicht sicher sind, wie Sie eine WebVTT-Datei vorbereiten, sehen Sie sich die folgenden Beispielformate an.
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.
Sie sollten einen Antworttext im folgenden Format erhalten:
{
"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"
}
Sie können die operationId
, die Sie angegebenen haben, verwenden und die API Abrufen eines Vorgangs anhand einer Vorgangs-ID regelmäßig aufrufen, bis der zurückgegebene Status Succeeded
oder Failed
ist. Mit diesem Vorgang können Sie den Fortschritt der Erstellung des Iterationsprozesses überwachen.
Abrufen einer Iteration anhand einer Iterations-ID
Verwenden Sie die HTTP GET-Anforderung, um Details einer bestimmten Iteration anhand ihrer ID abzurufen. Ersetzen Sie [YourResourceKey]
durch Ihren Sprachressourcenschlüssel, [YourSpeechRegion]
durch Ihren Sprachressourcenbereich, und [translationId]
durch die Übersetzungs-ID, die Sie überprüfen möchten, und [iterationId]
durch die Iterations-ID, die Sie überprüfen möchten.
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"
Sie sollten einen Antworttext im folgenden Format erhalten:
{
"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"
}
Löschen einer Übersetzung anhand einer Übersetzungs-ID
Entfernen Sie eine bestimmte Übersetzung, die anhand von translationId
identifiziert wird. Mit diesem Vorgang werden auch alle Iterationen entfernt, die dieser Übersetzung zugeordnet sind. Ersetzen Sie [YourResourceKey]
durch Ihren Sprachressourcenschlüssel, [YourSpeechRegion]
durch Ihren Sprachressourcenbereich, und [translationId]
durch die Übersetzungs-ID, die Sie löschen möchten. Wenn sie nicht manuell gelöscht werden, behält der Dienst den Übersetzungsverlauf für bis zu 31 Tage bei.
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"
Die Antwortheader enthalten HTTP/1.1 204 No Content
, wenn die Löschanforderung erfolgreich war.
Weitere Informationen
Dieser Abschnitt enthält CURL-Befehle für andere API-Aufrufe, die oben nicht ausführlich beschrieben werden. Sie können jede API mithilfe der folgenden Befehle erkunden.
Auflisten von Übersetzungen
Wenn Sie alle Videoübersetzungen auflisten möchten, die in Ihrem Ressourcenkonto hochgeladen und verarbeitet wurden, erstellen Sie eine HTTP GET-Anforderung, wie im folgenden Beispiel gezeigt. Ersetzen Sie YourResourceKey
durch den Schlüssel Ihrer Speech-Ressource und YourSpeechRegion
durch die Region Ihrer Speech-Ressource.
curl -v -X GET -H "Ocp-Apim-Subscription-Key: [YourResourceKey]" "https://[YourSpeechRegion].api.cognitive.microsoft.com/videotranslation/translations?api-version=2024-05-20-preview"
Abrufen einer Übersetzung anhand einer Übersetzungs-ID
Dieser Vorgang ruft detaillierte Informationen zu einer bestimmten Übersetzung ab, die anhand ihrer eindeutigen translationId
identifiziert wird. Ersetzen Sie [YourResourceKey]
durch Ihren Sprachressourcenschlüssel, [YourSpeechRegion]
durch Ihren Sprachressourcenbereich, und [translationId]
durch die Übersetzungs-ID, die Sie überprüfen möchten.
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"
Auflisten von Iterationen
Listen Sie alle Iterationen für eine bestimmte Übersetzung auf. Diese Anforderung listet alle Iterationen ohne detaillierte Informationen auf. Ersetzen Sie [YourResourceKey]
durch Ihren Sprachressourcenschlüssel, [YourSpeechRegion]
durch Ihren Sprachressourcenbereich, und [translationId]
durch die Übersetzungs-ID, die Sie überprüfen möchten.
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-Statuscodes
Im Abschnitt werden die HTTP-Antwortcodes und -Nachrichten aus der REST-API der Videoübersetzung erläutert.
HTTP 200 OK
„HTTP 200 OK“ gibt an, dass die Anforderung erfolgreich war.
HTTP-Fehler 204
Ein HTTP-Fehler 204 gibt an, dass die Anforderung erfolgreich war, die Ressource aber nicht vorhanden ist. Zum Beispiel:
- Sie haben versucht, eine nicht vorhandene Übersetzung abzurufen oder zu löschen.
- Sie haben eine Übersetzung erfolgreich gelöscht.
HTTP-Fehler 400
Hier sehen Sie Beispiele, die zum Fehler 400 führen können:
- Das angegebene Quell- oder Zielgebietsschema gehört nicht zu den unterstützten Gebietsschemas.
- Sie haben versucht, eine F0-Speech-Ressource zu verwenden, die Region unterstützt aber nur den Tarif Standard für Speech-Ressourcen.
HTTP-Fehler 500
Der interne Serverfehler HTTP 500 gibt an, dass bei der Anforderung ein Fehler aufgetreten ist. Der Antworttext enthält die Fehlermeldung.