当前位置: 首页 > news >正文

MoneyPrinter国内版改造

在这里插入图片描述

背景:

MoneyPrinter 是一个自动生成短视频的开源项目。只需要输入短视频主题,然后就可以生成视频。
在国内环境运行时,框架中使用的youtube、抖音文字转语音等功能无法使用,需要对框架进行国内版改造,使其使用国内网络环境。

实现原理:

MoneyPrinter根据输入的主题,调用AI生成视频文案,然后生成检索关键字,去pixel网站检索相关的视频,然后调用语音合成工具生成音频,调用moviepy生成字符,最后将生成的音频、视频、字幕进行合并,完成视频拼接。

关键步骤:

  • AI文案:调用g4f,自动检索可用的AI接口。你可以替换成自己付费的API模型,也可以让他自己检索可用的免费AI在这里插入图片描述
  • pixel网站:需要你配置自己的账号秘钥,以供接口调用时使用,完全免费的。国内可访问。
    在这里插入图片描述
  • 语音合成工具:将视频脚本转换为语音。
  • moviepy:拼接视频

国内版改造:

  1. youtube 自动上传功能

  2. 文字转音频,需要换替换国内可用服务器。之前分享的文章

  3. 字幕转换,需要转换为中文版

    def generate_response(prompt: str, ai_model: str) -> str:"""Generate a script for a video, depending on the subject of the video.Args:video_subject (str): The subject of the video.ai_model (str): The AI model to use for generation.Returns:str: The response from the AI model."""if ai_model == 'g4f':# 使用最新版本的调用方法client = g4f.client.Client()response = client.chat.completions.create(model='gpt-3.5-turbo',messages=[{"role": "user", "content": prompt}],).choices[0].message.contentelif ai_model in ["gpt3.5-turbo", "gpt4"]:model_name = "gpt-3.5-turbo" if ai_model == "gpt3.5-turbo" else "gpt-4-1106-preview"response = openai.chat.completions.create(model=model_name,messages=[{"role": "user", "content": prompt}],).choices[0].message.contentelif ai_model == 'gemmini':model = genai.GenerativeModel('gemini-pro')response_model = model.generate_content(prompt)response = response_model.textelse:raise ValueError("Invalid AI model selected.")return responsedef translate_text(txt: str, /, *, language='Chinese', ai_model: str) -> str:logger.debug(f'待翻译的内容: {txt} \n'f'待翻译为的语言:{language}')prompt = f"translate the following text into {language}: {txt}"logger.debug(f'使用的AI模型:{ai_model}')response = generate_response(prompt, ai_model)logger.info(f'翻译结果:: {response}')return response
  4. 最终输入的视频存在只显示第一帧画面的问题(调用moviepy模块后补充close()方法
    在这里插入图片描述

  5. 使用loguru进行日志管理。
    在这里插入图片描述

国内版项目使用步骤:

  1. 项目代码

  2. 安装ImageMagick

  3. 修改项目配置文件:

    1. ImageMagick, 指定安装路径
    2. PEXELS_API_KEY,填写账号token
    3. 如果有,AI模型token
    # Necessary API Keys
    # -------------------# ImageMagick Binary Path 
    # Download ImageMagick from https://imagemagick.org/script/download.php
    IMAGEMAGICK_BINARY="/Downloads/ImageMagick/iMagick/usr/local/bin/magick"# Pexels API Key
    # Register at https://www.pexels.com/api/ to get your API key.
    PEXELS_API_KEY=""# Optional API Keys
    # -----------------# OpenAI API Key
    # Visit https://openai.com/api/ for details on obtaining an API key.
    #OPENAI_API_KEY=""# AssemblyAI API Key
    # Sign up at https://www.assemblyai.com/ to receive an API key.
    #ASSEMBLY_AI_API_KEY=""
    
  4. 后端服务启动 /Backend$ python main.py
    在这里插入图片描述

  5. 前端服务启动 python -m http.server 3000
    在这里插入图片描述

  6. 浏览器调用 http://127.0.0.1:3000/
    在这里插入图片描述

  7. 输入主题,生成第一个视频

  8. 查看视频http://127.0.0.1:3000/static/temp/
    在这里插入图片描述在这里插入图片描述

相关文章:

MoneyPrinter国内版改造

背景: MoneyPrinter 是一个自动生成短视频的开源项目。只需要输入短视频主题,然后就可以生成视频。 在国内环境运行时,框架中使用的youtube、抖音文字转语音等功能无法使用,需要对框架进行国内版改造,使其使用国内网络…...

C++ 派生类的引入与特性

一 继承与派生 从上面的例子可以看出: 继承:一旦指定了某种事物父代的本质特征,那么它的子代将会自动具有哪些性质。这就是一种朴素的可重用的概念。 派生:而且子代可以拥有父代没有的特性,这是可扩充的概念。 1 C 的…...

Poe是什么?怎样订阅Poe?

Poe(全称“开放探索平台”,Platform for Open Exploration)是一款由Quora开发的移动应用程序,于2022年12月推出。该应用程序内置建基于AI技术的聊天机器人,可供用户向机器人询问专业知识、食谱、日常生活,甚…...

基于FPGA的视频矩阵切换方案

一、单个显示设备的系统方案:会议室只有1个显示设备 会议室的信号源有很多,但是显示设备只有1个,这个时候最佳方案是使用切换器。 (1)切换器(控制方式:遥控器、软件、机箱面板、中控&#xff…...

.NET周刊【5月第1期 2024-05-05】

国内文章 一个开源轻量级的C#代码格式化工具(支持VS和VS Code) https://www.cnblogs.com/Can-daydayup/p/18164905 CSharpier是一个开源、免费的C#代码格式化工具,特点是轻量级且依赖Roslyn引擎重构代码格式。支持的IDE包括Visual Studio …...

springcloud -nacos实战

一、nacos 功能简介 1.1.什么是Nacos? 官方简介:一个更易于构建云原生应用的动态服务发现(Nacos Discovery )、服务配置(Nacos Config)和服务管理平台。 Nacos的关键特性包括: 服务发现和服务健康监测动态配置服务动态DNS服务服务及其元数…...

第十五章 数据管理成熟度评估练习

单选题 (每题1分,共19道题) 1、 [单选] 下列选项中属于数据管理成熟度2级特征的选项是? A:很少或没有治理;有限的工具集;单个竖井(系统)内定义角色;控件(如果有的话的应用完全不一致);未解决的数据质量问题 B:治理开始出现;引入一致的工具集;定义了一些角色和…...

tcpdump速查表

tcpdump 速查表 -D 列出网络设备 ~]$ sudo tcpdump -D1.eth02.nflog (Linux netfilter log (NFLOG) interface)3.nfqueue (Linux netfilter queue (NFQUEUE) interface)4.any (Pseudo-device that captures on all interfaces)5.lo [Loopback]-i 指定网卡 前面列出的设备可以…...

单元测试与集成测试:软件质量的双重保障

目录 概述 单元测试 集成测试 单元测试的方法 白盒测试 黑盒测试 白盒测试的方法和用例设计 代码审查 集成测试 单元测试工具 结语 在软件开发中,测试是一个不可或缺的环节,它能够帮助我们发现和修复缺陷,确保软件的质量和可靠性。…...

孙宇晨对话大公网:香港Web3政策友好环境示范意义重大

日前,全球知名华文媒体大公网发布《湾区web3大有可为》重磅系列报道。报道通过对中国香港与大湾区其他城市Web3政策、行业创新和生态建设等方面的梳理,以及对行业领袖和重要行业机构的走访,全面展现了在大湾区一体化发展的背景下,Web3等数字经济模式在该地区的长远发展潜力。 …...

Python运维之多线程!!

一、多线程 二、多线程编程之threading模块 2.1、使用threading进行多线程操作有两种方法: 三、多线程同步之Lock(互斥锁) 四、多线程同步之Semaphore(信号量) 五、多线程同步之Condition 六、多线程同步之Event…...

milvus插入数据时,明明不超长,但总是报长度错误?

在处理插入milvus数据时,设置了字段长度为512. 明明考虑了预留,插入的数据中没有这么长的,但还是会有报错 类似:MilvusException: (code0, messagethe length (564) of 78th string exceeds max length (512) 查找max(len(x) for …...

怎么把图片大小缩小到1M?教你几招图片你压缩

当我们的图片数量越来越多的时候,占用的内存也就越来越多,时间长了之后,会导致我们空间不足或者设备比较卡顿,为了缓解这个问题,很多人会选择去删除一些不必要的图片文件,其实还有个方法就是利用图片压缩的…...

python数据分析常见命令

前言 近些天我会整理一些我平时清理csv,excel数据经常用的常见命令来分享给大家学习,大家一起加油! 第一个命令:引入pandas库 pandas库是一个开源的数据分析工具,主要用于数据处理和数据分析。 import pandas as pd 第二个命令…...

等保测评技术方案(五)

(八)漏洞扫描方案 1.参与人员 乙方工程师:谭 然、张 剑等。 范围经过双方确认,此次评估的对象包括: 2.网络设备 IP 地址 设备型号 备注 / / / / / / 以现场测评实际数据为准 3.应用系统 地址 …...

Redis缓存的基本概念和使用

Redis缓存的基本概念和使用 什么是缓存Redis缓存缓存更新策略缓存穿透缓存雪崩缓存击穿缓存工具类封装 什么是缓存 缓存时数据交换的缓冲区,存储数据的临时区,读写性能较好。 例如计算机的三级缓存。CPU的计算速度超过内存的读写速度,为了平…...

MATLAB模拟退火算法、遗传算法、蚁群算法、粒子群算法

概况 模拟退火算法、遗传算法、蚁群算法、粒子群算法等算法,都是属于概率算法,不绝对,不迅速,能用其它方式解决的问题,不要用这些相对复杂的算法,比如有明确的线性关系或者非线性对应关系。这里的概率算法…...

git自用随笔

push失败 因为远程比本地新&#xff0c;要拉到本地进行合并。git pull拉取&#xff0c;拉取失败&#xff0c;本地分支没有和远程链接&#xff0c;使用git branch --set-upstream-toorigin/<branch> dev进行链接&#xff0c;链接后再次pull&#xff0c;pull提示合并冲突&a…...

CorelDRAW2024设计界的隐藏宝藏

CorelDRAW 2024是一款专业的平面设计软件&#xff0c;被广泛地应用于各类设计领域。它的功能强大、操作简便&#xff0c;是许多设计师的得力助手。在本文中&#xff0c;我们将详细解析这款软件的核心特性以及其在实际应用中的表现。 CDR永久版安装包百度云分享下载如下点击获取…...

【JAVA】递归

接着上一讲继续&#xff0c;内容不多&#xff0c;讲解一下递归相关内容。 1. 生活中的故事 从前有坐山&#xff0c;山上有座庙&#xff0c;庙里有个老和尚给小和尚将故事&#xff0c;讲的就是&#xff1a; "从前有座山&#xff0c;山上有座庙&#xff0c;庙里有个老和尚…...

synchronized 学习

学习源&#xff1a; https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖&#xff0c;也要考虑性能问题&#xff08;场景&#xff09; 2.常见面试问题&#xff1a; sync出…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来&#xff0c;实在找不到&#xff0c;希望有大佬教一下我。 还有就会议时间&#xff0c;我感觉不是图片时间&#xff0c;因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指&#xff1a;同样大小的样本 **&#xff08;同样大小的数据&#xff09;**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

省略号和可变参数模板

本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...

day36-多路IO复用

一、基本概念 &#xff08;服务器多客户端模型&#xff09; 定义&#xff1a;单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用&#xff1a;应用程序通常需要处理来自多条事件流中的事件&#xff0c;比如我现在用的电脑&#xff0c;需要同时处理键盘鼠标…...

微服务通信安全:深入解析mTLS的原理与实践

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、引言&#xff1a;微服务时代的通信安全挑战 随着云原生和微服务架构的普及&#xff0c;服务间的通信安全成为系统设计的核心议题。传统的单体架构中&…...