你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
注意
此功能目前处于公开预览状态。 此预览版未提供服务级别协议,不建议将其用于生产工作负载。 某些功能可能不受支持或者受限。 有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款。
本文介绍如何在 Azure AI Foundry 门户中通过 Azure AI 语音使用视频翻译。
小窍门
使用 API 之前,请在 Azure AI Foundry 门户中 试用视频翻译。 使用 视频翻译 REST API 将视频翻译集成到应用程序中。 有关 API 的详细信息,请参阅 视频翻译 REST API。
先决条件
- 一份 Azure 订阅。 如果没有 Azure 订阅,请在开始操作前先创建一个免费帐户。
- 支持的区域中用于语音的 AI Foundry 资源。 如果没有语音资源,请在 Azure 门户中创建一个。
- Azure Blob 存储帐户。
- 你需要一个 .mp4 格式的视频文件,小于 5 GB,短于 4 小时。 出于测试目的,可以使用Microsoft提供 https://ai.azure.com/speechassetscache/ttsvoice/VideoTranslation/PublicDoc/SampleData/es-ES-TryOutOriginal.mp4的示例视频文件。
- 确保视频翻译支持 源和目标语言。
试用视频翻译
若要试用视频翻译演示,请执行以下步骤:
在目录搜索框中输入并搜索“Azure-AI-Speech”。
选择 “Azure-AI-Speech ”,你将访问 “Azure-AI-Speech 试用”页。
按方案>视频翻译选择语音功能。
在右侧的 “示例”选项 下,选择个人或标准语音。
选择 “播放 ”按钮以听到翻译的音频。 选择原始视频选项卡可播放原始音频。
语音类型选项包括:
- 标准语音:该服务通过将视频中的扬声器语音与标准语音匹配,自动选择最合适的标准语音。
- 个人语音:使用与视频中扬声器的声音匹配的个人语音。
注意
若要通过 API 使用个人语音,需要申请 访问。
创建一个视频翻译项目
要创建视频翻译项目,请执行以下步骤:
在目录搜索框中输入并搜索“Azure-AI-Speech”。
选择 “Azure-AI-Speech ”,你将访问 “Azure-AI-Speech 试用”页。
按方案>视频翻译选择语音功能。
选择 转到语音实验室。
选择“我的视频>”。
在 “上传视频 ”页上,选择 语音类型。
语音类型选项包括:
- 标准语音:该服务通过将视频中的扬声器语音与标准语音匹配,自动选择最合适的标准语音。
- 个人语音:使用与视频中扬声器的声音匹配的个人语音。
注意
要使用个人声音,需要申请访问权限。
通过拖放视频文件或手动选择文件来上传视频文件。 视频必须采用 .mp4 格式、小于 5 GB 且短于 4 小时。
提供“说话人数”、“视频语言”和“目标语言”语言。
选中框可确认定价信息和行为准则。
如果想要调整高级设置,请选择“ 下一步:高级设置 ”。
(可选)可以调整以下设置:
- 词典文件:此选项允许添加系统应识别和正确发音的自定义字词或短语。 可以在 语音工作室的音频内容创建工具 中创建词典文件,并将其选中在此处。
- 燃烧字幕:此选项允许向视频添加副标题。 字幕文件可以采用 WebVTT 或 JSON 格式。 可以通过选择“ 下载示例 VTT 文件”来下载示例 WebVTT 文件以供参考。
如果要使用自己的副标题文件,请选择“ 字幕>上传自己的字幕”。 可以选择上传源字幕文件或目标字幕文件。
- 自动字幕:生成源和目标语言字幕。
- 上传源语言字幕:生成源语言字幕和目标语言字幕。
- 上传目标语言副标题:仅生成目标语言字幕。
选择 创建。
上传到 Azure Blob 存储完成后,可以在项目选项卡上检查处理状态。
创建项目后,可以选择该项目以查看详细设置,并根据偏好进行调整。
查看并调整声音设置
选择 “我的视频 ”,应会看到标记为 “成功 ”状态的视频。
选择视频以查看“视频”下的“已翻译”和“原始”选项卡。 可以通过选择相应的选项卡来比较原始和翻译的视频。翻译的视频是自动生成的,你可以播放它来检查翻译质量。
在视频右侧,可以查看原始脚本和已翻译的脚本。 如果将鼠标悬停在原始脚本的各个部分上,会使视频自动跳转到原始视频的相应片段,如果将鼠标悬停在已翻译脚本的各个部分上,会使视频跳转到相应的已翻译片段。
你可以对视频进行多次更改,包括调整语音设置、添加或删除段,以及更改脚本的时间范围。 只有在选择“应用更改”应用你的更改后,才会收取费用。 可以选择“ 保存” 以保存正在进行的工作,而不会产生任何费用。
如果遇到声音名称为“无法识别”的片段,可能是因为系统无法准确检测声音,尤其是在说话人声音重叠的情况下。 在这种情况下,建议手动更改声音名称。
翻译为其他语言
可以保留当前翻译项目,并将原始视频翻译为其他语言。
- 选择 “我的视频 ”,然后选择视频翻译的磁贴。
- 选择 “+ 新建语言”。
- 在出现的 “翻译为新语言 ”页上,选择新的翻译语言和语音类型。 翻译视频后,将自动创建新项目。
相关内容
本文介绍如何在 语音工作室中将视频翻译与 Azure AI 语音配合使用。
先决条件
- 一份 Azure 订阅。 如果没有 Azure 订阅,请在开始操作前先创建一个免费帐户。
- 受支持区域中的语音资源。 如果没有语音资源,请在 Azure 门户中创建一个。
- Azure Blob 存储帐户。
- 你需要一个 .mp4 格式的视频文件,小于 5 GB,短于 4 小时。 出于测试目的,可以使用Microsoft提供 https://ai.azure.com/speechassetscache/ttsvoice/VideoTranslation/PublicDoc/SampleData/es-ES-TryOutOriginal.mp4的示例视频文件。
- 确保视频翻译支持 源和目标语言。
创建一个视频翻译项目
要创建视频翻译项目,请执行以下步骤:
登录 Speech Studio。
选择要使用的订阅和语音资源。
选择“视频翻译”。
在“创建和管理项目”页上,选择“创建项目”。
在 “新建项目 ”页上,选择 语音类型。
语音类型选项包括:
- 标准语音:该服务通过将视频中的扬声器语音与标准语音匹配,自动选择最合适的标准语音。
- 个人语音:使用与视频中扬声器的声音匹配的个人语音。
注意
要使用个人声音,需要申请访问权限。
通过拖放视频文件或手动选择文件来上传视频文件。 视频必须采用 .mp4 格式、小于 5 GB 且短于 4 小时。
提供 项目名称、 说话人数、 视频语言以及 翻译为 语言。
选中框可确认定价信息和行为准则。
如果想要调整高级设置,请选择“ 下一步:高级设置 ”。
(可选)可以调整以下设置:
- 词典文件:此选项允许添加系统应识别和正确发音的自定义字词或短语。 可以在 语音工作室的音频内容创建工具 中创建词典文件,并将其选中在此处。
- 燃烧字幕:此选项允许向视频添加副标题。 字幕文件可以采用 WebVTT 或 JSON 格式。 可以通过选择“ 下载示例 VTT 文件”来下载示例 WebVTT 文件以供参考。
如果要使用自己的副标题文件,请选择“ 字幕>上传自己的字幕”。 可以选择上传源字幕文件或目标字幕文件。
- 自动字幕:生成源和目标语言字幕。
- 上传源语言字幕:生成源语言字幕和目标语言字幕。
- 上传目标语言副标题:仅生成目标语言字幕。
选择 创建。
上传到 Azure Blob 存储完成后,可以在项目选项卡上检查处理状态。
创建项目后,可以选择该项目以查看详细设置,并根据偏好进行调整。
查看并调整声音设置
在项目详细信息页上,可以看到“视频”下的“已翻译”和“原始”选项卡。 可以通过选择相应的选项卡来比较原始和翻译的视频。翻译的视频是自动生成的,你可以播放它来检查翻译质量。
在视频右侧,可以查看原始脚本和已翻译的脚本。 如果将鼠标悬停在原始脚本的各个部分上,会使视频自动跳转到原始视频的相应片段,如果将鼠标悬停在已翻译脚本的各个部分上,会使视频跳转到相应的已翻译片段。
还可以根据需要添加或移除片段。 如果要添加片段,请确保新片段的时间戳不与上一个和下一个片段重叠,且片段结束时间应大于开始时间。 时间戳的正确格式应为 hh:mm:ss.ms
。 否则,无法应用更改。
可以使用视频下方的音频波形直接调整脚本的时间范围。 在选择“应用更改”后,将应用调整。
如果遇到声音名称为“无法识别”的片段,可能是因为系统无法准确检测声音,尤其是在说话人声音重叠的情况下。 在这种情况下,建议手动更改声音名称。
如果要调整声音,请选择“声音设置”进行一些更改。 在“声音设置”页上,可以调整声音类型、性别和声音。 选择“声音”右侧的声音示例以确定所选的声音。 如果发现缺少语音,可以通过选择“ 添加扬声器”来添加新的语音名称。 更改设置后,选择“更新”。
你可以对视频进行多次更改,包括调整语音设置、添加或删除段,以及更改脚本的时间范围。 只有在选择“应用更改”应用你的更改后,才会收取费用。 可以选择“ 保存” 以保存正在进行的工作,而不会产生任何费用。
翻译为其他语言
可以保留当前翻译项目,并将原始视频翻译为其他语言。
- 打开项目。
- 选择 “+ 新建语言”。
- 在出现的新 翻译 页上,选择新的翻译语言和语音类型。 翻译视频后,将自动创建新项目。
相关内容
视频翻译 REST API 有助于将视频翻译无缝集成到应用程序中。 它支持上传、管理和优化视频翻译,并多次迭代进行持续改进。 本文介绍如何通过 REST API 使用视频翻译。
先决条件
- 一份 Azure 订阅。 如果没有 Azure 订阅,请在开始操作前先创建一个免费帐户。
- 支持的区域中用于语音的 AI Foundry 资源。 如果没有语音资源,请在 Azure 门户中创建一个。
- Azure Blob 存储帐户。
- 你需要一个 .mp4 格式的视频文件,小于 5 GB,短于 4 小时。 出于测试目的,可以使用Microsoft提供 https://ai.azure.com/speechassetscache/ttsvoice/VideoTranslation/PublicDoc/SampleData/es-ES-TryOutOriginal.mp4的示例视频文件。
- 确保视频翻译支持 源和目标语言。
小窍门
在开始之前,请参阅 视频翻译概述 ,了解视频翻译的端到端过程。
Workflow
下面是使用 REST API 获取已翻译视频的步骤:
- 创建翻译对象。 定期检查操作的状态,直到操作到达
Succeeded
或Failed
。 - 创建迭代 以启动翻译过程。 定期检查迭代作的状态,直到它到达
Succeeded
或Failed
。 - 下载 翻译的视频和副标题。
- (可选) 创建其他迭代 以提高翻译质量。
步骤 1:创建翻译
重要
按本节所述创建翻译不会启动翻译过程。 可以通过创建迭代来开始翻译视频。 通过 REST API 创建的翻译和迭代不会同步到门户,反之亦然。
若要创建视频翻译,需要根据以下说明构造 HTTP PUT 请求路径和正文:
指定
displayName
:翻译的显示名称。 这是一个用户友好的名称,可帮助你识别翻译。指定
description
:翻译的简要描述。 这是可选的,但可用于文档目的。指定
sourceLocale
:原始视频的语言。 这是视频文件中使用的语言。请指定
targetLocale
:您要将视频翻译成的语言。 这是翻译的目标语言。指定
voiceKind
:要用于翻译的语音类型。 你可以在PlatformVoice
和PersonalVoice
之间选择。 对于PlatformVoice
,系统通过将视频中的扬声器语音与标准语音匹配,自动选择最合适的标准语音。 系统针对PersonalVoice
提供了一种模型,该模型只需几秒即可生成高质量的语音副本。注意
要使用个人声音,需要申请访问权限。
指定
speakerCount
:视频中的扬声器数。 这是一个可选参数,如果不确定,则可以将其设置为 1。指定
subtitleMaxCharCountPerSegment
:每个副标题段允许的最大字符数。 这是一个可选参数,如果不确定,则可以将其设置为 30。指定
exportSubtitleInVideo
:一个布尔值,指示是否导出视频中的副标题。 这是一个可选参数,如果要在视频中包含副标题,则可以将其true
设置为该参数。videoFileUrl
指定要翻译的视频文件的 URL。 视频必须采用 .mp4 格式、小于 5 GB 且短于 4 小时。 可以将视频上传到 Azure Blob 存储并使用 Blob URL。 出于测试目的,可以使用Microsoft提供 https://ai.azure.com/speechassetscache/ttsvoice/VideoTranslation/PublicDoc/SampleData/es-ES-TryOutOriginal.mp4的示例视频文件。
若要进行身份验证和授权,需要在请求中包含以下标头和路径 ID:
- 设置
Operation-Id
标头:每个操作(例如创建每次迭代)的Operation-Id
必须是唯一的。 将Your-Operation-Id
替换为此操作的唯一 ID。 - 在路径中替换
Your-Translation-Id
。 翻译 ID 在语音资源的所有翻译中必须是唯一的。 将Your-Translation-Id
替换为所选的翻译 ID。 使用此 ID 来引用后续 API 调用中的翻译。 - 将
YourSpeechResourceKey
替换为语音资源密钥,将YourSpeechResourceRegion
替换为语音资源区域。
curl -v -X PUT -H "Ocp-Apim-Subscription-Key: YourSpeechResourceKey" -H "Operation-Id: Your-Operation-Id-1" -H "Content-Type: application/json" -d '{
"displayName": "My translation object",
"description": "My translation object for video translation iterations",
"input": {
"sourceLocale": "es-ES",
"targetLocale": "en-US",
"voiceKind": "PlatformVoice",
"speakerCount": 1,
"subtitleMaxCharCountPerSegment": 50,
"exportSubtitleInVideo": false,
"enableLipSync": false,
"videoFileUrl": "https://ai.azure.com/speechassetscache/ttsvoice/VideoTranslation/PublicDoc/SampleData/es-ES-TryOutOriginal.mp4"
}
}' "https://YourSpeechResourceRegion.api.cognitive.microsoft.com/videotranslation/translations/Your-Translation-Id?api-version=2024-05-20"
重要
如果尝试使用不同的设置使用现有翻译 ID,API 将返回错误。 翻译 ID 对于每个翻译必须是唯一的。 可以通过 创建迭代来更改现有翻译。
你应该会收到以下格式的响应正文:
{
"input": {
"sourceLocale": "es-ES",
"targetLocale": "en-US",
"voiceKind": "PlatformVoice",
"speakerCount": 1,
"subtitleMaxCharCountPerSegment": 50,
"exportSubtitleInVideo": false,
"enableLipSync": false
},
"status": "NotStarted",
"lastActionDateTime": "2025-03-06T19:13:35.669Z",
"id": "Your-Translation-Id",
"displayName": "My translation object",
"description": "My translation object for video translation iterations",
"createdDateTime": "2025-03-06T19:13:35.669Z"
}
可以使用您指定的操作 ID,并定期使用 通过操作 ID API 获取操作,直到返回的状态为 Succeeded
或 Failed
。 通过此操作可监视迭代创建过程的进度。 status 属性应从 NotStarted
发展为 Running
,最后变更为 Succeeded
或 Failed
。
步骤 2:创建迭代
要开始翻译视频或更新现有翻译的迭代,需要按照以下说明构造 HTTP PUT 请求路径和正文:
- 设置所需的输入:包括详细信息,例如
speakerCount
、subtitleMaxCharCountPerSegment
、exportSubtitleInVideo
或webvttFile
。 默认情况下,输出视频中没有嵌入字幕。 创建迭代时,如果已指定可选参数speakerCount
,subtitleMaxCharCountPerSegment
并在exportSubtitleInVideo
创建翻译期间,无需再次指定它们。 这些值会从翻译设置中继承。 创建迭代时定义这些参数后,新值将替代原始设置。 - (可选)可以为原始视频指定带副标题的 WebVTT 文件。
webvttFile
创建第一次迭代时不需要输入参数。 但是, 从第二次迭代开始,必须在迭代过程中指定webvttFile
参数。
若要进行身份验证和授权,需要在请求中包含以下标头和路径 ID:
- 设置
Operation-Id
标头:每个操作(例如创建每次迭代)的Operation-Id
必须是唯一的。 将Your-Operation-Id
替换为此操作的唯一 ID。 - 在路径中替换
Your-Translation-Id
。 使用创建翻译时指定的同一翻译 ID。 翻译 ID 保持不变。 - 在路径中指定新的
iterationId
。 迭代 ID 对于每个操作必须是唯一的。 将Your-Iteration-Id-1
替换为所选的迭代 ID。 - 将
YourSpeechResourceKey
替换为语音资源密钥,将YourSpeechResourceRegion
替换为语音资源区域。
curl -v -X PUT -H "Ocp-Apim-Subscription-Key: YourSpeechResourceKey" \
-H "Operation-Id: Your-Operation-Id" \
-H "Content-Type: application/json" \
-d '{
"input": {
"subtitleMaxCharCountPerSegment": 30,
"exportSubtitleInVideo": true
}
}' "https://YourSpeechResourceRegion.api.cognitive.microsoft.com/videotranslation/translations/Your-Translation-Id/iterations/Your-Iteration-Id-1?api-version=2024-05-20"
你应该会收到以下格式的响应正文:
{
"input": {
"subtitleMaxCharCountPerSegment": 30,
"exportSubtitleInVideo": true
},
"status": "NotStarted",
"lastActionDateTime": "2025-03-06T19:15:38.722Z",
"id": "Your-Iteration-Id",
"createdDateTime": "2025-03-06T19:15:38.722Z"
}
可以使用您指定的操作 ID,并定期使用 通过操作 ID API 获取操作,直到返回的状态为 Succeeded
或 Failed
。 通过此操作可监视迭代创建过程的进度。 status 属性应从 NotStarted
发展为 Running
,最后变更为 Succeeded
或 Failed
。
步骤 3:下载翻译的视频和字幕
在迭代状态为 Succeeded
后,可以下载翻译的视频和副标题。 翻译后的视频和字幕可以在通过迭代ID获取迭代 API 的响应正文中找到。
若要按特定迭代的 ID 检索该迭代的详细信息,请使用 HTTP GET 请求。 将 YourSpeechResourceKey
替换为语音资源密钥,将 YourSpeechResourceRegion
替换为语音资源区域,将 Your-Translation-Id
替换为要检查的翻译 ID,将 Your-Iteration-Id
替换为要检查的迭代 ID。
curl -v -X GET -H "Ocp-Apim-Subscription-Key: YourSpeechResourceKey" "https://YourSpeechResourceRegion.api.cognitive.microsoft.com/videotranslation/translations/Your-Translation-Id/iterations/Your-Iteration-Id?api-version=2024-05-20"
你应该会收到以下格式的响应正文:
{
"input": {
"speakerCount": 1,
"subtitleMaxCharCountPerSegment": 30,
"exportSubtitleInVideo": true
},
"result": {
"translatedVideoFileUrl": "https://cvoiceprodeus.blob.core.windows.net/YourTranslatedVideoFileUrl",
"sourceLocaleSubtitleWebvttFileUrl": "https://cvoiceprodeus.blob.core.windows.net/YourSourceLocaleSubtitleWebvttFileUrl",
"targetLocaleSubtitleWebvttFileUrl": "https://cvoiceprodeus.blob.core.windows.net/YourTargetLocaleSubtitleWebvttFileUrl",
"metadataJsonWebvttFileUrl": "https://cvoiceprodeus.blob.core.windows.net/YourMetadataJsonWebvttFileUrl",
},
"status": "Succeeded",
"lastActionDateTime": "2025-03-06T19:17:06.270Z",
"id": "Your-Iteration-Id-7",
"createdDateTime": "2025-03-06T19:15:38.723Z"
}
从结果链接下载
响应正文包含以下 URL,用于下载翻译的视频和副标题:
translatedVideoFileUrl
:已翻译的视频文件的 URL。 可以从此 URL 下载已翻译的视频。sourceLocaleSubtitleWebvttFileUrl
:源语言环境的 WebVTT 文件的 URL。 可以从此 URL 下载 WebVTT 文件。targetLocaleSubtitleWebvttFileUrl
:对应语言区域的 WebVTT 文件的 URL。 可以从此 URL 下载 WebVTT 文件。metadataJsonWebvttFileUrl
:元数据 JSON WebVTT 文件的 URL。 可以从此 URL 下载元数据 JSON WebVTT 文件。
下面是副标题文件格式的示例:
sourceLocaleSubtitleWebvttFileUrl
WEBVTT
00:00:00.320 --> 00:00:03.880
Microsoft ha estado 25 años comprometido con El Salvador.
00:00:03.960 --> 00:00:08.440
Microsoft es hablar de innovación y es hablar del presente y futuro del Salvador.
00:00:09.080 --> 00:00:15.840
Son 25 años y contando los que como marca Microsoft ha logrado cumplir con cada 1 de sus objetivos en El País.
00:00:16.040 --> 00:00:23.400
Nos apoyamos muchísimo en su liderazgo, en su tecnología de punta y en su innovación continua.
00:00:23.800 --> 00:00:29.760
Microsoft le permite a Nico ser parte de un ecosistema tecnológico a nivel mundial más que un aliado para nosotros,
00:00:29.760 --> 00:00:33.880
más que un socio, realmente es un amigo, un amigo estratégico,
00:00:34.840 --> 00:00:39.800
incondicional, teniendo en cuenta y como principal razón de ser nuestra misión y visión,
00:00:40.080 --> 00:00:45.400
permitiendo que los salvadoreños puedan percatarse de su potencial. 25 años de experiencia.
00:00:45.680 --> 00:00:50.480
25 años impulsando, innovando y mejorando en cada una de nuestras facetas.
00:00:50.880 --> 00:00:58.080
Nuestra misión sigue intacta, empoderar a todas las personas y organizaciones del planeta a lograr más felices.
00:00:58.080 --> 00:01:01.240
25, Microsoft felices. 25, El Salvador.
00:01:01.480 --> 00:01:05.920
Juntos seguiremos innovando y progresando un mejor bienestar con tecnología.
具有 JSON 属性的 WebVTT
包含 JSON 属性的 WebVTT 文件包含有关翻译过程的元数据。 每个副标题段都包含提供有关翻译的其他信息的属性。 下面是属性的细分:
globalMetadata
:本节包含有关视频中扬声器的元数据。 “speakers”属性是一个对象,其中包含有关每个说话人的信息。 每个说话人都由唯一 ID(例如“Speaker0”)标识。 “defaultSsmlProperties”属性包含说话人语音的默认 SSML 属性。id
:这是每个副标题段的唯一标识符。 它有助于标识 WebVTT 文件中的特定文本段。speakerId
:此属性指示相应字幕段的说话人 ID。 它应与“globalMetadata”部分中定义的说话人 ID 匹配。ssmlProperties
:本节包含与说话人语音相关的属性。 它可以包括“voiceName”和“voiceKind”等属性。 “voiceName”是用于合成的语音的名称,“voiceKind”指示它是平台语音还是个人语音。sourceLocaleText
:此属性包含源语言中的原始文本。 如果您只更新sourceLocaleText
,系统将翻译更新后的sourceLocaleText
并将新的翻译用于合成。 如果您对sourceLocaleText
和translatedText
都进行了更改,系统将忽略对sourceLocaleText
的更改,并使用更新的translatedText
进行合成。translatedText
:此属性包含目标语言中的翻译文本。 它表示将在翻译的视频中合成的文本。 如果您仅对translatedText
进行更改,系统将使用更新的译文进行合成。
步骤 4:创建其他迭代(可选)
可以创建其他迭代以提高翻译质量。 此过程类似于创建第一次迭代。
创建第一次迭代时不需要 webvttFile
参数。 但是,从第二次迭代开始,必须在迭代过程中指定 webvttFile
参数。 需要下载 webvtt 文件,进行必要的编辑,然后将其上传到 Azure Blob 存储。 需要指定 Blob URL。
要开始翻译视频或更新现有翻译的迭代,需要按照以下说明构造 HTTP PUT 请求路径和正文:
- 指定所需的
webvttFile
输入参数。webvttFile
参数从第二次迭代开始是必需的。 需要 下载最新的 Webvtt 文件,进行所需的编辑,然后将其上传到 Azure Blob 存储。 需要指定 Blob URL。 字幕文件可以采用 WebVTT 或 JSON 格式。 - (可选)可以为新迭代指定新设置,例如
speakerCount
,subtitleMaxCharCountPerSegment
和exportSubtitleInVideo
。
若要进行身份验证和授权,需要在请求中包含以下标头和路径 ID:
- 设置
Operation-Id
标头:每个操作(例如创建每次迭代)的Operation-Id
必须是唯一的。 将Your-Operation-Id
替换为此操作的唯一 ID。 - 在路径中替换
Your-Translation-Id
。 使用创建翻译时指定的同一翻译 ID。 翻译 ID 保持不变。 - 在路径中指定新的
iterationId
。 迭代 ID 对于每个操作必须是唯一的。 将Your-Iteration-Id-2
替换为所选的迭代 ID。 - 将
YourSpeechResourceKey
替换为语音资源密钥,将YourSpeechResourceRegion
替换为语音资源区域。
curl -v -X PUT -H "Ocp-Apim-Subscription-Key: YourSpeechResourceKey" \
-H "Operation-Id: Your-Operation-Id" \
-H "Content-Type: application/json" \
-d '{
"input": {
"webvttFile": {
"url": "https://YourBlobStorageUrl/YourWebVTTFile.vtt"
}
}
}' "https://YourSpeechResourceRegion.api.cognitive.microsoft.com/videotranslation/translations/Your-Translation-Id/iterations/Your-Iteration-Id-2?api-version=2024-05-20"
你应该会收到以下格式的响应正文:
{
"input": {
"webvttFile": {
"url": "https://YourBlobStorageUrl/YourWebVTTFile.vtt"
}
},
"status": "NotStarted",
"lastActionDateTime": "2025-03-06T19:15:38.722Z",
"id": "Your-Iteration-Id-2",
"createdDateTime": "2025-03-06T19:15:38.722Z"
}
可以使用您指定的操作 ID,并定期使用 通过操作 ID API 获取操作,直到返回的状态为 Succeeded
或 Failed
。 通过此操作可监视迭代创建过程的进度。 status 属性应从 NotStarted
发展为 Running
,最后变更为 Succeeded
或 Failed
。
按操作 ID 获取操作
按操作的 ID 检查该操作的状态。 操作 ID 对于每个操作都是唯一的,因此可以单独跟踪每个操作。 操作ID的有效期至翻译被删除之前。
- 指定在创建翻译时使用的相同
Operation-Id
。 在本示例中,使用了Your-Operation-Id-1
。 将Your-Operation-Id-1
替换为所选的操作 ID。 - 将
YourSpeechResourceKey
替换为语音资源密钥,将YourSpeechResourceRegion
替换为语音资源区域。
curl -v -X GET -H "Ocp-Apim-Subscription-Key: YourSpeechResourceKey" "https://YourSpeechResourceRegion.api.cognitive.microsoft.com/videotranslation/operations/Your-Operation-Id-1?api-version=2024-05-20"
你应该会收到以下格式的响应正文:
{
"id": "Your-Operation-Id-1",
"status": "Running"
}
按翻译 ID 删除翻译
删除由 translationId
标识的特定翻译。 此操作还会删除与此翻译关联的所有迭代。
将 YourSpeechResourceKey
替换为语音资源密钥,将 YourSpeechResourceRegion
替换为语音资源区域,将 Your-Translation-Id
替换为要删除的翻译 ID。 如果未手动删除,服务会将翻译历史记录保留最多 31 天。
curl -v -X DELETE -H "Ocp-Apim-Subscription-Key: YourSpeechResourceKey" "https://YourSpeechResourceRegion.api.cognitive.microsoft.com/videotranslation/translations/Your-Translation-Id?api-version=2024-05-20"
如果删除请求成功,则响应头包含 HTTP/1.1 204 No Content
。
REST API 操作
可使用以下 REST API 操作进行视频翻译:
操作 | 方法 | REST API 调用 |
---|---|---|
创建翻译 | PUT |
/translations/{translationId} |
列出翻译 | GET |
/translations |
按翻译 ID 获取翻译 | GET |
/translations/{translationId} |
创建迭代 | PUT |
/translations/{translationId}/iterations/{iterationId} |
列出迭代 | GET |
/translations/{translationId}/iterations |
按迭代 ID 获取迭代 | GET |
/translations/{translationId}/iterations/{iterationId} |
按操作 ID 获取操作 | GET |
/operations/{operationId} |
按翻译 ID 删除翻译 | DELETE |
/translations/{translationId} |
有关代码示例,请参阅 GitHub。
本部分提供了之前未详细说明的其他视频翻译 API 调用的示例。
列出翻译
若要列出在资源帐户中上传和处理的所有视频翻译,请发出 HTTP GET 请求,如以下示例所示。 将 YourSpeechResourceKey
替换为语音资源密钥,将 YourSpeechResourceRegion
替换为语音资源区域。
curl -v -X GET -H "Ocp-Apim-Subscription-Key: YourSpeechResourceKey" "https://YourSpeechResourceRegion.api.cognitive.microsoft.com/videotranslation/translations?api-version=2024-05-20"
按翻译 ID 获取翻译
此操作会检索由唯一 translationId
标识的特定翻译的详细信息。 将 YourSpeechResourceKey
替换为语音资源密钥,将 YourSpeechResourceRegion
替换为语音资源区域,将 Your-Translation-Id
替换为要检查的翻译 ID。
curl -v -X GET -H "Ocp-Apim-Subscription-Key: YourSpeechResourceKey" "https://YourSpeechResourceRegion.api.cognitive.microsoft.com/videotranslation/translations/Your-Translation-Id?api-version=2024-05-20"
列出迭代
列出特定翻译的所有迭代。 此请求会列出所有迭代,但不提供详细信息。 将 YourSpeechResourceKey
替换为语音资源密钥,将 YourSpeechResourceRegion
替换为语音资源区域,将 Your-Translation-Id
替换为要检查的翻译 ID。
curl -v -X GET -H "Ocp-Apim-Subscription-Key: YourSpeechResourceKey" "https://YourSpeechResourceRegion.api.cognitive.microsoft.com/videotranslation/translations/Your-Translation-Id/iterations?api-version=2024-05-20"
HTTP 状态代码
本部分详细介绍来自视频翻译 REST API 的 HTTP 响应代码和消息。
HTTP 200 正常
"HTTP 200 OK" 表示请求成功。
HTTP 204 错误
“HTTP 204 错误" 指示请求成功,但资源不存在。 例如:
- 你尝试获取或删除不存在的翻译。
- 你已成功删除翻译。
HTTP 400 错误
下面是可能导致 400 错误的示例:
- 指定的源或目标区域设置不在支持的区域设置中。
- 你尝试使用 F0 语音资源,但该区域仅支持(标准)语音资源定价层。
HTTP 500 错误
"HTTP 500 内部服务器错误" 指示请求失败。 响应正文包含错误消息。