首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >利用腾讯云API(Python)对字幕文件进行翻译

利用腾讯云API(Python)对字幕文件进行翻译

原创
作者头像
Duckweeds7
修改于 2021-08-19 02:20:33
修改于 2021-08-19 02:20:33
2.8K0
举报
文章被收录于专栏:Duckweeds7的专栏Duckweeds7的专栏

原文地址:利用腾讯云API(Python)对字幕文件进行翻译

引言

本篇文章使用腾讯云的机器翻译来对英语字幕文件进行翻译,接口的需要的SecretId和SecretKey请自行上腾讯云https://console.cloud.tencent.com/cam/capi获取,运行环境为Python3.8,如使用Python2,请注意注释内容,并进行相对于的修改,程序还需要用到腾讯云的Python SDK

代码语言:txt
AI代码解释
复制
pip install tencentcloud-sdk-python

翻译前示例文件

代码语言:txt
AI代码解释
复制
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:161632

1
00:00:01.070 --> 00:00:02.970
<v Don>Greetings ladies and gentlemen, this is Don Murdoch</v>

2
00:00:02.970 --> 00:00:05.070
and I'm going to be doing a talk this afternoon here

3
00:00:05.070 --> 00:00:07.960
at the RSA conference on adversary simulation.

4
00:00:07.960 --> 00:00:10.170
We're going to go through this process

5
00:00:10.170 --> 00:00:11.645
and what we want to be able to do

6
00:00:11.645 --> 00:00:13.100
throughout this presentation has help you close the gaps

7
00:00:13.100 --> 00:00:15.070
in your security posture.

8
00:00:15.070 --> 00:00:17.480
So, by way of introduction, I've been in IT

9
00:00:17.480 --> 00:00:20.260
for well over 25 years, about 17 years

10
00:00:20.260 --> 00:00:21.860
in information security.
......

翻译后示例文件

代码语言:txt
AI代码解释
复制
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:161632

1
00:00:01.070 --> 00:00:02.970
<v Don>女士们先生们,大家好,我是Don Murdoch</v>

2
00:00:02.970 --> 00:00:05.070
今天下午我要在这里做一个演讲

3
00:00:05.070 --> 00:00:07.960
在RSA关于对手模拟的会议上。

4
00:00:07.960 --> 00:00:10.170
我们要经历这个过程

5
00:00:10.170 --> 00:00:11.645
我们想要做的是

6
00:00:11.645 --> 00:00:13.100
整个演示文稿帮助您缩小差距

7
00:00:13.100 --> 00:00:15.070
以你的安全姿态。

8
00:00:15.070 --> 00:00:17.480
所以,顺便介绍一下,我在IT行业

9
00:00:17.480 --> 00:00:20.260
已经超过25年了,大约17年

10
00:00:20.260 --> 00:00:21.860
在信息安全方面。

代码

代码语言:txt
AI代码解释
复制
# coding:utf-8
'''
@author: Duckweeds7  20210527
@todo: 腾讯云API翻译字幕文件
'''
import json
from time import sleep
from tencentcloud.common import credential
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.tmt.v20180321 import tmt_client, models


