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

《如何搭建:“数字人宣讲视频 + Flask 展示页”的演示系统》

本文记录一次“数字人宣讲视频 + Flask 展示页”的搭建过程。项目主题是面向青年大学习场景做一个名为“红厅智播”的演示系统:先在魔珐星云控制台配置数字人形象、音色和场景,再整理 SSML 宣讲脚本生成视频,最后用一个简单的 Flask 页面把视频展示出来。

整套流程偏轻量,重点不是做复杂后台,而是把“数字人视频生成”和“网页展示”这两段跑通。适合用来做课程展示、活动介绍、主题宣讲样例,或者作为后续扩展系统的雏形。

魔珐星云 PC 端官方链接:

https://xingyun3d.com?utm_campaign=daily&utm_source=CSDNwanfen3&utm_medium=&utm_term=&utm_content=

一、项目背景与目标

1.1 为什么要做这个项目

青年大学习这类主题内容通常有固定的表达规范,也有比较明确的视觉调性。如果每次都从拍摄、配音、剪辑开始做,流程会比较重,尤其是基层组织或小团队,很容易卡在时间、人手和制作经验上。

这次项目想解决的不是“大而全的平台问题”,而是一个更具体的需求:

  • 有一段主题宣讲文案。
  • 希望生成一段统一风格的数字人讲解视频。
  • 希望再做一个简洁网页,用于播放和展示这段视频。

所以整个系统的目标很清楚:先完成一次可复用的制作链路,再把最终视频放到网页里展示出来。

1.2 数字人在这里承担什么角色

数字人的作用可以理解成“统一出镜形象 + 自动配音口型 + 虚拟场景合成”。它不能替代内容策划本身,但可以把重复性的出镜、录音、剪辑流程压缩掉。

在这个项目里,数字人主要承担三件事:

  • 用固定形象保持每期内容风格一致。
  • 根据文案自动生成语音和口型动画。
  • 搭配红色主题场景,形成比较完整的宣讲画面。

这种方式适合做样片、预热视频、主题内容入口页。如果要正式长期使用,仍然建议对文案审核、视频复核、素材归档这些环节做流程管理。

1.3 “红厅智播”的范围

“红厅智播”这里不是一个复杂的内容管理系统,而是一个最小可运行版本:

  1. 在魔珐星云控制台配置数字人形象、音色和红色党政场景。
  2. 编写青年大学习主题的 SSML 宣讲脚本。
  3. 生成数字人宣讲视频。
  4. 用 Flask 搭建一个亮色红色主题页面,嵌入并循环播放视频。

后续如果要扩展,可以再加视频列表、分类管理、在线编辑文案、接口生成视频等功能。

二、前提准备:魔珐星云平台配置

正式写代码前,需要先把数字人视频生成部分准备好。这里用到的是魔珐星云控制台,主要配置应用、人物、音色和场景。

1. 创建视频应用

登录魔珐星云控制台后,进入应用管理,新建一个视频应用。应用名称可以写成类似“红厅智播-青年大学习”的形式,方便后面区分。

创建完成后,平台会生成APP_IDAPP_SECRET。如果只是手动生成视频,可以先不用接口;如果后续要接入自动生成流程,这两个参数会用到。

2. 配置人物形象

进入应用详情页,打开“形象管理”,选择适合宣讲类内容的数字人形象。

本项目使用的形象 ID 是:

AF027_9161_new

选择形象时主要看三点:着装是否正式、表情是否自然、整体气质是否适合主题宣讲。不要只看模型精细度,和场景、音色是否协调也很重要。

3. 配置音色

在“音色管理”中选择一款语速适中、吐字清楚的音色。主题宣讲不适合过于夸张的语气,稳定、清晰比“有表演感”更重要。

本项目使用的音色 ID 是:

XMOV_HN_TTS__40

如果文案比较长,建议先用一小段文本试听,确认停顿、重音和语速都能接受,再生成完整视频。

4. 配置场景

场景选择“红色简约党政新闻厅 B”。这类场景不需要太花,重点是背景干净、主体突出、颜色和主题一致。

配置完成后,把场景 ID 也记录下来。后面如果要批量生成视频,人物、音色和场景 ID 可以作为固定配置复用。

5. 编写 SSML 脚本并生成视频

文案可以按段落拆成 SSML 脚本。这里的结构比较简单,每段对应一个 JSON 对象,text放播报内容,media_url可以先留空。

