当前位置:首页 > 杂谈 > 正文内容

自动化剪视频-智能视频剪辑 自动生成

2023-07-10 06:26:23TONY杂谈123

最近需要录制视频,讲解产品,和市场人员讲解功能点。

现在AI不是很火么,想搞个AI自动播报。

自动化剪视频-智能视频剪辑 自动生成

开始我尝试用pyttsx3,发现机器发声,效果不好。

想想以前折腾,别人用Edge文本播报功能做了个产品。结果去搜,需要钱了。

然后继续搜,发现有个库,直接可以用这个库来实现。

虽然这方面的介绍不多,我尝试了一下,效果还是可以的。

Edge-TTS介绍

Edge-TTS是一个Python库,它使用微软的Azure Cognitive Services来实现文本到语音转换(TTS)。该库提供了一个简单的API,可以将文本转换为语音,并且支持多种语言和声音。要使用Edge-TTS库,首先需要安装上Edge-TTS库,安装直接使用pip 进行安装即可。

终端下执行以下命令安装

pip install edge-tts

安装成功后,直接在终端运行edge-tts命令:

edge-tts

显示帮助菜单即代表安装成功:➜ Downloads edge-ttsusage: edge-tts [-h] [-t TEXT] [-f FILE] [-v VOICE] [-l] [--rate RATE] [--volume VOLUME] [-O OVERLAPPING] [--write-media WRITE_MEDIA] [--write-subtitles WRITE_SUBTITLES] [--proxy PROXY]

随后输入命令:

edge-tts --list

-voices

该命令可以将Edge浏览器中,内置的语言角色列表列出来

一望而知,几乎支持所有主流的通用语,Gender字段为合成语音的性别,Male代表男性,Female代表女性,zh开头的就是中文语音角色,这里以微软的小伊为例子:

edge-tts --voice zh-CN-XiaoyiNeural --text "你好啊,我是智能语音助手"

--write-media hello_in_cn.mp3

该命令含义是通过zh-CN-XiaoyiNeural角色合成语音:"你好啊,我是智能语音助手"的内容,随后将音频流写入hello_in_cn.mp3文件。

程序返回:

Downloads edge-tts --voice zh-CN-XiaoyiNeural --text "你好啊,我是智能语音助手" --write-media hello_in_cn.mp3WEBVTT00:00:00.100 --> 00:00:00.525

你好

程序会自动将时间轴和语音文本匹配输出,如此一来,连字幕文件也有了,可谓是一举两得,一箭双雕。

与此同时,我们也可以调整合成语音的语速:

edge-tts --rate=-50% --voice zh-CN-XiaoyiNeural --text "你好啊,我是智能语音助手"

--write-media hello_in_cn.mp3

--rate参数可以通过加号或者减号同步加快或者减慢合成语音的语速。

亦或者,调整合成语音的音量:

edge-tts --volume=-50% --voice zh-CN-XiaoyiNeural --text "你好啊,我是智能语音助手"

--write-media hello_in_cn.mp3

python脚本语音合成

除了通过命令进行语音合成,edge-tts也支持在Python脚本,编辑test.py文件:import

edge_tts

import

asyncio

TEXT = "你干嘛去了?听闻远方有你"

print(TEXT)

voice = zh-CN-YunyangNeuraloutput = voicetest.mp3rate = +0%volume = +0%async def my_function

():

tts = edge_tts.Communicate(text=TEXT, voice=voice, rate=rate, volume=volume)

await

tts.save(output)

if __name__ == __main__

:

asyncio.run(my_function())

开始使用"zh-CN-XiaoyiNeural"这个主播来播放,感觉总少了那个味,于是换"zh-CN-YunyangNeura",结果是好听多了。

也可也通过条件,来查找想要的音色import

asyncio

import

random

import

edge_tts

from edge_tts import

VoicesManager

TEXT = "中文语音测试"OUTPUT_FILE ="china.mp3"async def _main() -> None

:

voices = await

VoicesManager.create()

voice = voices.find(Gender="Female", Language="zh"

)