class TencentTranslate():
    
    '''
    翻译接口,输入为待翻译句子的列表
    '''
    def translate(self, t):
        try:
            cred = credential.Credential("your SecretId", "your SecretKey")
            httpProfile = HttpProfile()
            httpProfile.endpoint = "tmt.tencentcloudapi.com"

            clientProfile = ClientProfile()
            clientProfile.httpProfile = httpProfile
            client = tmt_client.TmtClient(cred, "ap-guangzhou", clientProfile)

            req = models.TextTranslateBatchRequest()
            params = {
                "Source": "auto",
                "Target": "zh",
                "ProjectId": 0,
                "SourceTextList": t
            }
            req.from_json_string(json.dumps(params))

            resp = client.TextTranslateBatch(req)
            return json.loads(resp.to_json_string())

        except TencentCloudSDKException as err:
            print(err)

    '''
    程序主入口
    '''
    def main(self, path):
        content = open(path, 'r', encoding='utf-8').readlines()  # 将待翻译字幕文件按行读取成列表 
        # python2 content = open(path, 'r').readlines()
        head, context = content[:5], content[5:]  # 切割头部不需要翻译的内容和正文 根据自己需求修改头部行数
        new_context = context[:]  # 复制一份准备用来替换翻译内容的正文部分
        
        wait_for_translate = []  # 声明一个放置待翻译文本的列表
        for c in range(0, len(context), 4): # 将每行的内容加入待翻译列表中,并去掉换行符,4是间隔
            wait_for_translate.append(context[c].replace('\n', ''))
        wail_list = [] 
        wail_tmp = []
        for l in range(len(wait_for_translate)): # 这一块是将总的文本切分成多个40行的文本,这是因为腾讯云的批量文本翻译接口有限制,不能超出2000个字符,这一块也是根据你的字幕文件来决定的,句子如果较长的话,就把这个数调低点,句子较短,就把这个数调高。
            wail_tmp.append(wait_for_translate[l])
            if len(wail_tmp) == 40 or l == len(wait_for_translate) - 1: 
                wail_list.append(wail_tmp)
                wail_tmp = []
        translater = []

        for w in range(len(wail_list)): # 批量进行翻译
            translater.extend(self.translate(wail_list[w])['TargetTextList'])
            sleep(0.21) # 休眠是因为腾讯云接口调用时间限制
        count = 0
        for c in range(0, len(context), 4):
            new_context[c] = translater[count] + '\n' # 替换翻译内容并补上换行符
            count += 1
            if count == len(translater):
                break
        name = path.replace('en', 'zh') # 
        with open(name, 'w', encoding='utf-8') as f:
            f.writelines(head + new_context)
        return name


