文字转音频,视频

这里写自定义目录标题

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
相关推荐
联犀1 天前
联犀 Go SIMD 实战:视频转码从 16.5ms 到 5.46ms
开发语言·golang·音视频
9527华安2 天前
FPGA纯verilog实现DP视频接口,支持2K60帧分辨率,提供3套工程源码和技术支持
fpga开发·音视频·dp
MetaEnchanter2 天前
视频章节怎么整理:填好时间点,导出前检查这几处
音视频
小豆庄2 天前
测试视频里的人脸车牌敏感信息自动化脱敏方案
计算机视觉·目标跟踪·ffmpeg·音视频·边缘计算·视频·敏捷流程
光泽雨2 天前
WPF 音视频四大核心方案对比
wpf·音视频
揽秀亭长2 天前
音频转乐谱如何实现?四类AI 扒谱工具的流程
音视频
敢敢のwings3 天前
SimpleMemVLA 深度解读:把原生视频上下文变成机器人的记忆
数码相机·机器人·音视频
ck0135793 天前
视频片段提取与视频修剪的区别:多时间段选择及导出流程
人工智能·音视频·视频
沐飞工具箱3 天前
游戏、漫画、视频里的外语怎么实时翻译?从 OCR + AI 原理聊聊 VoriTrans 屏幕翻译
人工智能·游戏·实时互动·音视频·自动翻译
小豆庄4 天前
监控视频脱敏的追踪漂移与ID撞号陷阱
目标跟踪·ffmpeg·音视频·视频·敏捷流程