内容
# 开放实时语音交互平台
开放实时语音交互平台是一款开放的、与模型无关的运行时环境,用于持续语音代理。它将截止日期敏感的交互连续性与较慢的模型认知分开,并保留了原生双工提供商功能,而不是强制每个模型都通过文本聊天抽象。
> [!IMPORTANT]
> **免责声明:** 这是一个独立的开源项目。它**不是官方 OpenAI 项目**,与 OpenAI 无任何关联。
## 当前状态
**版本 26.7.15** (`v26.7.15`) 旨在实现与 **GPT-Live 相似** 的体验:精致的实时语音 UI、开放的神经语音(Piper)、客户端音频智能、WebRTC 会话路径、语义端点检测、**真正的工具 + 多代理沙盒**,以及持久的配置文件/内存 — 同时保持原始视觉效果和模型中立性。
完整的功能对齐矩阵:[`docs/gpt-live-parity.md`](docs/gpt-live-parity.md) · 架构路线图:[`docs/architecture-roadmap.md`](docs/architecture-roadmap.md) · 开放源码指南:[`docs/open-source-stack.md`](docs/open-source-stack.md) · 致谢:[`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md) · 版本说明:[`docs/release-26.7.15.md`](docs/release-26.7.15.md)
### 版本 26.7.15 新增功能
**语音界面**
- 最简化的黑色实时界面 + 设置向导;实时存在主题令牌。
- 全屏语音存在,包含 11 种命名模式和多层程序化球体。
- 内联布局切换、实时双重转录、对话模式、说话风格轴。
- 按键说话、插入式对话(带本地鸭叫音效)、摄像头/屏幕分享功能、视觉卡片。
- **Piper 优先的语音列表**(Lessac、Amy、Ryan 等)+ API 兼容的备用方案。
- 品牌标识和软件包版本:**26.7.15**。
**开放 AI 语音**
- 生产路径:级联 → OpenAI 兼容的 **Piper** 文本转语音(通过 LocalAI、openedai-speech 或网关本地 Piper)。
- 网关:`GET /v1/tts/status`、`POST /v1/tts/speak`;演示用的表单备用方案。
- 许可证和署名信息在 `THIRD_PARTY_NOTICES.md` 中。
**客户端音频智能**
- 类似 RNNoise 的噪声抑制工作单元(10 毫秒帧)。
- 类似 Silero 的语音活动检测工作单元 + 能量混合。
- NLMS 自适应回声消除 + 窗口化正弦插值。
**代理、工具和沙盒**
- 内部代理(无 OpenCode):搜索、深度研究池、计算器、时间、身份、配置文件。
- 路径安全沙盒文件 I/O + 可选的 Chrome/Edge 无头浏览 / 截图 / PDF。
- 多代理池(≤50)带有 SSE 进度、代理类和破坏性操作确认。
- 持久的用户配置文件(事实编辑器、拖放重新排序)+ 会话内存导出。
- 参见 `sandbox/README.md` 和 `docs/architecture-roadmap.md`。
**传输、提供商和任务**
- 二进制 WebSocket PCM + **网关原生 WebRTC**(用于事件/PCM 的 DTLS 数据通道)。
- 提供商边缘 WebRTC(OpenAI 实时 SDP)当密钥可用时。
- `POST /v1/webrtc/offer` 回答浏览器出价;`POST /v1/realtime/session` 用于边缘密钥。
- **Moshi** 原生双工:`--provider moshi --moshi-url ws://127.0.0.1:8998/api/chat`。
- 语义端点检测(基于转录的早期结束 ~200 毫秒)。
- 视觉卡片 + 实时翻译演示(模拟)/ 语言模式指令。
- 任务生命周期、证据链接、带有去重的恢复。
- 可配置的 `--task-deadline-ms`。
- 开发者 API:`GET /health`、`/v1/meta`、`/v1/sessions`、`/v1/agent/*`、`/v1/sandbox/*`、`/v1/profile`、MCP 工具(+ 可选 API 密钥)。
- 会话持久性(`data/openlive-sessions` 下的 JSONL)、流式安全保持、MCP HTTP 客户端。
### 仍缺失的功能(与完整的 GPT-Live 对比)
- 完整的 RTP Opus 媒体平面,带有数据包 FEC(数据通道 PCM 目前可用)。
- 官方 RNNoise WASM / Silero ONNX 供应商权重(接口已准备好)。
- 转录编辑;生产实时翻译 LLM 跳转。
## 要求
- Rust 1.83 或更新版本。
- 现代的 Chromium、Firefox 或 Safari 浏览器。
- 麦克风权限。
## 运行离线模拟
```bash
cargo run -p openlive-gateway --release
```
打开 `http://127.0.0.1:8787` 并选择 **开始**(或在按键说话模式下按 `Space`)。模拟器使用轻量级语音模型与您交互,因此您可以测试插入式对话、转录和任务,而无需外部服务。
## 运行开源神经语音(推荐)
使用任何 OpenAI 兼容的堆栈,暴露以下接口:
- `POST /v1/audio/transcriptions`
- `POST /v1/chat/completions`
- `POST /v1/audio/speech`,带有 `response_format: "pcm"`(首选 24 kHz 单声道 PCM16)
以下是使用 Piper 样式语音 ID 的示例:
```bash
# API 密钥:仅在环境中设置 - 永远不要将密钥提交到此存储库中。
# 如果省略或留空,则适用于本地未经身份验证的服务器
export OPENLIVE_MODEL_API_KEY
cargo run -p openlive-gateway --release -- \
--provider openai-compatible \
--model-base-url http://127.0.0.1:8000/v1 \
--asr-model whisper-1 \
--llm-model your-chat-model \
--tts-model tts-1 \
--voice en_US-lessac-medium
```
有关 LocalAI / openedai-speech / Piper 连接的详细信息,请参见 [`docs/open-source-stack.md`](docs/open-source-stack.md)。
## 运行原生实时语音端点
```bash
# 从 shell 环境中读取密钥(不要将密钥放入项目文件中)
export OPENLIVE_MODEL_API_KEY
cargo run -p openlive-gateway --release -- \
--provider openai-realtime \
--realtime-url wss://api.openai.com/v1/realtime \
--realtime-model your-realtime-model \
--voice alloy
```
## 确定性重放
```bash
cargo run -p openlive-runtime --bin openlive-replay -- \
--input fixtures/turn-completion.jsonl
```
## 持久性、安全性和 MCP
```bash
# 默认情况下:在 data/openlive-sessions 下写入会话事件/任务
cargo run -p openlive-gateway --release
# 禁用持久性或安全性:
cargo run -p openlive-gateway --release -- --no-persist --safety false
# 附加远程 MCP 工具主机:
cargo run -p openlive-gateway --release -- --mcp-url http://127.0.0.1:3100/mcp
# 适用于复杂回合的深度模型 + 本地知识笔记:
cargo run -p openlive-gateway --release -- \
--provider openai-compatible \
--model-base-url http://127.0.0.1:8000/v1 \
--llm-model llama3.2 \
--deep-llm-model qwen2.5-32b \
--knowledge-dir ./knowledge
# 混合模式:快速本地双工 + 深度级联用于复杂回合
cargo run -p openlive-gateway --release -- \
--provider hybrid \
--model-base-url http://127.0.0.1:8000/v1
# 本地 Chronos 全双工延迟门控
cargo run -p openlive-runtime --release --bin openlive-full-duplex-bench -- --turns 50
```
## 测试
```bash
cargo test --workspace --release
# 集成测试需要调试二进制文件:
cargo build -p openlive-gateway && cargo test -p openlive-gateway --test task_lifecycle
node --test apps/openlive-gateway/web/tests/*.test.js
```
## 许可证
OpenLive 源代码使用 Apache-2.0 许可证。第三方语音堆栈(例如 Piper)有其自己的许可证 - 请参见 `THIRD_PARTY_NOTICES.md`。建议将 GPL 文本转语音服务器**独立运行**,通过 HTTP 接口访问。