if __name__ == '__main__':
    TencentTranslate().main('xxx_en.vtt')
    # test()

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
用python写一个翻译软件
https://console.cloud.tencent.com/api/explorer?Product=tmt&Version=2018-03-21&Action=TextTranslateBatch
mariolu
2024/03/26
4330
【玩转腾讯云】【腾讯云机器翻译TMT】机器翻译入门
通过https://cloud.tencent.com/register注册腾讯云账号
LinSP
2020/05/02
10.3K2
【腾讯云AI绘画】与AI绘画和解,和AI绘画共成长
六月份的时候,买了腾讯AI绘画的资源包。可当通过API去使用AI绘画后,我顿时就被整破防了,于是写了一篇文章,算是无声控诉。被腾讯云AI绘画整破防了!
叫我阿柒啊
2023/12/12
9163
【腾讯云AI绘画】与AI绘画和解,和AI绘画共成长
DBbrain 慢日志查询api 接口怎么调用,示例来了
DBbrain 提供了慢日志top sql 的模板查询功能,并且可以用api 调用接口获得top 慢日志。
邵聪 SHAO CONG
2020/03/10
9980
DBbrain 慢日志查询api 接口怎么调用,示例来了
5 分钟实现企业微信的机器人定时提醒
本案例中用企业微信,添加机器人的方式,来达到消息推送的目的。例子中还读取了腾讯云账号的账户余额,并通过调用机器人Webhook url (http post 请求),实现定时提醒。
吴云涛
2021/11/02
8K0
5 分钟实现企业微信的机器人定时提醒
从零开始使用腾讯云Java SDK
腾讯云开发者工具套件(SDK)是云 API 3.0 平台的配套工具。本文以 Java SDK 为例,介绍如何使用、调试并接入腾讯云产品 API。
zhijiehou
2021/06/25
13.1K2
【腾讯云AI绘画】用PHP搭建一个绘画API
大家好!今天我要给大家推荐的是如何用PHP搭建一个绘画API,让你的网站或应用瞬间拥有强大的绘画能力!无论你是想要让用户在网页上绘制自己的创意,还是想要实现自动绘画生成特效,这个API都能满足你的需求!让我们一起来看看吧!
快乐的小白
2023/12/20
7930
【腾讯云AI绘画】用PHP搭建一个绘画API
利用Python调用云Api实现多地域同步运行TAT命令
请注意 为了保障您的账户以及云上资产的安全 请谨慎保管SecretId 与 SecretKey 并定期更新 删除无用权限
小宇-xiaoyu
2022/08/20
1K0
混元大模型,API免费发放,又一个王炸级更新!
混元大模型(英文名:HunYuan)是由腾讯开发的大型语言模型,它可以进行丰富的语义理解和计算,为用户提供问答式的服务。基于大量的训练数据和先进的深度学习技术,混元大模型能够处理各种类型的问题和任务,涵盖知识问答、建议、解决问题等多个方面。
不惑
2024/05/08
1.9K0
混元大模型,API免费发放,又一个王炸级更新!
【粤康码】腾讯云AI人工智能OCR-100ms快速识别防疫健康码!
近期收到很多伙伴对于腾讯云AI-粤康码系统识别诉求,要求快速集成OA系统,ERP系统,如何将粤康码上传图像,进行快速识别,电子流自动审批呢?,以下API接口,给予大家帮助,不多说2分钟快速集成:(基于PthonSDK版)
TCS-F
2022/03/22
6K1
【粤康码】腾讯云AI人工智能OCR-100ms快速识别防疫健康码!
利用Python调用云Api实现多地域同步创建TAT命令
请注意 为了保障您的账户以及云上资产的安全 请谨慎保管SecretId 与 SecretKey 并定期更新 删除无用权限
小宇-xiaoyu
2022/03/23
2.6K2
实现日常下载云数据库备份文件到本地保存的最佳实践
“在腾讯云团队协助下,经过7x24小时的努力,微盟数据已经全面找回,并且公布商家赔偿计划。”--刷爆朋友圈的信息
邵聪 SHAO CONG
2020/03/03
4.8K1
实现日常下载云数据库备份文件到本地保存的最佳实践
腾讯云API弹性公网IP踩坑
由于自己管理的云服务器数量比较多,时不时需要更换IP,在管理台上一下下点击,实在浪费时间,于是就想到了通过API调用的方式,将更换IP一系列动作,全部集成到Python代码里面,实现一行命令,完成IP更换,由于人懒,就先
用户2174879
2018/10/23
32.6K1
腾讯云API弹性公网IP踩坑
腾讯ai人工智能OCR文字识别2020.12.18
2、快速入门https://cloud.tencent.com/document/product/866/17622
用户7138673
2022/09/22
3.3K0
腾讯ai人工智能OCR文字识别2020.12.18
AI与云计算融合:腾讯云AI的最佳实践分享
随着人工智能(AI)技术的飞速发展,其与云计算的深度融合已成为推动各行业数字化转型的重要力量。腾讯云作为国内领先的云计算服务提供商,在AI领域不断创新,为用户提供了强大的AI能力和服务。本文将深入探讨AI与云计算的融合,分享腾讯云AI的最佳实践,并提供详细的代码实例,帮助读者更好地理解和应用这一技术。
江南清风起
2025/04/05
3710
【腾讯云AI绘画】 老师,我想学绘画
AI 绘画(AI Art)是一款 AI 图像生成与编辑技术 API 服务,可以结合输入的图片或文本智能创作出与输入相关的图像内容,具有更强大的中文理解能力、更多样化的风格选择,以及更偏东方审美的绘画创作能力,更好支持中文场景下的建筑风景生成、古诗词理解、水墨剪纸等中国元素风格生成,以及各种动漫、游戏风格的高精度图像生成和风格转换,为高质量的内容创作、内容运营提供技术支持。
不惑
2023/12/06
7821
【腾讯云AI绘画】 老师,我想学绘画
利用python脚本自动更新腾讯云安全组防火墙白名单
经常在家里,公司等地方远程管理腾讯云的vps,本来想讲固定IP添加到防火墙白名单。可是家里的IP经常变化,于是写了个脚本。调用腾讯云的api更新防火墙白名单IP地址。
IT不难
2022/05/11
1.2K0
利用python脚本自动更新腾讯云安全组防火墙白名单
利用Python调用云Api批量申请免费证书并下载至本地
# 本文已被官方文档收录https://cloud.tencent.com/document/product/400/71710
小宇-xiaoyu
2022/01/29
3.7K3
腾讯云一句话识别接口调用
使用主账号登录语音识别控制台(https://console.cloud.tencent.com/asr),开通语音识别服务。
向东平
2025/05/09
2740
利用Python调用云Api实现批量绑定轻量应用服务器密钥
请注意 为了保障您的账户以及云上资产的安全 请谨慎保管SecretId 与 SecretKey 并定期更新 删除无用权限
小宇-xiaoyu
2022/03/04
1.5K1
推荐阅读
相关推荐
用python写一个翻译软件
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档