You need to enable JavaScript to run this app.
视频点播

视频点播

复制全文
AI 视频翻译(声影智译)
通过 API 接入 AI 视频翻译
复制全文
通过 API 接入 AI 视频翻译

本文面向开发者,详细介绍如何通过 API 调用 AI 视频翻译(声影智译)能力,将国际化视频的自动化生产流程无缝集成到您的业务系统中。您将了解到 API 的核心调用流程、参数配置,并通过丰富的代码示例快速上手。

说明

在开始之前,建议您先阅读 AI 视频翻译快速开始,了解其核心功能、应用场景和计费规则,并通过控制台操作体验 AI 视频翻译的实际效果。

前提条件

实现流程概览

视频点播提供以下两种工作流,以满足不同场景下的视频翻译需求:

  • 场景一:先一次性生成再局部微调
    此流程下,您可以先获得一个完整的翻译视频,查看翻译效果,然后调用特定接口修改字幕、重生成单句音频或更换音色,最后重新导出视频。
    Image
  • 场景二:分阶段处理
    此流程下,您可以在任务执行到特定阶段(如识别源语言字幕后或翻译字幕后)自动暂停,进行字幕校对和调整,然后再恢复任务以完成后续的语音合成和视频生成。
    Image

场景 1:先一次性生成再局部微调

步骤 1:创建 AI 翻译任务

调用 SubmitAITranslationWorkflow 接口创建 AI 翻译任务。在此场景下,不要设置 ProcessConfig.SuspensionStageList 参数,让任务一次性执行到底。请求示例如下:

POST https://vod.volcengineapi.com?Action=SubmitAITranslationWorkflow&Version=2025-01-01
{
  "SpaceName": "test_space",
  "Vid": "v0cctrans***onvideoid",
  "TranslationConfig": {
    "SourceLanguage": "zh",
    "TargetLanguage": "en",
    "TranslationTypeList": ["SubtitleTranslation","VoiceTranslation"]
  }
}

任务完成后,您可以通过以下两种方式获取 AI 翻译任务的产物信息:

  • 主动查询:调用 ListAITranslationProject 接口,传入项目 ID,查询任务的详细信息和处理结果。
  • 事件通知:通过配置 AITranslationComplete 事件,在任务完成后接收系统发送的事件通知,从中获取任务产物的相关信息。

步骤 2:按需修改翻译内容

调用 UpdateAITranslationUtterances 接口更新字幕。您可以根据修改规模选择任一方式:

  • 通过文件更新:上传校对后的源语言、目标语言或双语的字幕文件(SRT/WebVTT)。在字幕文件中,您可以使用特殊标记实现静音或使用原声等操作,详细说明和示例,请见字幕文件中的特殊标记说明。请求示例:

    POST https://vod.volcengineapi.com?Action=UpdateAITranslationUtterances&Version=2025-01-01
    {
      "SpaceName": "test_space",
      "UpdateType": "OutputSubtitleFile",
      "ProjectId": "684038d6b71***05b266fefe",
      "OutputSubtitleFileName": "your_target_subtitle_file.vtt"
    }
    
  • 通过句段 ID 更新:将 UpdateType 设置为 Utterances,并传入一个或多个包含句段 ID、新文本和说话人 ID 的字幕对象,精确修改特定句段。请求示例:

    POST https://vod.volcengineapi.com?Action=UpdateAITranslationUtterances&Version=2025-01-01
    {
      "SpaceName": "test_space",
      "UpdateType": "Utterances",
      "ProjectId": "684038d6b71***05b266fefe",
      "Utterances": [
        {
          "Id": "68403b6***364cc4835c8141",
          "Text": "Welcome to this video. Today we will introduce how to use the VOD service.",
          "SpeakerId": "68403b6***364cc4835c80f4"
        }
      ]
    }
    

说明

如需通过以上方式替换音色,请参考自定义说话人音色

步骤 3:重新导出最终视频

完成所有修改后,调用 RefreshAITranslationProject 接口。系统会应用您所有的变更(包括修改的文本、新生成的单句音频等),重新导出一个全新的翻译视频。

场景 2:分阶段处理

步骤 1:创建 AI 翻译任务并指定暂停阶段

调用 SubmitAITranslationWorkflow 接口创建 AI 翻译任务,并通过 ProcessConfig.SuspensionStageList 参数指定在特定阶段暂停。

  • 在字幕识别后暂停(取值为 SubtitleRecognition):任务将在生成源语言字幕后暂停。
  • 在字幕翻译后暂停(取值为 SubtitleTranslation):任务将在生成目标语言字幕后暂停。
// 请求示例:在字幕翻译后暂停任务
POST https://vod.volcengineapi.com?Action=SubmitAITranslationWorkflow&Version=2025-01-01
{
  // ... 其他参数 ...
  "ProcessConfig": {
      "SuspensionStageList": ["SubtitleTranslation"]
  }
}

