文字转音频,视频

这里写自定义目录标题

1.文字转音频

复制代码
pip install edge-tts

import asyncio
import edge_tts

# --- 配置参数 ---
# TEXT:你想转换的知识点文本(这里拿今天大模型计划里的一句话举例)
TEXT = """
今天的大模型核心知识点是 Mixture-of-Experts 混合专家模型。
它的本质是通过门控网络,将不同的输入路由给特定的专家网络处理。
这种设计能在不增加推理计算量的前提下,大幅提升模型的参数规模。
掌握 MoE,就是掌握了万亿参数模型的敲门砖!
"""

# VOICE:发音人(zh-CN-XiaoxiaoNeural 是微软晓晓,非常自然的中文女声)
# 其他可选如:zh-CN-YunxiNeural(云希 男声)
VOICE = "zh-CN-XiaoxiaoNeural" 

# OUTPUT_FILE:保存的音频文件名
OUTPUT_FILE = "moe_daily_knowledge.mp3"

# --- 核心异步函数 ---
async def generate_audio(text: str, voice: str, output_file: str) -> None:
    """
    使用 edge-tts 将文本转为语音 MP3
    """
    print(f"🎙️ 正在呼叫 AI 播音员 {voice}...")
    
    # 初始化通信实例
    communicate = edge_tts.Communicate(text, voice)
    
    # 异步保存文件
    await communicate.save(output_file)
    print(f"✅ 转换完成!知识点已存为: {output_file}")

# --- 主程序入口 ---
if __name__ == "__main__":
    # 使用 Python 原生的 asyncio 事件循环来运行
    try:
        asyncio.run(generate_audio(TEXT, VOICE, OUTPUT_FILE))
    except Exception as e:
        print(f"❌ 转换失败: {e}")

manim的使用

  • mac

    brew install ffmpeg cairo pango pkg-config
    brew install --cask mactex # 这个比较大,如果不想渲染复杂公式可以跳过
    pip install manim

  • windows:

    • https://docs.manim.community/en/stable/installation.html下载

      from manim import *

      class ConnectionPoolDemo(Scene):
      def construct(self):
      # 1. 创建标题
      title = Text("SQLAlchemy 异步连接池", font_size=40).to_edge(UP)
      self.play(Write(title))

      复制代码
          # 2. 画一个代表"连接池"的大框框,放在屏幕中间
          pool_box = Rectangle(width=4, height=3, color=BLUE)
          pool_label = Text("Connection Pool", font_size=24).next_to(pool_box, UP)
          
          # 将连接池展示出来
          self.play(Create(pool_box), Write(pool_label))
          
          # 3. 在池子里画 3 个圆圈,代表三个空闲的"数据库连接"
          conn1 = Circle(radius=0.3, color=GREEN).move_to(pool_box.get_center() + LEFT)
          conn2 = Circle(radius=0.3, color=GREEN).move_to(pool_box.get_center())
          conn3 = Circle(radius=0.3, color=GREEN).move_to(pool_box.get_center() + RIGHT)
          
          connections = VGroup(conn1, conn2, conn3)
          self.play(FadeIn(connections))
      
          # 4. 模拟两个客户端请求(用三角形代替)
          req1 = Triangle(color=YELLOW).scale(0.3).to_edge(LEFT)
          req1_label = Text("Req 1", font_size=20).next_to(req1, DOWN)
          req_group1 = VGroup(req1, req1_label)
      
          req2 = Triangle(color=RED).scale(0.3).to_edge(RIGHT)
          req2_label = Text("Req 2", font_size=20).next_to(req2, DOWN)
          req_group2 = VGroup(req2, req2_label)
      
          self.play(FadeIn(req_group1), FadeIn(req_group2))
          
          # 等待一秒钟,准备开始借用连接
          self.wait(1)
      
          # 5. 高潮来了!演示借用连接的动画
          # 请求 1 飞向连接 1
          self.play(req_group1.animate.next_to(conn1, DOWN))
          # 连接 1 变红色,表示"被占用"
          self.play(conn1.animate.set_color(RED), Indicate(conn1))
      
          # 请求 2 飞向连接 3
          self.play(req_group2.animate.next_to(conn3, DOWN))
          # 连接 3 变红色
          self.play(conn3.animate.set_color(RED), Indicate(conn3))
      
          self.wait(2)
          
          # 6. 归还连接(还原为绿色)
          self.play(
              req_group1.animate.to_edge(LEFT).set_opacity(0),
              conn1.animate.set_color(GREEN)
          )
          
          self.wait(1)
          self.play(FadeOut(Group(*self.mobjects))) # 优雅地结束

在终端里,跑这条神秘的指令(-p 代表渲染完自动播放,-qm 代表中等质量,渲染快):

复制代码
manim -p -qm connection_pool.py ConnectionPoolDemo
相关推荐
Ulyanov20 小时前
从零构建现代化Python音频播放器:ttk深度应用与皮肤系统设计
python·架构·音视频·数据可视化
Ulyanov21 小时前
音视频分离与音频处理核心技术深度解析 从MP4到高品质音乐文件的完整技术实现
python·音视频
2501_921930831 天前
Flutter for OpenHarmony三方库适配实战:image_picker 图片视频选择
flutter·音视频
Flamingˢ1 天前
ZYNQ+OV5640+VDMA+HDMI视频链路搭建实录:从摄像头采集到实时显示
arm开发·嵌入式硬件·fpga开发·vim·音视频
Black蜡笔小新1 天前
视频融合平台EasyCVR核心技术架构解析与多场景应用实践
架构·音视频
EasyGBS1 天前
国标GB28181视频分析平台EasyGBS视频质量诊断重塑工业园区监控智能运维新生态
大数据·网络·音视频
Wxinxiaozhang1 天前
音频生成bin文件步骤
音视频
TEL136997627501 天前
SSS1700音频对录线方案 SSS1700规格书
音视频
YWamy1 天前
智能硬件音视频SDK选型:RTC关键指标全指南
音视频