python利用百度AI语音识别合成短视频
admin
2023-07-30 19:52:23
0

用python搭配语音识别api合成短视频的思路一直有,就是没有付诸行动,今天看到了有大神已经做出来了,就搬运过来,留着以后参考学习

思路也简单,一段文字,一段背景音乐,一段视频,就可以轻松合成了。

 

from aip import AipSpeech
from mutagen.mp3 import MP3
from moviepy.editor import *
import traceback

def Generatetxt(somebody,something,other_word):
    txt = '''{}{}是怎么回事呢?{}相信大家一定很熟悉,但是{}{}是怎么回事呢,下面就让小编来带着大家一起了解吧!
{}{},其实就是{},大家可能会很惊讶{}怎么会{}呢?但事实就是这样,小编也感到非常惊讶。
这就是关于{}{}的事情了,大家有什么想法呢,欢迎在评论区告诉小编来一起讨论哦!
    '''
    txt = txt.format(somebody,something,somebody,somebody,something,somebody,something,other_word,somebody,something,somebody,something)
    return txt
def GenerateMP3(txt):
    APP_ID = '************'
    API_KEY = '****************'
    SECRET_KEY = '************************'
    client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
    result = client.synthesis(txt, 'zh', 1, {
        'vol': 4, 'per': 0, 'spd': 5
    })
    if not isinstance(result, dict):
        with open('./sound.mp3', 'wb') as f:
            f.write(result)

def get_mp3length(path):
    audio = MP3(path)
    return audio.info.length


def video_add_mp3(file_name, mp31_file,mp32_file,new_filename, time):
    video = VideoFileClip(file_name)
    audioclip = AudioFileClip(mp31_file)
    audioclip2 = AudioFileClip(mp32_file)
    compo = CompositeAudioClip([audioclip.set_start(2),
                                audioclip2.set_start(0)])
    print(type(compo))

    videoclip = video.set_audio(compo)
    videoclip = videoclip.subclip(0, time)
    try:
        videoclip.write_videofile(new_filename)
        video.reader.close()
        return new_filename
    except:
        traceback.print_exc()
    return None


if __name__ == '__main__':
    print(Generatetxt("健身", "伤害身体", "运动过度肌肉损伤"))
    GenerateMP3(Generatetxt("健身", "伤害身体", "运动过度肌肉损伤"))
    Mp3TimeLength = get_mp3length("sound.mp3")
    video_add_mp3("video_ori.mp4", 'sound.mp3','bgm.mp3','After.mp4',Mp3TimeLength + 3)

 

相关内容

用python复制一个文件...
在Python中,你可以使用shutil模块来复制文件,并使用ti...
2024-06-12 15:14:26
ADB Python-Da...
当使用ADB Python-Daemon库时,如果子进程无法连接,...
2024-05-24 01:17:39
ADAL python 支...
要实现ADAL Python支持Windows登录用户,可以按照以...
2024-05-24 00:23:06
ADAL for Pyth...
在ADAL for Python中,可以使用TokenCache类...
2024-05-24 00:21:15
Adafruit的TLC5...
目前,Adafruit 的TLC5947没有官方的 Micropy...
2024-05-24 00:20:23
Adafruit QT P...
如果Adafruit QT PY ESP32-S2被卡在Circu...
2024-05-24 00:20:09

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
项目管理和工程管理的区别 项目管理 项目管理,顾名思义就是专注于开发和完成项目的管理,以实现目标并满足成功标准和项目要求。 工...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
Apache Doris 常见... 什么是 Apache Doris Apache Doris 是一款 MPP 架构的 OLAP 列式存...
Vmware简易安装ubunt... 大晚上的折腾死我了VMware安装ubuntu,用简易安装结果设置的用户名密码死活进不去再重装一次,...
‘WebDriver‘ obj... selenium库报错"‘WebDriver’ object has no attribute ‘f...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
WiFi中继器和WiFi扩展器... WiFi中继器以无线方式连接到 WiFi 网络并重新广播信号。它就像一个中继系统,连接到我们的 Wi...