🔥 BRAVE 質押池已上線 — 在錢包搜尋 BRAVE 即可委託

如何在Linux上安装Speaches以配合Trilium AI使用

    • #32068

      Speaches是基地的Trilium AI插件的后端配套语音转录服务工具。本文将探讨如何在主机(而非通过 Docker 容器)上全新安装Speaches ,并希望能直接用官方推荐的方式(含 CLI 工具和模型管理)运行。 首先,可参考官方 Speaches 本地部署指令。

      Python (requires Python 3.12+ and uv package manager)
      
      git clone https://github.com/speaches-ai/speaches.git
      cd speaches
      uv venv
      source .venv/bin/activate
      uv sync --all-extras
      uvicorn --factory --host 0.0.0.0 speaches.main:create_app

      以下将逐行解释,并提供完整的、标准的主机本地部署流程。

      一、环境前提

      • Python 3.12+(务必用新版)
      • uv 包管理器(不是pip,uv官方文档

      二、详细步骤

      1. 安装 Python 3.12+ (按需)

      Ubuntu 用户可这样安装最新版 Python(如未自带3.12):

      sudo apt update
      sudo apt install -y software-properties-common
      sudo add-apt-repository ppa:deadsnakes/ppa
      sudo apt update
      sudo apt install -y python3.12 python3.12-venv python3.12-dev

      2. 安装 uv 包管理器

      uv 是一个高速的 Python 包管理工具,比 pip 更快更现代。

      sudo apt install pip
      sudo pip install uv
      uv --version

      3. 克隆 Speaches 源码

      git clone https://github.com/speaches-ai/speaches.git
      cd speaches

      4. 创建虚拟环境

      官方用法:

      uv venv

      这会自动创建 .venv 虚拟环境目录。

      5. 激活虚拟环境

      source .venv/bin/activate

      6. 安装所有依赖(含所有扩展)

      uv sync --all-extras

      > 这一步会自动解析 pyproject.toml,安装所有依赖,等价于 pip install -e .[all]

      7. 启动服务

      uvicorn --factory --host 0.0.0.0 speaches.main:create_app
      • 这会监听所有网卡8000端口(可用 --port 8000 指定端口)
      • 默认可以直接访问 http://localhost:8000/docs 查看API文档

      三、模型下载与管理

      激活虚拟环境后,也可以用官方 CLI 下载模型:

      查询可用模型

      uvx speaches-cli registry ls --task automatic-speech-recognition

      下载模型

      uvx speaches-cli model download Systran/faster-whisper-medium 或查上一步输出的模型ID下载

      查看已安装模型

      uvx speaches-cli model ls --task automatic-speech-recognition

      四、实现开机时自动启动

      大多数现代 Linux 发行版(如 Ubuntu, Debian, CentOS, Fedora)都使用 systemd 来管理系统服务。这是最稳定和推荐的方法。

      第 1 步:创建服务文件

      首先,我们需要创建一个 systemd 服务单元文件。

      使用您喜欢的文本编辑器(如 nanovim)创建一个新文件:

      sudo nano /etc/systemd/system/speaches.service

      然后,将以下内容复制并粘贴到文件中。

      [Unit]
      Description=Speaches OpenAI Compatible Server
      After=network.target
      
      [Service]
      # 运行服务的用户和用户组,建议使用您的普通用户名
      User=your_username
      Group=your_username
      # 替换为您的项目实际所在的目录
      WorkingDirectory=/path/to/your/project/speaches
      
      # 服务的启动命令。注意这里使用的是虚拟环境中的uvicorn
      ExecStart=/path/to/your/project/speaches/.venv/bin/uvicorn --factory --host 0.0.0.0 speaches.main:create_app
      # 避免实时转写报错
      Environment="LOOPBACK_HOST_URL=http://localhost:8000"
      
      # 确保服务在失败时会自动重启
      Restart=on-failure
      RestartSec=5s
      
      [Install]
      WantedBy=multi-user.target

      重要:

      • UserGroup: 将 your_username 替换为你登录 Linux 系统的用户名。
      • WorkingDirectory: 将 /path/to/your/project/speaches 替换为 speaches 项目的 绝对路径
      • ExecStart: 同样,将 /path/to/your/project/speaches 替换为项目的绝对路径。这里我们直接指定了虚拟环境 .venv/bin/ 中的 uvicorn 可执行文件,这样可以确保使用了正确的 Python 环境和依赖。

      第 2 步:重载、启用并启动服务

      保存并关闭 编辑器 (在 nano 中,按 Ctrl+X,然后按 Y,再按 Enter)。

      重载 systemd,使其识别到新的服务文件:

      sudo systemctl daemon-reload

      启用服务,这样它就会在开机时自动启动:

      sudo systemctl enable speaches.service

      立即启动服务,无需重启电脑:

      sudo systemctl start speaches.service

      第 3 步:检查服务状态

      你可以随时检查服务的运行状态,看看是否有错误:

      sudo systemctl status speaches.service

      如果看到 active (running),说明服务已成功运行。还可以使用 journalctl -u speaches.service -f 来实时查看服务的日志输出。

      附录:关于硬件配置与类似工具

      speaches 采用的是 Faster-Whisper 后端,其资源消耗和 Faster-Whisper 基本一致。官方文档建议:

      对于 production,推荐16GB内存、8核CPU、带8GB显存的NVIDIA显卡。

      具体来说,可以区分如下情况

      • 个人测试/轻量使用:4核CPU + 8G内存 + 50G硬盘(可无GPU,速度慢)
      • 小团队/小型服务:8核CPU + 16G内存 + 100G硬盘 + 8GB显存GPU
      • 中大型/多用户:16核CPU + 32G内存 + 200G硬盘 + 16GB+显存GPU

      类似工具,可以重点关注:

      • 需要说话人分离/逐词字幕WhisperX(或 whisper-diarize)
      • 需要本地批量、极简命令行whisper-ctranslate2whisper-standalone-win
      • 需要后期人工校对/字幕编辑wscribe
      • 需要实时转写Whisper-StreamingWhisperLive
      • 只要极简 APIWhisper-FastAPI

  • 抱歉,回覆主題必需先登入。