跳到正文
原文
Hacker News· iamnothere·· 3 小时前精选AI 评分39

Partyline:基于 Reticulum 和 LXST 的群体语音应用

Partyline: A group voice application for Reticulum, built on LXST

AI 导读

Partyline 是一款基于 Reticulum、使用 LXST 构建的群体语音应用,支持加密实时多人语音、房间权限控制、拨号接入以及 GUI 和终端客户端。

推荐理由

项目提供可直接运行的服务器、GUI 和终端客户端,以及多套房间权限、编码和 PTT 配置,便于评估不同网络条件下的部署方案。

正文 · AI 翻译

partyline

一款适用于 Reticulum 的群组语音应用,基于 LXST 构建,并受 Mumble 启发

Screenshot from 2026-09-04 07-05-40

功能

  • 通过任何可提供 >6 kilobits per second 传输能力的 Reticulum 传输方式,实现加密的实时群组语音和音频
  • 易于托管的轻量级服务器和协议。启动 Partyline 服务器只需不到 30 seconds。
  • 按房间进行访问和频道控制。访问方式可选:开放、仅限已识别用户、身份哈希允许列表或密码。服务器也可要求密码或允许列表
  • 拨入:启用后,rnphone 以及 Sideband、MeshChatX 等其他 LXST 客户端也可以拨打服务器并进入房间
  • 每个房间都有自己的 LXST 编解码器,可由服务器配置。快速链路使用 Opus,慢速链路则可使用低至 700 bps 的 Codec2。
  • 支持多语言的 GUI 和终端客户端

安装

需要 Python 3.11 或更新版本

pip install partyline

若要添加系统级按键通话快捷键,请添加可选附加项:

pip install "partyline[hotkeys]"

图形客户端使用 Tk,而 pip 无法安装它。在大多数操作系统/发行版中,它可能已经由系统安装。如果没有:

在 Debian 或 Ubuntu 上运行 sudo apt install python3-tk,在 Fedora 上运行 sudo dnf install python3-tkinter。

从源代码安装

需要 Python 3.11 或更新版本、Reticulum 和 LXST

git clone https://github.com/RFnexus/partyline
cd partyline
pip install .

或者通过 rngit 安装:

git clone rns://4cf8a0651c4d73cacd0f93ac1d95e80a/public/partyline

若要安装系统级按键通话快捷键,请使用以下命令安装可选附加项:

pip install ".[hotkeys]"

这会安装三个命令:partyline、partyline-server 和 partyline-client。

运行

启动 GUI 客户端:

partyline

“连接”会打开服务器浏览器。你可以通过其哈希值添加服务器,也可以使用服务器浏览器查找通过 announces 发现的服务器。双击某个房间即可加入。“设置”中包含音频设备、发送模式、按键通话快捷键和界面外观选项 Screenshot from 2026-09-04 07-06-15

终端客户端

partyline-client HASH --name Bob --room Lobby

命令为:/join, /say, /poke, /who, /mute, /deaf

输入 /ptt 可切换按键通话

或以操作员身份使用:/kick、/ban、/smute、/op 和 /move

服务器

启动服务器:

partyline-server --name "My server" --profile opus-high

服务器会打印供客户端使用的目标哈希;如果启用了拨入并为房间配置了 rnphone 用户拨打的号码,也会打印该号码。要配置房间、访问列表、操作员、服务器密码和拨入功能,请复制 server_example.json 并使用以下命令启动:

partyline-server --config server.json

房间可用的 --profile 编解码器:

  • opus-high - Opus 语音,16 kbps
  • opus-med - Opus 语音,8 kbps
  • opus-low - Opus 语音,6 kbps
  • c2-3200 - Codec2,3200 bps
  • c2-2400 - Codec2,2400 bps
  • c2-1200 - Codec2,1200 bps
  • c2-700 - Codec2,700 bps
  • music-low - Opus 音乐,14 kbps
  • music-med - Opus 音乐,28 kbps
  • music-high - Opus 音乐,56 kbps

有关完整选项列表,请参阅 server_example.json。 opus-high-med-low 和 Codec2 模式用于语音,music-high-med-low 用于播放流式音乐或向房间广播。一般来说,请使用链路能够承载的最高比特率

安装为 systemd 单元

要作为 systemd 单元安装,请使用 which partyline-server 查找服务器命令,然后创建 /etc/systemd/system/partyline.service:

[Unit]
Description=Partyline voice server
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=partyline
ExecStart=/usr/local/bin/partyline-server --config /home/partyline/server.json
Restart=on-failure

[Install]
WantedBy=multi-user.target

然后:

sudo systemctl daemon-reload
sudo systemctl enable --now partyline

音乐/广播房间 & 机器人

服务器操作员还可以使用 LXST 的 Opus CELT 配置文件,为高质量音乐和音频配置仅广播房间。可选项为 music-high、music-med 和 music-low。音乐房间是一种特殊房间,只有列出的身份才能发送音频。在 music 中添加它们的身份哈希,以逗号分隔

{"name": "Broadcast", "profile": "music-med", "music": ["0123456789abcdef0123456789abcdef"], "description": "Music/broadcast room. Only listed identities may talk. Uses LXSTs Opus CELT profile"}

Screenshot from 2026-09-05 17-07-35

示例 Music Bot 可在 bots/music_bot.py 下找到。使用 pip 安装 Partyline 后,可通过 python3 -m partyline.bots.music_bot 运行

按键通话(慢速链路)房间

PTT(或慢速模式)房间是专为较慢链路设计的房间,例如 LoRa、裸铜线 bitbashing 和数据包无线电。任何稳定吞吐量超过 ~3.5 kbps 的连接都可以使用 PTT 房间。它们可以与常规房间共存于同一 Partyline 服务器中,使快速客户端和慢速客户端都能通过语音进行通信。

与普通房间相比,这里存在少许延迟。PTT 房间会将传出音频打包至链路的 MTU,以更少、更满的数据包发送,而不是每个数据包只发送一帧;同时,每位监听者都会获得更大的接收抖动缓冲区,以平滑 LoRa 等无线电介质上突发式到达的数据。

使用 "ptt": true 将任意房间标记为按键通话。也可选择设置 "ptt_jitter_ms" 以更改缓冲区深度。建议将 PTT 房间与 codec2 配置文件搭配使用。

{"name": "LoRa 1200", "profile": "c2-1200", "ptt": true, "description": "Slow-link push to talk"}
{"name": "Packet Radio Net 700",  "profile": "c2-700",  "ptt": true, "ptt_jitter_ms": 9000}

LLM 披露声明

Kimi K3(https://www.kimi.com/en)的第三方托管 API 被用于以下任务:

  • I18N 本地化和 UI gettext() 实现
  • 翻译 UI 元素以及 eo、es、nl 和 ru PO 文件
  • 其他调试工作以及 rnsconfig.py RNS 辅助工具的创建

UI 翻译

.po 文件位于 partyline/locale/

要更新翻译,请修改英文 msgid 下的 msgstr 行

要添加语言,请将 partyline.pot 复制到新的 .po 文件,并将其添加到 partyline/i18n.py 中的 LANGUAGES。

运行 python partyline/locale/compile.py,然后创建一个包含你的更改的拉取请求,或将其提交至以下 LXMF 地址:

致谢

来源:Hacker News · github.com