Brave
@47c132035ed7a1105a867946b99d67af 开源软件研究 公开
讨论 如何在Linux上安装Speaches以配合Trilium AI使用

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

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