免费将中文视频转换为英文视频并添加中英双语字幕

免费将中文视频转换为英文视频并添加中英双语字幕

背景

女朋友需要找关于《不要随意喂养动物园的动物》的英语视频,因为限定是英语类的视频,所以在国内的视频平台基本无法找到。虽然我是个程序员,但在女友的眼里,只要关于电脑的我都会,无奈只能硬着头皮上……

我第一个想法是到外网的油管上用英文去找相关的视频,但找了好几天都没有找到相关的视频,又或者找到了也不符合她的想法。因此把目光转回国内的视频平台,并最终物色到一个符合她想法的中文视频。而我要做的就是把这个中文视频转化为英文视频并添加中英双语字幕。

思路

  1. 首先把中文视频中的音频提取出来并识别出中文并手动调整中文中的错别字等
  2. 把中文翻译成英文(使用百度翻译或有道云翻译)
  3. 把翻译出来的英文合成为英文音频
  4. 制作中英双语字幕,并把视频中的原中文音频替换为英文音频
  5. 导出英文视频

技术

  • Python3

  • 百度智能云中的语音识别中的音频文件转写功能(通过音频提取出中文)

  • 有道智云平台的语音合成中的语音合成功能(通过单词句子合成为英语音频,百度接口的语音合成只能合成中文音频)

  • 迅捷视频软件(添加字幕软件,有水印版免费)

  • 格式工厂(视频压缩、转换等功能)

  • *Adobe Premiere(提取视频中的音频,非必需,可以使用格式工厂来处理,且是收费的)

实现

  1. 第一步,将视频中的音频提取。可以用格式工厂把视频转为音频(如果你有Pr的话也可以用Pr来提取音频)

  2. 第二步,识别出音频中的中文。这里使用到了百度智能云中的音频文件转写功能。所以首先需要先注册个账号并完成个人认证,百度智能云链接如下:https://cloud.baidu.com/
    注意:使用该功能可以通过领取免费资源来获得免费时长,领取的资源有时效和总时长限制,通过https://console.bce.baidu.com/ai/#/ai/speech/overview/index此链接获取:
    image-20220222211337762

    注册并登录后打开音频文件转写链接:https://cloud.baidu.com/doc/SPEECH/s/Bk5difx04

    image-20220222203714743

    通过概述的三个接入步骤可以知道主要为:

    创建具有音频转写功能的应用→通过该应用的AppID、API Key、Secret Key来获取token→通过token和音频链接创建音频转写任务→查询转写任务的识别结果。
    代码如下:

    1. 获取token
    import requests
    import json
    
    API_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
    
    1. 创建音频转写任务(音频可使用百度云对象存储进行音频存储)

      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
      
    2. 查询转写任务结果

      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"]		# 成功了的话此变量即为我们需要的所有文字
      
  3. 第三步,使用百度翻译或有道云翻译翻译出英文

  4. 第四步,根据英文合成英文语音。这里用到有道智云AI开放平台。类似百度智能云平台,这里也需要注册,链接如下:https://ai.youdao.com。首次注册会赠送一些资源的时长,包括语音合成的。
    注册并登录后,找到语音合成功能的页面:https://ai.youdao.com/product-tts.s
    类似百度平台一样,创建应用并勾选语音合成
    image-20220222211855692
    找到技术文档:产品文档-语音合成TTS服务
    把Python3的示例拷下来并修改对应的内容:

    image-20220222212109999

    执行语音合成:

    import sys
    import uuid
    import requests
    import hashlib
    import time
    
    YOUDAO_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 None
    	size = 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_SECRET
    	sign = encrypt(signStr)
    	data['appKey'] = APP_KEY
    	data['q'] = q
    	data['salt'] = salt
    	data['sign'] = sign
    	data['speed'] = 1
    
    	response = 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文件

  5. 第五步,打开迅捷视频软件,官网:https://www.xunjieshipin.com/video-clip
    添加字幕操作可百度,这里就不展开了,参考:https://jingyan.baidu.com/article/e75057f2a3918faac91a89cf.html

  6. 最后导出视频即可。

由锐动天地公司开发的国产免费软件视频编辑专家现在已经完全免费发布啦,您可以自由免费使用该软件,再也不用担心付费了。经大眼仔旭测试视频转换专家是一款操作简单,功能强大的视频编辑软件。支持各种主流格式的转换,并可以生成 VCD/SVCD、DVD 映像文件。 视频编辑专家功能简介 1.编辑与转换:可以转换MPEG 1/2/4, AVI, ASF, SWF, DivX, Xvid, RM, RMVB, FLV, SWF, MOV, 3GP, WMV, PMP, VOB, MP3, MP2, AU, AAC, AC3, M4A, WAV, WMA, OGG, FLAC等各种音视频格式;而且支持音量调节,时间截取,视频裁剪,添加水印和字幕等功能。 2.视频分割:把一个视频文件分割成任意大小和数量的视频文件。 3.视频文件截取:从视频文件提取出您感兴趣的部分,制作成视频文件。 4.视频合并:把多个不同或相同的音视频格式文件合并成一个音视频文件。 5.配音配乐:给视频添加背景音乐以及配音。 6.字幕制作:给视频添加字幕。 7.视频截图:从视频截取精彩画面。 Bentley Maxsurf Enterprise V8i (SELECTSeries 3) 20.00.03.09 关键特色 支持iPod, iPhone, PSP, Zune, Mobile phone。 支持各种高清视频格式:iPod AVC, PSP AVC, Zune AVC。 支持Real Play Meida格式。 支持苹果电视(Apple TV)格式。 支持互联网视频格式:SWF, FLV。 支持3GP视频格式。 支持视频裁剪,时间剪切。 支持一键转换,批量转换。 自动记忆用户上次设置,也可以恢复默认设置。 为什么选用视频转换专家? 简单易用,初级用户能够通过简单的步骤就可以完成操作。 拥有最好的性价比。 官方主页 新增功能 最新升级!支持转换视频到iPod, iPhone, PSP, Zune, Mobile phone 支持苹果电视 H.264 & 苹果电视 MPEG-4。 支持 FLV 和SWF 格式。 支持 RMVB 格式。 核心算法全面优化,更快更稳定。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值