> ## Content Index
> Fetch the complete content index at: https://www.hubwiz.com/blog/llms.txt
> Use this file to discover other available public pages before exploring further.

# PersonaPlex 7B 全双工语音模型
- URL: https://www.hubwiz.com/blog/personaplex-7b-full-duplex-speech-model/
- Published: 2026-01-27T21:06:45.000Z
- Updated: 2026-01-27T21:06:45.000Z
- Description: PersonaPlex-7B 是 NVIDIA 的开源、实时全双工语音到语音对话模型。
- Author: admin
- Tags: MODEL-ZOO, PERSONAPLEX-7B, #Import 2026-10-14 14:41

PersonaPlex-7B 可以**同时听和说**，所以你终于可以构建支持*人类*对话动态的语音 Agent，即附和、打断、重叠，而无需将 ASR、LLM 和 TTS 级联拼接在一起。

让我们看看该模型，如何运行实时服务器 + Web UI，角色控制如何工作（语音 + 角色提示），以及如何进行离线评估。

## 1、为什么全双工改变了语音 AI 的感觉

经典的语音助手通常是**基于回合的**。

用户说话，系统等待，然后响应。

这通常是因为 ASR > LLM > TTS 管道隐式地强制分割为说话者回合，并且它们在此过程中会产生额外的延迟并丢失非文本线索。