communicate = edge_tts.Communicate(TEXT, random.choice(voice)["Name"

])

await

communicate.save(OUTPUT_FILE)

if __name__ == "__main__"

:

asyncio.run(_main())

你还可以通过 --rate 和 --volume 选项来调整语速和音量,-50% 代表降低语速/音量。

edge-tts --rate=-50% --text "Hello, world!"

--write-media hello_with_rate_halved.mp3

edge-tts --volume=-50% --text "Hello, world!"

--write-media hello_with_volume_halved.mp3

声音问题解决了,我想给视频添加字幕,用gtp生成了代碼。但是,运行报错:

"This error can be due to the fact that ImageMagick", 根本原因,是本机没装ImageMagick, 其实这个包,包含了ffmeg, 在本机上装一个ImageMagick,就解决了所有问题。

moviepy 安装之ImageMagick安装

这是因为ImageMagick没有安装

3、安装ImageMagick软件:

(1)、下载对应版本的软件:[https://www.imagemagick.org/script/index.php][https_www.imagemagick.org_script_index.php]

(2)、安装好,修改moviepy包(\Lib\site-packages\moviepy\)中的config_defaults.py文件,修改之后如下:import

os

FFMPEG_BINARY = os.getenv(FFMPEG_BINARY, ffmpeg-imageio

)

# IMAGEMAGICK_BINARY = os.getenv(IMAGEMAGICK_BINARY, auto-detect) # 这是注释掉原来的IMAGEMAGICK_BINARY = r"D:\Program Files\ImageMagick-7.0.8-Q16\magick.exe" # 这是要添加ImageMagic的安装路径

这个问题又解决了。

要生成视频,就可以用pynimate来生成数据视频:def generate_vedio

():

df = pd.DataFrame(

{

"time": ["1960-01-01", "1961-01-01", "1962-01-01"

],

"Afghanistan": [1, 2, 3

],

"Angola": [2, 3, 4

],

"Albania": [1, 2, 5

],

"USA": [5, 3, 4

],

"Argentina": [1, 4, 5

],

}

).set_index("time"

)

cnv = nim.Canvas()

bar = nim.Barplot(df, "%Y-%m-%d", "2d"

)

bar.set_time(callback=lambda

i, datafier: datafier.data.index[i].year)

cnv.add_plot(bar)

cnv.animate()

cnv.save("file", 24, "gif"

)

最后还有一个问题,那就是保存动画,有两个格式可以选择:gif或者mp4。

保存为动图一般使用:

cnv.save("file", 24, "gif")若要保存为mp4的话,ffmpeg是个不错的选择,它是保存为mp4的标准编写器。

pip install ffmpeg-python,同样也可以使用Canvas.save()来保存。

但是即便我加了ffmpeg,仍然保存不成功,于是用import moviepy.editor 来保存的。

添加背景音乐,def add_audio_to_vedio_in_place

(audio_file, vedio_file, time_place):

video = mp.VideoFileClip(vedio_file)

audio = mp.AudioFileClip(audio_file)

mixed = mp.CompositeAudioClip([audio.set_duration(video.duration).set_start(2, change_end=True

)])

# video = video.set_audio(audio.set_duration(video.duration).set_start(time_place))

video = video.set_audio(mixed)

video.write_videofile("new_video4.mp4"

)

生成字幕文件:

def generate_str

():

# 创建一个新的字幕文件

subs = pysrt.SubRipFile()

# 添加字幕 subs.append(pysrt.SubRipItem(index=1, start=pysrt.SubRipTime(0, 0, 1, 0), end=pysrt.SubRipTime(0, 0, 5, 0

),

text="世界大战"

))

subs.append(pysrt.SubRipItem(index=2, start=pysrt.SubRipTime(0, 0, 6, 0), end=pysrt.SubRipTime(0, 0, 10, 0

),

text="世界和平"

))

# 保存字幕文件 subs.save("example.srt"

)

添加字幕:

def add_srt

(src_file, video_file):

video = mp.VideoFileClip(video_file)

# 获取视频的宽度和高度

w, h = video.w, video.h

# 所有字幕剪辑

