免费将中文视频转换为英文视频并添加中英双语字幕
免费将中文视频转换为英文视频并添加中英双语字幕
背景
女朋友需要找关于《不要随意喂养动物园的动物》的英语视频,因为限定是英语类的视频,所以在国内的视频平台基本无法找到。虽然我是个程序员,但在女友的眼里,只要关于电脑的我都会,无奈只能硬着头皮上……
我第一个想法是到外网的油管上用英文去找相关的视频,但找了好几天都没有找到相关的视频,又或者找到了也不符合她的想法。因此把目光转回国内的视频平台,并最终物色到一个符合她想法的中文视频。而我要做的就是把这个中文视频转化为英文视频并添加中英双语字幕。
思路
- 首先把中文视频中的音频提取出来并识别出中文并手动调整中文中的错别字等
- 把中文翻译成英文(使用百度翻译或有道云翻译)
- 把翻译出来的英文合成为英文音频
- 制作中英双语字幕,并把视频中的原中文音频替换为英文音频
- 导出英文视频
技术
Python3
百度智能云中的语音识别中的音频文件转写功能(通过音频提取出中文)
有道智云平台的语音合成中的语音合成功能(通过单词句子合成为英语音频,百度接口的语音合成只能合成中文音频)
迅捷视频软件(添加字幕软件,有水印版免费)
格式工厂(视频压缩、转换等功能)
*Adobe Premiere(提取视频中的音频,非必需,可以使用格式工厂来处理,且是收费的)
实现
第一步,将视频中的音频提取。可以用格式工厂把视频转为音频(如果你有Pr的话也可以用Pr来提取音频)
第二步,识别出音频中的中文。这里使用到了百度智能云中的音频文件转写功能。所以首先需要先注册个账号并完成个人认证,百度智能云链接如下:https://cloud.baidu.com/
注意:使用该功能可以通过领取免费资源来获得免费时长,领取的资源有时效和总时长限制,通过https://console.bce.baidu.com/ai/#/ai/speech/overview/index此链接获取:
注册并登录后打开音频文件转写链接:https://cloud.baidu.com/doc/SPEECH/s/Bk5difx04
通过概述的三个接入步骤可以知道主要为:
创建具有音频转写功能的应用→通过该应用的AppID、API Key、Secret Key来获取token→通过token和音频链接创建音频转写任务→查询转写任务的识别结果。
代码如下:- 获取token
import requests import jsonAPI_key = "你创建应用的API Key" secret_key = "你创建应用的Secret Key" access_token_url = f"https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={API_key}&client_secret={secret_key}" response = requests.get(access_token_url) print(response.json()) access_token = response.json()["access_token"] # access_token即为我们需要的token
创建音频转写任务(音频可使用百度云对象存储进行音频存储)
post_url = "https://aip.baidubce.com/rpc/2.0/aasr/v1/create" file_url = "你的音频文件的url" body = {"speech_url": file_url, # 音频url"format": "mp3", # 音频格式"pid": 1537, # 中文"rate": 16000, # 采样率 [16000] 固定值 } token = {"access_token": access_token} # 上一步获得的token# 生成转写任务 rep = requests.post(post_url, params=token, data=json.dumps(body)) print(rep.json()) task_id = rep.json()["task_id"] # 获得我们需要的task_id
查询转写任务结果
query_url = "https://aip.baidubce.com/rpc/2.0/aasr/v1/query" query_body = {"task_ids": [task_id] } # 查询转写任务是否完成 rep = requests.post(query_url, params=token, data=json.dumps(query_body)) print(json.dumps(rep.json())) word = rep.json()["tasks_info"]["task_result"]["result"] # 成功了的话此变量即为我们需要的所有文字
第三步,使用百度翻译或有道云翻译翻译出英文
第四步,根据英文合成英文语音。这里用到有道智云AI开放平台。类似百度智能云平台,这里也需要注册,链接如下:https://ai.youdao.com。首次注册会赠送一些资源的时长,包括语音合成的。
注册并登录后,找到语音合成功能的页面:https://ai.youdao.com/product-tts.s
类似百度平台一样,创建应用并勾选语音合成:
找到技术文档:产品文档-语音合成TTS服务
把Python3的示例拷下来并修改对应的内容:执行语音合成:
import sys import uuid import requests import hashlib import timeYOUDAO_URL = 'https://openapi.youdao.com/ttsapi' APP_KEY = '你的的应用ID' APP_SECRET = '你的应用密钥'def encrypt(signStr):hash_algorithm = hashlib.md5()hash_algorithm.update(signStr.encode('utf-8'))return hash_algorithm.hexdigest()def truncate(q):if q is None:return Nonesize = len(q)return q if size <= 20 else q[0:10] + str(size) + q[size - 10:size]def do_request(data):headers = {'Content-Type': 'application/x-www-form-urlencoded'}return requests.post(YOUDAO_URL, data=data, headers=headers)def connect():q = "你要合成的英文."name = "保存的文件名" # 文件名data = {}data['langType'] = 'en' # 要合成的语言类型salt = str(uuid.uuid1())signStr = APP_KEY + q + salt + APP_SECRETsign = encrypt(signStr)data['appKey'] = APP_KEYdata['q'] = qdata['salt'] = saltdata['sign'] = signdata['speed'] = 1response = do_request(data)contentType = response.headers['Content-Type']if contentType == "audio/mp3":print("成功")millis = int(round(time.time() * 1000))filePath = name + str(millis) + ".mp3"fo = open(filePath, 'wb')fo.write(response.content)fo.close()else:print("类型错误", response.content)if __name__ == '__main__':connect()
执行完成后将生成mp3文件
第五步,打开迅捷视频软件,官网:https://www.xunjieshipin.com/video-clip
添加字幕操作可百度,这里就不展开了,参考:https://jingyan.baidu.com/article/e75057f2a3918faac91a89cf.html最后导出视频即可。
免费将中文视频转换为英文视频并添加中英双语字幕相关推荐
- 英文视频添加中英双语字幕(基于Whisper语音识别和Google翻译)
第一步:安装配置环境,这一步重要介绍安装的环境依赖,可以看完第二章再来看一遍 (1)Whisper环境配置 可以参考以下博客的内容讲显卡驱动,CUDA和cudnn的安装比较详细,我建议能用GPU加速就 ...
- 中英文视频识别字幕并对其添加字幕--自用可白嫖--中/英/中英双语字幕
中英文视频识别字幕并对其添加字幕–自用可白嫖–中/英/中英双语字幕 文章目录 中英文视频识别字幕并对其添加字幕--自用可白嫖--中/英/中英双语字幕 01 平台介绍 1.1 网易见外工作台 1.2 A ...
- React Conf 2018 专题 —— React Today and Tomorrow Part I 视频中英双语字幕
最近在 掘金翻译计划 校对了一篇 Dan Abramov 的关于 React Hooks 的文章,在 Sophie Alpert 和 Dan 在 React Conf 2018 上对 Hooks 的提 ...
- React Conf 2018 专题 —— React Today and Tomorrow Part II 视频中英双语字幕
距离 React Conf 2018 结束已经将近一个月了,距离上个 React Conf 2018 的中英文双语视频发布也有两周的时间了,这两周,一直在进行Dan Abramov 的关于 React ...
- 用Aegisub将中文字幕和英文字幕合并导出中英双语字幕
其中一个用Aegisub打开,这里打开英文字幕示例 任选一行,插入空白行方便之后插入中文字幕 打开中文字幕,全选复制粘贴后到之前在Aegisub的插入空白的行. 成功自动更改为以/N为转折符号的双语字 ...
- Tern – 字幕组机翻小助手:自动翻译英文字幕为中英双语字幕[Win/macOS]
简介: Tern 是一款字幕文件翻译工具,它能利用 9 大主流机器翻译服务商(Google.微软.亚马逊等)对 .ass..srt..vtt 字幕文件进行翻译,可以减轻字幕组同学的工作量,也为那些对翻 ...
- n行Python代码系列:两行代码实现彩色视频转换为灰度视频
☞ ░ 老猿Python博文目录 ░ 一.引言 最近看到好几篇类似"n行Python代码-"的博文,看起来还挺不错,简洁.实用,传播了知识.带来了阅读量,撩动了老猿的心,决定跟风一 ...
- Aiseesoft Mac Video Converter Ultimate使用教程:如何将DVD/视频转换为其他视频格式?
Aiseesoft Mac Video Converter Ultimate mac版是一款很不错的视频转换软件,它可以轻松帮助用户在Mac和便携式设备上欣赏任何DVD和视频文件.凭借其强大的转换功能 ...
- 将List集合内中文字符转换为英文字符
将List集合内中文字符转换为英文字符 list.forEach(o->{o.setContent(o.getContent().replace("(","(&qu ...
最新文章
- 搭建DVWA漏洞环境
- 复制的maven项目中,子maven找不到父maven问题解决
- Reducing the Dimensionality of Data with Neural Networks:神经网络用于降维
- 【总结】升级Xcode8遇到的问题及解决方案!!! [转]
- Redis基础(一)——NoSQL
- Android AppCompatActivity的ActionBar之SearchView、ShareActionProvider以及menu
- Java中数据输入输出流——DataInputStream和DataOutputStream
- 阿里云云计算 29 AS的原理
- 小程序毕设作品之微信美食菜谱小程序毕业设计成品(6)开题答辩PPT
- 阿里云对象存储OSS及CDN加速配置
- 短视频直播怎么搭建_直播平台搭建流程
- uni-app 预编译器错误:代码使用了scss/sass语言,但未安装相应的编译器插件,请前往插件市场安装该插件
- AR平台:1.ARSDK介绍
- Netty内置处理器整理
- 系统操作问题:无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动--亲测解决
- matlab调频调幅立体声接收机,基于simulink调幅调频发射接收机的设计.doc
- CaptureScreenshot捕捉画面截图截屏
- Linux系统中安装软件的几种方式
- 学会轻松完成组织架构图,轻轻松松完成任务!
- 工具类五合一小程序源码星座配对+星座运势+恶搞放屁音效+引流工具+流量主
热门文章
- 2018研电赛 “RT-Thread企业专项奖” 赞助商通告
- 《画解数据结构》哈希表
- (十三)AI作画、AI绘画、AIGC本地大模型
- 安卓开发跳转其他app指定activity
- 计算机制作动画的优势,产品三维动画制作的表现优势
- 五种知识图式的绘制方法(思维导图、概念图、知识图谱、语义网络、认知图)
- Java基础学习之常用API(16)
- 建立如下所示学生c语言成绩单,2010年计算机等级考试一级模拟试题11
- workbench应力应变曲线_ansys workbench 中最终仿真结果里面有网格,怎么去掉,有网格云图看起来...
- 计算机网络入门技术教学视频,计算机网络基础教程介绍以及视频讲解