步骤 2:获取字幕信息并按需修改

  1. 获取待校对的字幕:调用 GetAITranslationProject 接口获取项目详情。

    • 若在 SubtitleRecognition 阶段暂停,您可获取到 SourceUtterances(源语言字幕句段信息)和 InputSubtitle(源语言字幕文件)。
    • 若在 SubtitleTranslation 阶段暂停,您可获取到 SourceUtterances(源语言字幕句段信息)、InputSubtitle(源语言字幕文件)、TargetUtterances(目标语言字幕句段信息)和 OutputSubtitle(目标语言字幕文件)。
  2. 更新字幕内容:调用 UpdateAITranslationUtterances 接口提交您的修改。您可以根据修改范围,选择任一方式:

    • 通过文件更新:上传校对后的源语言、目标语言或双语的字幕文件(SRT/WebVTT)。在字幕文件中,您可以使用特殊标记实现静音或使用原声等操作,详细说明和示例,请见字幕文件中的特殊标记说明。请求示例:

      POST https://vod.volcengineapi.com?Action=UpdateAITranslationUtterances&Version=2025-01-01
      {
        "SpaceName": "test_space",
        "UpdateType": "OutputSubtitleFile",
        "ProjectId": "684038d6b71***05b266fefe",
        "OutputSubtitleFileName": "your_target_subtitle_file.vtt"
      }
      
    • 通过句段 ID 更新:将 UpdateType 设置为 Utterances,并传入一个或多个包含句段 ID、新文本和说话人 ID 的字幕对象,精确修改特定句段。请求示例:

      POST https://vod.volcengineapi.com?Action=UpdateAITranslationUtterances&Version=2025-01-01
      {
        "SpaceName": "test_space",
        "UpdateType": "Utterances",
        "ProjectId": "684038d6b71***05b266fefe",
        "Utterances": [
          {
            "Id": "68403b6***364cc4835c8141",
            "Text": "Welcome to this video. Today we will introduce how to use the VOD service.",
            "SpeakerId": "68403b6***364cc4835c80f4"
          }
        ]
      }
      

    说明

    如需通过以上方式替换音色,请参考自定义说话人音色

步骤 3:恢复 AI 翻译任务

完成字幕内容的更新和校对后,调用 ContinueAITranslationWorkflow 接口恢复任务,继续执行后续流程。

步骤 4:获取最终产物

任务完成后,您可以通过以下两种方式获取 AI 翻译任务的产物信息:

  • 主动查询:调用 ListAITranslationProject 接口,传入项目 ID,查询任务的详细信息和处理结果。
  • 事件通知
    1. 参考事件通知概述文档,配置一个用于接收回调的服务地址。在订阅事件时,勾选 AI 翻译任务执行完成事件
    2. 当任务完成时,您的服务将收到一个 EventTypeAITranslationComplete 的 HTTP POST 请求。可从回调结果中 OutputTaskHighlight 获取高光分析结果。

说明

最终输出的字幕文件中将包含双语字幕。源语言和目标语言字幕文件中的 <v> 标签信息会被移除。

进阶使用

自定义说话人音色

如果您对某个说话人的音色不满意,需要更换,可按以下流程操作:

  1. 上传参考音频文件:将用于音色复刻的参考音频文件上传至 AI 翻译任务所在的点播空间,然后获取该音频文件的 FileName
  2. 创建新音色:调用 CreateAITranslationSpeech 接口,传入您在上一步获取的 FileName,将音频文件转化为一个可用的音色。
  3. 创建新说话人:调用 CreateAITranslationSpeaker 接口,将上一步创建的音色与当前项目绑定,创建一个新的说话人并记录新说话人 SpeakerIdName
  4. 分配新说话人
    • 方式一(通过句段 ID 更新):调用 UpdateAITranslationUtterances 接口,将 UpdateType 设置为 Utterances。在 Utterances 数组中,将需要更换音色的句段的 SpeakerId 更新为您在上一步中获取的 SpeakerId
    • 方式二(通过字幕文件更新)
      1. 在您的字幕文件中,在所有需要更换音色的字幕文本行最前方,添加 <v SpeakerName> 标记。这里的 SpeakerName 就是您在上一步中获取的新说话人的 Name
      2. 调用 UpdateAITranslationUtterances 接口,通过文件更新的方式上传此文件。

自定义术语库

如果您需要在翻译过程中应用您自定义的术语表,以确保特定词汇(如品牌名、产品名、专有名词等)的翻译准确性和一致性,可按以下流程操作:

  1. 创建术语库:调用 CreateAITermbase 接口,在点播空间里创建新的术语库,获取术语库 TermbaseId
  2. 添加术语:调用 SetAITermItem 接口,传入您在上一步获取的术语库 TermbaseId,向术语库添加若干术语条目。
  3. 将术语库添加至 AI 翻译任务:调用 SubmitAITranslationWorkflow 接口,在请求参数 TranslationTermbaseIds 中传入一个或多个要应用的术语库 ID。系统将按照您指定的术语进行翻译干预。

参考信息

字幕文件中的特殊标记说明

您可以在字幕文件中使用以下特殊标记来增强控制能力。

  • <v {speaker}>:为该句字幕指定一个说话人。可指定 Speaker 名称为一个不为空的字符串。需放置在字幕文本行的最前方。如不指定,系统会通过 ASR 自动识别并匹配说话人。
  • <a {action}>:对该句字幕的音频执行特殊操作。需放置在字幕文本行的最前方,可与 <v> 标签同时使用。支持以下 action
    * MuteSpeech:静音。该句字幕将没有语音,实现静音效果。
    * UseOriginal:使用原声。该句字幕将直接使用原视频对应时间段的音频,不进行翻译和语音合成。

字幕文件示例:

  • SRT 双语字幕文件:

    1
    00:00:10,198 --> 00:00:11,118
    你干什么
    <v Speaker1><a MuteSpeech>What have you done?
    
    2
    00:00:17,039 --> 00:00:19,018
    我打台球比赛
    <v Speaker2>I was playing in a pool tournament.
    
  • WebVTT 目标语言字幕文件:

    00:00:00.160 --> 00:00:01.160
    <v Speaker1>Oh
    
    00:00:01.160 --> 00:00:02.660
    <v Speaker2><a UseOriginal>Stop messing around, Your Highness
    
最近更新时间:2025.12.08 11:22:47
这个页面对您有帮助吗?
有用
有用
无用
无用