[{"text":"各位青年朋友们大家好,欢迎收看本期青年大学习主题宣讲。青年是国家的未来、民族的希望,新时代赋予青年全新的使命与担当,坚定理想信念、筑牢思想根基,是当代青年成长成才的必修课。","media_url":""},{"text":"新时代青年要自觉加强理论学习,深刻领悟时代精神,紧跟党的步伐,树立远大理想,把个人青春理想融入国家发展大局,摒弃浮躁心态,脚踏实地锤炼本领、增长才干。","media_url":""},{"text":"我们要勇于担当、锐意进取,在学习中精进自我,在实践中磨砺初心,积极投身志愿服务、社会实践与时代建设,以奋斗姿态不负韶华、不负时代,争做有理想、敢担当、能吃苦、肯奋斗的新时代好青年。","media_url":""}]

这里有两个小经验:

  • 长文案不要一整段塞进去,按自然语义拆成几段,数字人的停顿会更舒服。
  • 先用短稿生成一次预览,确认音色、口型和场景没有问题,再生成完整版本。

生成时选择已经配置好的人物、音色和场景,粘贴脚本后点击“3D 生成”。渲染完成后下载.mp4文件,放到项目目录中,后面的网页会直接读取这个视频。

三、技术架构与项目结构

3.1 整体架构

这个项目可以拆成三个阶段:平台配置、视频生成、网页展示。前两步在魔珐星云控制台完成,最后一步用 Flask 做一个本地 Web 页面。

配置数字人形象 / 音色 / 场景 ↓ 整理 SSML 宣讲脚本 ↓ 生成数字人视频 ↓ 下载 MP4 文件 ↓ Flask 提供页面和视频访问 ↓ 浏览器打开红厅智播展示页

这种架构的优点是简单,缺点也很明显:视频生成和网页展示还是分开的。如果要做成正式系统,可以继续把生成接口、任务状态、视频列表和权限管理补上。

3.2 项目结构

项目文件不多,核心就是一个 Flask 文件和一个 HTML 页面。

数字人视频生成网页版/ ├── web_app.py # Flask 服务:首页和视频文件访问 ├── index.html # 前端展示页 ├── requirements.txt # Python 依赖 └── *.mp4 # 生成后的数字人视频文件

这里没有引入前端框架,也没有做数据库。原因很简单:当前目标只是展示视频,纯 HTML + CSS 已经够用。

四、从 0 到 1 搭建红厅智播

红厅智播网页本质上是一个视频展示页:顶部有项目名称,中间放视频播放器,底部做简单收尾。页面不做复杂交互,重点是保证视频能稳定加载,视觉上和主题统一。

4.1 Flask 应用初始化与静态文件路由

后端使用 Flask。这里没有把视频放进static/目录,而是直接从项目根目录读取,所以需要自定义一个静态文件路由。

fromflaskimportFlask,render_template,send_from_directoryimportos BASE_DIR=os.path.dirname(os.path.abspath(__file__))app=Flask(__name__,template_folder=BASE_DIR,static_folder=None)@app.route('/static/<path:filename>')defserve_static(filename):returnsend_from_directory(BASE_DIR,filename)

这段代码主要做了三件事:

  • template_folder=BASE_DIR:让 Flask 能直接找到根目录下的index.html
  • static_folder=None:关闭 Flask 默认静态目录,避免它只去static/文件夹找资源。
  • /static/<path:filename>:自定义文件访问路径,用来读取根目录里的.mp4文件。

如果视频地址写成/static/xxx.mp4,但没有这段自定义路由,就很容易遇到 404。

4.2 首页路由与启动服务

首页只负责渲染index.html,没有额外接口。

@app.route('/')defindex():returnrender_template('index.html')if__name__=='__main__':print("="*60)print("红厅智播 - 青年大学习数字人制作系统")print("="*60)print("\n访问地址: http://localhost:5000")print("\n按 Ctrl+C 停止服务\n")app.run(host='0.0.0.0',port=5000,debug=True)

启动后访问:

http://localhost:5000

如果只是本机预览,host127.0.0.1也可以。这里使用0.0.0.0,是为了同一局域网内其他设备也能访问。

4.3 前端页面结构

前端页面保持简洁,核心就是一个video标签。

<body><navclass="nav"><divclass="nav-logo"></div><divclass="nav-name">红厅智播<small>青年大学习数字人制作系统</small></div></nav><divclass="main"><divclass="tag"><i></i>AI 数字人在线制作</div><h1>红厅智播</h1><pclass="sub">青年大学习 · 数字人智能制作平台</p><divclass="player"><videoautoplaymutedloopplaysinlinecontrols><sourcesrc="/static/xxx.mp4"type="video/mp4"></video></div></div><footerclass="foot"><divclass="foot-line"></div><p>红厅智播 · 青年大学习数字人制作系统</p></footer></body>

几个属性需要注意:

  • autoplay:页面加载后自动播放。
  • muted:静音,避免浏览器拦截自动播放。
  • loop:循环播放,适合展示页。
  • playsinline:移动端尽量在页面内播放。
  • controls:保留播放控制条,方便手动暂停和调整进度。

实际使用时,把xxx.mp4改成项目目录里的视频文件名即可。