![None](https://www.hubwiz.com/blog/content/images/2026/01/1-SJOVsAMMixMAm2msBujKLA.png)

全双工口语对话模型将问题视为具有**并行流**（用户与 Agent）的**语音到语音生成**，因此模型可以在你说话时用“嗯哼”、“哦！”、快速澄清问题做出反应，甚至让你自然地插话。

PersonaPlex 保持了这些全双工动态，**并且**通过提示添加了**角色控制**（角色 + 语音）。

在顶层，该仓库包含：

- `moshi/` ，支持运行时（服务器 + 离线脚本）的 Python 包。
- `client/` ，用于实时麦克风/扬声器交互的浏览器 UI。
- `assets/` ，你可以用来测试的示例音频 + 提示文件。
- `Dockerfile` \+ `docker-compose.yaml` ，容器化脚手架。

你将主要与 README 记录的两个入口点进行交互：

- **实时服务器**：`python -m moshi.server ...`
- **离线评估**：`python -m moshi.offline ...`

## 2、架构思维模型

PersonaPlex 遵循 Moshi 的双工设置并接收**三个流**：

1. **用户音频**
2. **Agent 文本**
3. **Agent 音频**

音频使用**神经音频编解码器 (Mimi)** 转换为离散 token，然后由**时间 + 深度变换器**处理，并解码回波形。

PersonaPlex 是 **7B 参数**，并以 **24 kHz** 采样率运行音频。

![None](https://www.hubwiz.com/blog/content/images/2026/01/1-FDmCyTM3KmNVsT26zJyYfQ-1.png)

## 3、混合系统提示（角色 + 语音）

PersonaPlex 引入了一个**混合系统提示**，它连接了：

- 一个**文本提示段**（角色调节），强制在 *Agent 文本* 通道上，同时保持 *Agent 音频* 静音
- 一个**语音提示段**（语音调节），其中在 *Agent 音频* 通道上提供简短的语音样本，同时填充 *Agent 文本* 通道

这就是实现**零样本语音克隆**的原因：在语音提示段之后，随后的 Agent 语音以该声音继续。

为了在系统提示期间进行稳定的调节，**用户音频通道被替换为 440 Hz 正弦波**，定界符标记系统提示和对话之间的边界。

## 4、本地运行 PersonaPlex 快速入门

Web UI 流式传输路径使用 Opus，因此首先安装 Opus 开发库：

```bash
# Ubuntu/Debian
sudo apt install libopus-dev

# Fedora/RHEL
sudo dnf install opus-devel

# macOS
brew install opus

```

克隆/下载仓库并安装：

```bash
pip install moshi/.

```

如果你使用的是 **Blackwell 架构的 GPU**，[README](https://github.com/NVIDIA/personaplex?ref=hubwiz.com) 指出了一个额外的 torch 安装步骤。

PersonaPlex 权重托管在 Hugging Face 上，需要接受模型许可，然后设置 `HF_TOKEN`：

```bash
export HF_TOKEN="<YOUR_HUGGINGFACE_TOKEN>"

```

然后运行带有临时 SSL 证书的实时服务器：

```bash
SSL_DIR=$(mktemp -d)
python -m moshi.server --ssl "$SSL_DIR"

```

然后在 `localhost:8998` 打开 Web UI（如果是远程，则使用打印的访问链接）。

如果你没有足够的 GPU 内存，请使用 `--cpu-offload` 并安装 `accelerate`：

```bash
pip install accelerate
SSL_DIR=$(mktemp -d)
python -m moshi.server --ssl "$SSL_DIR" --cpu-offload

```

## 5、语音提示 + 角色提示

PersonaPlex 角色仅仅是 **语音提示** \+ **文本提示**。

- **语音提示**：捕获音色/风格/韵律的音频嵌入
- **文本提示**：自然语言角色/背景/上下文

该仓库附带预设的“语音嵌入”，标记为 NAT（更自然）和 VAR（更多样化）。

- 自然（女性）：`NATF0…NATF3`
- 自然（男性）：`NATM0…NATM3`
- 多样（女性）：`VARF0…VARF4`
- 多样（男性）：`VARM0…VARM4`

你可以像这样传递它们：`--voice-prompt "NATF2.pt"` 等。

## 6、效果良好的角色提示模式

**助手角色**，匹配 FullDuplexBench “用户打断”。

> *You are a wise and friendly teacher. Answer questions or provide advice in a clear and engaging way.*

**客户服务角色**通常包括：

- 公司名称
- Agent 名称
- 所需的验证步骤
- 业务事实（价格/时间/政策）
- 特定场景约束

**随意对话提示**（推荐用于暂停处理/附和/平滑轮流评估类别）：

> You enjoy having a good conversation.

## 7、生成输出 WAV + 转录 JSON 的离线评估

离线模式流式传输输入 wav 并将模型输出流捕获到输出 wav（与输入持续时间相同）。

助手示例：

```bash
HF_TOKEN=<TOKEN> \
python -m moshi.offline \
  --voice-prompt "NATF2.pt" \
  --input-wav "assets/test/input_assistant.wav" \
  --seed 42424242 \
  --output-wav "output.wav" \
  --output-text "output.json"

```

服务角色示例（添加文本提示）：

```bash
HF_TOKEN=<TOKEN> \
python -m moshi.offline \
  --voice-prompt "NATM1.pt" \
  --text-prompt "$(cat assets/test/prompt_service.txt)" \
  --input-wav "assets/test/input_service.wav" \
  --seed 42424242 \
  --output-wav "output.wav" \
  --output-text "output.json"

```

你得到的是：

- `output.wav`：Agent 音频流渲染回波形
- `output.json`：文本输出（用于调试角色依从性或内容）

## 8、如何评估“全双工质量”

PersonaPlex 在 **FullDuplexBench** 上进行评估，该基准测试测量轮流行为，如暂停处理、附和、平滑轮流和打断处理。

需要理解的关键指标是 **接管率 (Takeover Rate, TOR)：**

- **接管**发生在模型说话非静音（超出附和）并有效地“主导”回合时。
- **TOR** 是样本中平均接管发生率；不同的类别对“好”的 TOR 有不同的解释（例如，在暂停处理中，较低的 TOR 更好，因为你*不想*打断）。

PersonaPlex 的论文还介绍了 **Service-Duplex-Bench**，通过 **350 个客户服务问题**（在 400 个 FullDuplexBench 问题之上）扩展了 FullDuplexBench，以评估现实服务场景中的角色依从性。

## 9、将 PersonaPlex 集成到你自己的应用程序中

即使你从未接触过演示 UI，该仓库已经为你提供了一个工作模式：

> **浏览器/客户端 (麦克风 + 扬声器)** \+ **`moshi.server`** **(流式会话) + PersonaPlex 模型 (音频+文本 token 生成)**

你在产品中通常会做什么：

1. 保持 **PersonaPlex 作为专用的“流式语音大脑”服务**，并在你的基础设施边界后面运行提供的服务器（或调整它）
2. 当用户说话时从客户端**发送连续音频**
3. **接收连续音频**（Agent 语音），以及用于日志记录/分析的文本 token
4. 通过更改混合提示输入（语音提示 + 角色提示）**为每个会话交换角色**

它的设计旨在保持双工行为，同时让你无需重新训练即可更改语音和角色。

---

原文链接: [PersonaPlex 7B: "Wait… That Was a Bot?"](https://agentnativedev.medium.com/personaplex-7b-wait-that-was-a-bot-b9da655a647c?ref=hubwiz.com)

汇智网翻译整理，转载请标明出处