博客

  • RealtimeSTT 优秀的实时语音转文本Python库

    RealtimeSTT 优秀的实时语音转文本Python库

    RealtimeSTT 是一个易用、低延迟的实时语音转文本(Speech-to-Text, STT)Python 库,专为需要实时语音转录的应用场景设计,核心聚焦于麦克风音频输入的实时识别与转录,适用于语音助手、实时字幕、语音控制等场景。

    核心特性

    1. 语音活动检测(VAD)
      • 结合 WebRTCVAD 做初始语音检测,SileroVAD 做高精度验证,自动识别说话开始 / 结束;
      • 支持自定义静音阈值、最小录音时长等参数,适配不同场景的语音检测需求。
    2. 实时转录能力
      • 基于 Faster-Whisper(GPU 加速版 Whisper)实现低延迟语音转文本,支持实时流式转录;
      • 可配置实时转录模型、处理间隔、波束搜索大小等参数,平衡速度与精度。
    3. 唤醒词激活
      • 集成 Porcupine 或 OpenWakeWord 实现唤醒词检测,可触发后续转录逻辑;
      • 支持自定义唤醒词模型训练与加载(参考 OpenWakeWord 相关文档)。
    4. 客户端 / 服务端架构
      • 提供 Server 模块,支持 WebSocket 接口的客户端 – 服务端通信,可分离音频采集与转录计算;
      • 内置 CLI 工具(stt-server 启动服务、stt 启动客户端),也支持浏览器客户端(基于 WebSocket 的前端页面)。
    5. 跨平台与扩展能力
      • 支持 Windows/Linux/macOS,提供 GPU(CUDA)加速支持;
      • 可结合 RealtimeTTS(同作者的文本转语音库)构建完整的语音交互闭环。

    技术栈

    • 语音检测:WebRTCVAD、SileroVAD;
    • 语音转录:Faster-Whisper(基于 OpenAI Whisper,支持 GPU 加速);
    • 唤醒词:Porcupine、OpenWakeWord;
    • 网络通信:WebSockets(服务端 – 客户端交互);
    • 音频处理:PyAudio、soundfile、scipy 等。

    安装与使用

    基础安装

    1. 先安装系统依赖(如 FFmpeg,不同系统参考仓库文档);
    2. 安装 Python 包:
      bash
      运行
      pip install RealtimeSTT
      # 或 GPU 版本(需提前配置 CUDA 环境)
      pip install -r requirements-gpu.txt
      

    极简示例(实时打印语音转录结果)

    python
    运行
    from RealtimeSTT import AudioToTextRecorder
    
    def process_text(text):
        print(text)
    
    if __name__ == '__main__':
        print("Wait until it says 'speak now'")
        recorder = AudioToTextRecorder()
        while True:
            recorder.text(process_text)
    

    服务端 / 客户端使用

    • 启动服务:stt-server(可配置模型、端口、GPU 等参数);
    • 启动 CLI 客户端:stt
    • 浏览器客户端:访问 Server 模块的 index.html,通过 WebSocket 连接服务端实现网页端语音转录。

    仓库结构

    plaintext
    RealtimeSTT/
    ├── RealtimeSTT/          # 核心库代码
    ├── RealtimeSTT_server/   # 服务端/客户端实现(WebSocket、CLI 工具)
    ├── example_browserclient/# 浏览器客户端示例(HTML/JS)
    ├── example_app/          # 完整应用示例(如 OpenAI 语音交互界面)
    ├── tests/                # 测试脚本(基础功能、唤醒词、实时转录等)
    ├── requirements.txt      # 基础依赖
    ├── requirements-gpu.txt  # GPU 加速依赖
    ├── setup.py              # 包构建配置(支持 CLI 入口)
    └── Dockerfile/docker-compose.yml # Docker 部署支持(含 GPU 配置)
    

    维护状态与许可

    • 项目为社区驱动维护:原作者因时间限制不再主动开发新功能,但会合并社区高质量 PR;
    • 许可协议:MIT 许可证(自由使用、修改、分发);
    • 贡献:欢迎提交 Issue/PR,仓库文档提供了贡献指引。

    扩展场景

    • 语音助手(结合 LLM 实现对话);
    • 实时字幕 / 语音输入(如自动打字、会议转录);
    • 多语言实时翻译(示例脚本含 OpenAI 翻译集成);
    • 跨设备语音转录(服务端部署 GPU 算力,客户端轻量采集音频)。
    如果需要更细节的使用(如 GPU 配置、唤醒词训练、Docker 部署),可参考仓库内的 README.md、RealtimeSTT_server/README.md 及测试脚本。
  • 终于做好网站了

    这是一个小红书页面的测试贴,你可以看到这个页面类似于小红书的即开即看。这个板块将会与圈子功能相隔开。

  • Zerox OCR 简化复杂文档的 AI 可读化

    Zerox OCR 简化复杂文档的 AI 可读化

    Zerox 是一个专注于文档 OCR(光学字符识别)的工具库,核心目标是为 AI 数据摄入提供简单、高效的文档转 Markdown 能力,尤其适配包含复杂布局(表格、图表、不规则排版)的文档场景 —— 借助视觉模型处理这类视觉化文档更具优势。

    核心能力与工作逻辑

    Zerox 的核心流程:
    1. 传入目标文件(支持 PDF、DOCX、图片等格式);
    2. 将文件转换为一系列图片;
    3. 调用视觉模型(如 OpenAI GPT 系列)解析图片内容,并要求返回 Markdown 格式结果;
    4. 聚合所有图片的解析结果,最终输出完整的 Markdown 文本。

    核心特性

    多语言支持

    同时提供 Node.js 和 Python 两个版本的 SDK,覆盖不同技术栈需求:
    • Node.js 版本:发布在 npm(包名 zerox);
    • Python 版本:发布在 PyPI(包名 py-zerox)。

    多服务商兼容

    支持主流的 AI 服务商视觉模型,包括:
    • OpenAI / Azure OpenAI;
    • AWS Bedrock;
    • Google Gemini(Python 版额外支持 Vertex AI);
    • Anthropic(Node 版支持)。

    功能对比(Node.js vs Python)

    表格
    功能项 Node.js Python
    PDF / 图片处理 ✓(依赖 graphicsmagick) ✓(依赖 poppler)
    自定义系统提示词 ✓(custom_system_prompt)
    数据提取(schema)
    按页提取 ✓(extractPerPage)
    格式保留 ✓(maintainFormat) ✓(maintain_format)
    并发处理 ✓(concurrency) ✓(concurrency)
    页面选择 ✓(pagesToConvertAsImages) ✓(select_pages)
    方向校正 / 边缘裁剪
    错误处理模式 ✓(errorMode)
    临时目录管理 ✓(tempDir) ✓(temp_dir)

    仓库结构

    plaintext
    zerox/
    ├── .github/          # GitHub 配置(如 workflow)
    ├── examples/         # 示例代码(node/ 子目录对应 Node 示例)
    ├── py_zerox/         # Python 版核心代码(pyzerox/ 子包)
    │   ├── scripts/      # Python 脚本
    │   └── tests/        # Python 测试用例
    ├── node-zerox/       # Node.js 版核心代码
    │   ├── src/          # TS 源码(含模型适配、核心逻辑)
    │   ├── scripts/      # Node 脚本
    │   └── tests/        # Node 测试用例
    ├── shared/           # 跨语言共享资源(如系统提示词、测试数据)
    ├── assets/           # 静态资源(示例文档、图片)
    ├── 配置文件           # package.json/tsconfig.json(Node)、pyproject.toml/setup.py(Python)
    └── 构建/规范配置      # Makefile、pre-commit、jest.config.js 等
    

    快速使用示例

    Node.js 版

    typescript
    运行
    import { zerox } from "zerox";
    import path from "path";
    
    // 本地文件示例
    const result = await zerox({
      filePath: path.resolve(__dirname, "./cs101.pdf"),
      credentials: {
        apiKey: process.env.OPENAI_API_KEY, // 或 Bedrock/Azure 等凭证
      },
    });
    

    环境依赖

    • Node.js 版:需安装 graphicsmagick + ghostscript(Linux 可通过 apt-get install graphicsmagick 安装);
    • Python 版:需安装 poppler(PDF 转图片依赖)。

    其他补充

    安装

     

    • 在系统上安装poppler,路径变量里应该有它。请参阅pdf2image文档,了解按平台划分的说明。
    • 安装py-zerox:
    pip install py-zerox

    该功能是一个异步API,通过视觉模型进行光学字符识别(OCR)以进行标记。它会处理PDF文件并将其转换为markdown格式。使用该 API 前,务必设置模型和模型提供者的环境变量。pyzerox.zerox

    请参阅LiteLLM文档以设置环境并传递正确的模型名称。

  • 黑暗荣耀 더 글로리 (2022)

    黑暗荣耀 더 글로리 (2022)

    《黑暗荣耀》(2022)是一部韩国复仇题材剧集。女主角文东恩在高中时期遭受严重校园暴力,被迫退学。多年后,她精心策划了一场漫长而缜密的复仇计划,向当年的施暴者和旁观者逐一展开报复。
    剧集以双线叙事的方式,既展现了文东恩步步为营的复仇过程,也深刻揭露了韩国社会中阶级固化、权力滥用与校园暴力等现实问题。宋慧乔凭借极具张力的表演,将一个被摧毁后又浴火重生的女性形象刻画得入木三分,成为现象级的复仇剧代表作。
  • 看不见的客人 Contratiempo (2016)

    看不见的客人 Contratiempo (2016)

    《看不见的客人》(Contratiempo)是一部西班牙悬疑惊悚片。年轻有为的企业家艾德里安,在事业如日中天时卷入一桩谋杀案。为了洗脱罪名,他请来金牌女律师弗吉尼亚为自己辩护。
    在封闭的房间里,艾德里安向律师回忆起自己与情人劳拉卷入的另一起车祸沉尸案。随着对话层层深入,每一次证词都被推翻,每一个细节都暗藏反转,最终揭露了令人震惊的真相。影片以精巧的叙事结构和极致的反转,成为悬疑片的经典之作。
  • 莎拉的真伪人生 레이디 두아 (2026)

    莎拉的真伪人生 레이디 두아 (2026)

    《莎拉的真伪人生 레이디 두아 (2026)》围绕身份、记忆与真相展开。女主角莎拉在一场意外后,发现自己身处的生活、情感乃至过往记忆都充满疑点,身边看似熟悉的人与事,背后都藏着不为人知的秘密。随着她一步步揭开谎言,原本安稳的人生彻底崩塌,被迫在真实与虚假之间做出抉择。影片融合悬疑、情感与人性挣扎,层层反转,直抵关于 “自我” 与 “人生” 的终极追问。
  • 极限审判 Mercy (2026)

    极限审判 Mercy (2026)

    《极限审判 Mercy (2026)》将故事设定在近未来的 2029 年,洛杉矶犯罪率高企,催生了由 AI 主导的司法系统 “Mercy(仁慈)”。警探克里斯・雷文(克里斯・帕拉特 饰)作为该系统的核心设计者之一,却突然被指控谋杀妻子,所有证据都指向他是凶手。
    他被绑在 “审判椅” 上,必须在 90 分钟内,利用自己参与研发的 “天眼” 系统,在海量监控数据中找到翻案证据,否则将被 AI 法官当庭判处死刑。随着调查深入,他逐渐发现这场审判背后,隐藏着针对整个司法系统的巨大阴谋,而自己只是一枚棋子。影片以紧凑的 “桌面电影” 形式,探讨了人工智能、程序正义与人性之间的深刻矛盾。
  • 人类清除计划5 The Forever Purge (2021)

    人类清除计划5 The Forever Purge (2021)

    《人类清除计划 5:无限清除》打破了 “清除夜” 的时间限制。当一群极端分子决定永久废除清除计划的 12 小时规则,将暴力与混乱无限延续时,整个美国乃至世界都陷入了无政府状态。
    一对墨西哥裔夫妇被迫穿越危机四伏的美国,试图回到家乡。影片将视角从美国本土拓展到了边境,探讨了移民、种族主义与国家身份等议题,展现了当秩序彻底崩塌后,人类社会的终极形态。
  • 人类清除计划4 The First Purge (2018)

    人类清除计划4 The First Purge (2018)

    《人类清除计划 4:第一次清除》作为系列前传,回溯了 “清除计划” 的起源。故事设定在 2022 年,美国新成立的 “NFFA” 政府为了测试社会控制效果,在 Staten Island 开展了一场为期 12 小时的 “清除实验”。
    在这个被隔离的岛屿上,居民们第一次体验到了合法暴力的疯狂。影片不仅展现了暴力的失控,更揭露了这场 “实验” 背后,政府为了清除底层人口、巩固统治而精心策划的阴谋,为整个系列的世界观奠定了基础。
  • 人类清除计划3 The Purge: Election Year (2016)

    人类清除计划3 The Purge: Election Year (2016)

    《人类清除计划 3:大选之年》将故事推向了政治舞台的中心。在又一个清除夜来临之际,一位主张废除清除计划的总统候选人成为了既得利益集团的眼中钉,遭到疯狂追杀。
    前作中的老兵巴恩斯再次挺身而出,与其他反抗者一起,保护候选人穿越危机四伏的城市街头。影片不再局限于个人生存,而是将 “清除计划” 作为一种政治工具进行深刻批判,探讨了权力、阶级与民主的本质,是整个系列中社会讽刺意味最强烈的一部。