4.4 亮色红色主题 CSS

视觉上采用浅色背景和红色主色,不做太多复杂装饰。这样既能贴合主题,也不会抢视频主体的注意力。

body{background:linear-gradient(135deg,#FFF5F5 0%,#FFE8E8 50%,#FFF0F0 100%);color:#333;}body::before{content:'';position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none;background:radial-gradient(ellipse at 20% 30%,rgba(212,33,61,0.08)0%,transparent 50%),radial-gradient(ellipse at 80% 70%,rgba(245,197,24,0.06)0%,transparent 50%);}h1{font-size:3.5em;font-weight:900;letter-spacing:4px;background:linear-gradient(135deg,#D4213D 0%,#F03655 50%,#F5C518 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;}.player{width:100%;max-width:900px;border-radius:16px;overflow:hidden;border:2px solidrgba(212,33,61,0.15);box-shadow:0 20px 50pxrgba(212,33,61,0.15);background:#fff;}.nav{background:rgba(255,255,255,0.95);backdrop-filter:blur(16px);border-bottom:1px solidrgba(212,33,61,0.1);box-shadow:0 2px 20pxrgba(212,33,61,0.08);}

这套样式里,背景、标题、播放器边框和导航栏都围绕红色展开,但整体亮度比较高,不会显得沉重。移动端可以再配合@media (max-width: 768px)调整标题大小、上下间距和播放器宽度。

五、总结

这次项目的核心收获是:如果目标只是把数字人宣讲视频做出来并展示,流程可以很轻,不一定一开始就上复杂后台。

实际链路可以概括成:

确定主题文案 → 配置数字人形象、音色、场景 → 编写并测试 SSML → 生成 MP4 视频 → 用 Flask 页面展示

项目目前的亮点在于结构简单、容易复现、展示效果直观。它也有明显的扩展方向,比如:

  • 增加多视频轮播。
  • 增加不同主题分类。
  • 接入接口生成视频。
  • 做一个后台用于上传视频和维护文案。
  • 增加审核流程,避免内容直接发布。

如果只是做一次青年大学习主题展示,这个版本已经够用;如果要长期运营,就需要把内容管理、生成任务、权限和素材归档补齐。

魔珐星云 PC 端官方链接:

https://xingyun3d.com?utm_campaign=daily&utm_source=CSDNwanfen3&utm_medium=&utm_term=&utm_content=
http://www.jsqmd.com/news/1245497/

相关文章:

  • DIV+CSS跨浏览器兼容性解决方案全解析
  • 武汉武昌区积玉桥街道亨得利名表服务中心电话公示(2026年7月最新) - 亨得利官方
  • ARM Cortex-M外设识别寄存器原理与TM4C123 UART/SSI实战应用
  • RAG-Anything(LightRAG 内核)完整调优实践指南
  • Linux 7.2内核图形性能实测:帧率最高提升12% 光线追踪提升1%
  • 亲身到店体验合肥亨得利名表服务中心|电话和详细网点地址(2026年7月更新) - 亨得利官方
  • Photoshop绘画新手避坑指南与实战技巧
  • 分布式训练避坑指南:在多卡环境下稳定训练大模型的技巧
  • 2026年7月雅典最新通告:南通地区客户售后热线与网点地址指引 - 亨得利官方服务中心
  • Claude Team计划调整:AI编程助手如何提升中小团队开发效率
  • Linux的几个简单命令
  • OpenAI API 100美元免费额度:开发者领取使用全攻略
  • Claude Mythos 5分布式代码分析技术解析与应用
  • 智能驾驶(L2)相关法规以及标准
  • Unity全屏模式深度解析:从原理到实战的完整配置与避坑指南
  • Unity与C#游戏开发入门:从零构建2D平台跳跃游戏
  • 微信聊天记录语音导出成音频文件全攻略:5种方法测评,最后一种亲测有效
  • DNA损伤修复:从分子机制到肿瘤分型与免疫治疗的理论桥梁
  • 别再做PPT牛马了!2026年6款AI生成PPT工具横评,百度文库断层第一
  • C# 二分查找:从原理到实现(新学者思考)
  • Oracle数据库High Version Count问题诊断与优化
  • 深入解析SCI/LIN寄存器:从数据发送到错误注入的嵌入式实战
  • OpenAI广告业务探索:大模型商业化与对话式广告的未来
  • python代码分析nginx访问日志
  • 企业版配套软件介绍 ---- USB TO SPI 3.0-Slave
  • 头文件、条件编译、编译工具、make工具的使用
  • 知识城全屋定制哪家好:派福装饰空间焕颜 - MXyuyu
  • C++实战:构建高性能古诗词学习平台的数据结构与算法设计
  • 从零部署阿拉德源码:Linux服务端与Unity客户端联调实战
  • 分布式定时任务架构设计与实践指南