文档中心>媒体处理>实践教程>字幕生成及翻译

字幕生成及翻译

最近更新时间:2024-08-27 11:47:31

我的收藏

场景一:离线文件处理

一、零代码自动生成

1. 登录媒体处理控制台,单击 创建任务 > 快速创建点播处理任务

1.1 指定输入文件
您可以选择腾讯云 COS 存储桶中的视频文件,或提供视频下载 URL。当前字幕生成及翻译功能暂不支持以 AWS S3 为输入文件来源。
1.2 处理输入文件
选择创建编排,语音识别和语音翻译能力可以通过插入“智能识别”编排节点来实现。单击

根据业务实际场景选择系统预设模板,或创建自定义模板。



系统预设模板及能力如下表所示:
模板ID
模板能力
10101
识别源视频中的中文语音,并生成中文字幕文件(vtt 格式)
10102
识别源视频中的英文语音,并生成英文字幕文件(vtt 格式)
10103
识别源视频中的中文语音,并翻译成英文,生成中英双语字幕文件。
10104
识别源视频中的英文语音,并翻译成中文,生成英中双语字幕文件。
10105
识别源视频中的日语语音,生成日文字幕文件。
10106
识别源视频中的韩语语音,生成韩文字幕文件。
说明:
如需其他参数配置,您可以 创建自定义智能识别模板,或 提交工单 让后台配置。
1.3 指定输出路径
从云存储中选择指定输出文件的保存路径。
1.4 发起任务
单击创建,发起任务。
2. 任务处理完后,自动生成的 VTT 字幕文件可以在编排管理 > COS Bucket > 输出 Bucket 中找到。



中文字幕样例:



中英字幕样例:




二、API 接口调用

1. 输入+ 编排 ID 发起任务,查看接口信息
示例:
{
    "InputInfo": {
        "Type": "COS",
        "CosInputInfo": {
            "Bucket": "facedetectioncos-1251132611",
            "Region": "ap-guangzhou",
            "Object": "/video/123.mp4"
        }
    },
    "ScheduleId": 20073,
    "Action": "ProcessMedia",
    "Version": "2019-06-12"
}
2. 如果有设置回调地址,回包参考文档:解析事件通知

三、压制到视频(可选)

需要 发起转码任务 并通过 SubtitleTemplate 字段指定 步骤一或者步骤二生成的字幕 vtt 文件,详细参考 数据结构说明
示例:
{
    "MediaProcessTask": {
        "TranscodeTaskSet": [
            {
                "Definition": 206390,
                "OverrideParameter": {
                    "Container": "mp4",
                    "RemoveVideo": 0,
                    "RemoveAudio": 0,
                    "VideoTemplate": {
                        "Codec": "libx264",
                        "Fps": 30,
                        "Bitrate": 2346,
                        "ResolutionAdaptive": "close",
                        "Width": 1920,
                        "Height": 0,
                        "Gop": 0,
                        "FillType": "black"
                    },
                    "AudioTemplate": {
                        "Codec": "libmp3lame",
                        "Bitrate": 0,
                        "SampleRate": 32000,
                        "AudioChannel": 2
                    },
                    "SubtitleTemplate": {
                        "Path": "https://lily-1256342427.cos.ap-nanjing.myqcloud.com/mps_autotest/subtitle/1.vtt",
                        "StreamIndex": 2,
                        "FontType": "simkai.ttf",
                        "FontSize": "10px",
                        "FontColor": "0xFFFFFF",
                        "FontAlpha": 0.9
                    }
                }
            }
        ]
    },
    "InputInfo": {
        "Type": "URL",
        "UrlInputInfo": {
            "Url": "https://lily-1256342427.cos.ap-nanjing.myqcloud.com/mps_autotest/subtitle/123.mkv"
        }
    },
    "OutputStorage": {
        "Type": "COS",
        "CosOutputStorage": {
            "Bucket": "lily-1256342427",
            "Region": "ap-nanjing"
        }
    },
    "OutputDir": "/mps_autotest/output2/",
    "Action": "ProcessMedia",
    "Version": "2019-06-12"
}

场景二:直播流

在直播流中使用字幕及翻译目前有两种方案:云直播控制台开启字幕功能、通过 MPS 回调文本并压制到直播流,建议使用云直播控制台开启字幕功能,方案介绍如下:

方案一 直播控制台开启字幕功能

1. 配置直播字幕功能
1.1 开通 云直播媒体处理
2. 拉字幕流
拉取转码流(在对应的直播流 StreamName 后加上绑定了字幕模板的转码名称_转码模板名称生成转码流地址)时会输出字幕效果,拉流地址拼接规则详见拼装播放 URL
说明:
目前字幕展示有两种形式:实时动态字幕和延时稳态字幕。实时动态字幕指实时直播中的字幕会根据语音内容逐字动态矫正字幕内容,输出的字幕内容会实时变动;延时稳态字幕指系统会按设定的时间延时展示直播,输出的是整句字幕,观看体验更佳。

方案二 通过 MPS 回调文本

1. API 发起任务:使用字幕预设模板发起识别任务,参考文档 对直播流发起处理
示例:
{
    "Url": "http://5000-wenzhen.liveplay.myqcloud.com/live/123.flv",
    "AiRecognitionTask": {
        "Definition": 10101
    },
    "OutputStorage": {
        "CosOutputStorage": {
            "Bucket": "6c0f30dfvodgzp251000800-10022853",
            "Region": "ap-guangzhou-2"
        },
        "Type": "COS"
    },
    "OutputDir": "/6c0f30dfvodgzp251000800/0d1409d34565514956657373652/",
    "TaskNotifyConfig": {
        "NotifyType": "URL",
        "NotifyUrl": "http://xxxx.qq.com/callback/qtatest/?token=xxxxxx"
    },
    "Action": "ProcessLiveStream",
    "Version": "2019-06-12"
}
2. 实时回调包体请参考文档:解析直播流处理结果