文字转音频,视频

这里写自定义目录标题

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
相关推荐
RTC实战笔记10 天前
Android 实时音视频接入教程:媒体补充增强信息(SEI)
音视频·媒体·rtc
潜创微科技11 天前
HDMI1.3 无线传输芯片方案 空旷 150 米量产级音视频方案
音视频
VidDown11 天前
VidDown 工具站:免费、本地优先的开发者工具箱
javascript·编辑器·音视频·视频编解码·视频
换个昵称都难11 天前
音频格式之WAV
音视频
AI创界者11 天前
PilotTTS 一键整合包(Win/Mac):8G 显存畅跑,实测解锁情绪与副语言的精准控制
人工智能·macos·aigc·音视频
u1521096484911 天前
S.S.Audio PRO A2音频隔离器
嵌入式硬件·音视频·实时音视频·视频编解码·视频
VidDown11 天前
显卡处理视频技术详解:从硬解码到 NVENC,GPU 如何让视频处理起飞?
javascript·编辑器·音视频·视频编解码·视频
EasyDSS11 天前
全能音视频平台/私有化音视频系统EasyDSS!直播/点播/会议/集群对讲一站式落地
音视频
Damon_X11 天前
车载音频复习
音视频
3DVisionary11 天前
告别数据中断:XTDIC-VG视频引伸计在金属疲劳测试中3个真实案例
人工智能·音视频·应用案例·xtdic-vg·视频引伸计·疲劳测试·实战复盘