txts = []

content = read_srt(src_file)

sequences = get_sequences(content)

for line in sequences: if len(line) < 3

:

continue

sentences = line[2

]

start = line[1].split( --> )[0

]

end = line[1].split( --> )[1

]

start = strFloatTime(start)

end = strFloatTime(end

)

start, end = map(float, (start, end

))

span = end

- start

txt = (mp.TextClip(sentences, fontsize=40

,

font=SimHei, size=(w - 20, 40

),

align=center, color=red

)

.set_position((10, h - 150

))

.set_duration(span)

.set_start(start))

txts.append(txt)

# 合成视频,写入文件

video = mp.CompositeVideoClip([video, *txts])

fn, ext = splitext(video_file)

video.write_videofile(f{fn}_2带字幕{ext}

)

这样,一个自动化视频就制作完成了。

经常看到视频,自动数据播报,或者人情世故鸡汤等,估计就是用这样批量生产的,看来我找到了流量密码。

“自动化剪视频-智能视频剪辑 自动生成” 的相关文章

seo具体怎么优化-SEO优化教程

seo具体怎么优化-SEO优化教程

seo具体怎么优化?根据SEO优化公式怎么打造一个高流量网站。随着越来越多的企业接触互联网,也有越来越多的企业认识到网络渠道尤其是搜索引擎对于开展电子商务的重要性,加之个人站长群体的蓬勃兴起,seo的从业者也就越来越多。于是,一些懂行的企业管理者开始考虑或者实施通过seo的方式从百度获得更...

抖音小店在哪里登录?怎么运营抖音小店?

抖音小店在哪里登录?怎么运营抖音小店?

抖音小店是很多的电商玩家都想要开通的店铺,因为抖音的日活跃用户很多,抖音带货的能力,相信大家都是有目共睹的。那么抖音小店在哪里登录?抖音店怎么运营?   抖音小店在哪里登录?   访问入驻后台 使用电脑浏览器打开小店入驻后台,选择【抖音号登陆】,【重要,一定要登录自己的抖音...

抖店登录怎么操作?一键触达美好生活~

抖店登录怎么操作?一键触达美好生活~

近期比较火的抖音小店,吸引了许多商家的注意力。越来越多的商家开始入驻抖音电商。那么抖店登录都需要经过哪些步骤呢? 输入"抖音小店商家入口",即会跳出抖店官网,其实这就是抖音小店商家入口。在抖音小店官网,商家们可以清楚的看到"立即入驻"字样,想要登录抖店的商家们,只需要点击...

抖音小店登录入口在哪儿?如何登录?新手开店登录教程

抖音小店登录入口在哪儿?如何登录?新手开店登录教程

大家好,我是电商糖果 很多人看上了抖音电商的强大变现能力,都想入驻这个平台,但是有不少新手朋友却找不到抖音小店登录入口在哪儿,也不知道如何登录。 今天,糖果就来给大家详细的讲解一下,想开店或者准备开店的朋友,记得收藏。 抖音小店登录入口在哪儿? 我...

平台购物不同入口价格不同【京东 拼多多 淘宝 抖音 美团 唯品会入口】

平台购物不同入口价格不同【京东 拼多多 淘宝 抖音 美团 唯品会入口】

原标题:平台购物不同入口价格不同【京东 拼多多 淘宝 抖音 美团 唯品会入口】 有朋友抱怨时,抱怨说老是在买东西,既浪费钱又气人!如果你有过网购经历,你一定知道拼多多购买东西,但你不一定知道京东 拼多多 淘宝 抖音 美团 唯品会 都有各种优惠入口。下面 从平台方面进行说明...

文献检索网站知多少

文献检索网站知多少

今天,我们来聊点实用的——文献检索应该哪里?对于许多“科研老司机”而言,这应该算是一个很简单的问题,但是对于许多初次接触科研的新手来说,仅仅依靠别人口中听来的有限的几个检索网站去回答好这个问题还是有一定难度的。下面,小编就给大家系统梳理一下文献检索到底有哪些网站?针对不同类型的文献我们又应...