Jetson 本地语音助手 - 1

Jetson 本地语音助手

在 Jetson 上运行 GPU 加速的本地语音服务——语音识别 + 语音合成延迟低于 180ms,完全离线,无需云端。

入门15min语音 AI
语音Jetsonasrttslocal

这个方案能帮你做什么

做语音助手最头疼的是延迟——云端语音 API 每次来回要多等 200-500ms,对话体验很不自然。这个方案把语音识别和语音合成直接跑在 Jetson GPU 上,整个语音处理只要不到 180ms。

核心价值

好处具体说明
极低延迟语音识别 + 语音合成总共不到 180ms——快到可以自然对话
完全本地运行所有语音处理在设备上完成,不需要联网,数据不出你的网络
即用型 API标准 HTTP + WebSocket 接口——你网络内的任何设备都能发送音频、获取结果
实时流式识别用户还在说话就能拿到识别结果,不用等说完

适用场景

场景怎么用
语音控制机器人机器人麦克风采集语音 → Jetson 实时识别 → 你的大模型生成回复 → Jetson 合成语音播放
智能信息亭访客开口提问 → 立即转文字 → 对接知识库 → 一秒内语音回答
工业语音指令操作员解放双手下指令 → Jetson 在本地识别 → 直接触发动作,不依赖云端
语音物联网网关多个设备向 Jetson API 发送音频 → 集中处理,GPU 加速

使用须知

核心硬件设备

设备说明必需
NVIDIA Jetson Orin NX 16GBGPU 加速运行语音识别和语音合成✓ 必选

网络要求

  • 部署电脑需要能通过 SSH 连接到 Jetson
  • 首次部署需要联网(下载约 900MB AI 模型)
  • 部署完成后可完全离线使用

集成接口

websocket

实时语音识别转写流

/asr/stream · Port: 8621
{"text":"hello world","is_final":true,"language":"en"}
http_stream

语音合成音频流

/tts/stream · Port: 8621 · Method: POST

部署方案

下载与安装

套餐: 部署语音服务 {#default}

在 Jetson 设备上部署 GPU 加速的语音识别(ASR)和语音合成(TTS)服务。

设备用途
NVIDIA Jetson Orin NX 16GBGPU 加速运行 ASR + TTS,支持双语言模式

部署完成后你可以:

  • 实时流式语音识别
  • 低延迟语音合成(支持多种音色)
  • 两种语言模式:中文 + 英文(Matcha TTS + Paraformer ASR)或纯英文(Kokoro TTS + Zipformer ASR)
  • 通过 HTTP + WebSocket API(端口 8621)调用

前提条件: Jetson 已安装 JetPack 6.x · 可通过 SSH 连接 · 需要联网拉取镜像(约 8GB)

步骤 1: 部署语音服务 {#speech_service type=docker_deploy required=true config=devices/docker_remote.yaml}

将语音识别和语音合成服务部署到你的 Jetson 设备。预构建镜像已包含所有依赖和模型,拉取后即可运行。

部署目标: 远程部署 {#speech_remote type=remote config=devices/docker_remote.yaml default=true}

通过 SSH 一键部署到 Jetson。

接线

  1. 将 Jetson 连接到网络
  2. 输入 Jetson 的 IP 地址和 SSH 凭据
  3. 点击 部署 — 系统会自动拉取预构建镜像并启动服务

部署完成

服务已在 http://<Jetson IP>:8621 运行。快速测试:

# 检查服务状态
curl http://<Jetson IP>:8621/health
# 预期返回: {"asr": true, "tts": true, "streaming_asr": true}

# 测试语音合成
curl -X POST http://<Jetson IP>:8621/tts \
  -H "Content-Type: application/json" \
  -d '{"text": "你好,我是你的语音助手。", "sid": 0}' \
  --output test.wav

# 测试语音识别
curl -X POST http://<Jetson IP>:8621/asr \
  -F "file=@test.wav"

故障排查

问题解决方法
SSH 连接失败确认 IP 地址和凭据正确。先在电脑上试 ssh 用户名@IP
镜像拉取慢镜像压缩后约 8GB,确保 Jetson 网络稳定
服务未启动查看日志:ssh 用户名@IP "cd jetson-voice && docker compose logs"
健康检查失败首次启动需约 40 秒预热模型,稍等后重试
内存不足确保 Jetson 有 16GB 内存,且没有其他 GPU 任务在运行

部署目标: 本机部署 {#speech_local type=local config=devices/docker_local.yaml}

直接在当前机器上部署(需要 NVIDIA GPU)。

接线

  1. 确保已安装 Docker 和 NVIDIA Container Toolkit
  2. 点击 部署 开始安装

注意: 首次启动可能需要 10-15 分钟下载 Docker 镜像和初始化模型。

部署完成

服务已在 http://localhost:8621 运行。快速测试:

# 检查服务状态
curl http://localhost:8621/health
# 预期返回: {"asr": true, "tts": true, "streaming_asr": true}

# 测试语音合成
curl -X POST http://localhost:8621/tts \
  -H "Content-Type: application/json" \
  -d '{"text": "你好,我是你的语音助手。", "sid": 0}' \
  --output test.wav

# 测试语音识别
curl -X POST http://localhost:8621/asr \
  -F "file=@test.wav"

故障排查

问题解决方法
未找到 NVIDIA 运行时安装 NVIDIA Container Toolkit:sudo apt install nvidia-container-toolkit && sudo systemctl restart docker
端口 8621 已被占用停止占用 8621 端口的服务
容器不断重启查看日志:docker logs jetson-voice-speech-1
健康检查失败首次启动需约 40 秒预热模型,稍等后重试

步骤 2: 语音演示 {#voice_demo type=voice_demo required=false config=devices/voice_demo.yaml}

直接在此页面体验已部署的语音服务。输入 Jetson IP 地址,然后使用下方面板测试语音识别和语音合成。

语音识别(ASR)

按住 录音 按钮说话,语音将被实时识别,转录文字会即时显示在屏幕上。

文字转语音(TTS)

输入任意文字,点击 生成 即可听到语音播放,同时显示波形可视化。

故障排查

问题解决方法
麦克风无法使用浏览器弹出权限请求时请点击允许
ASR 没有识别结果确认服务正在运行:curl http://<IP>:8621/health
TTS 播放无声音检查浏览器音量是否静音,尝试较短的文字

部署完成

恭喜!本地语音助手服务已运行。

快速验证

  1. 在浏览器打开 http://<Jetson IP>:8621/health — 所有字段应显示 true
  2. 用上面的 curl 命令测试语音合成
  3. 将你的应用连接到 API 接口

API 接口一览

接口方法说明
/healthGET服务健康检查
/asr/streamWebSocket实时流式语音识别
/ttsPOST文字转语音(返回 WAV)
/tts/streamPOST流式文字转语音(返回原始 PCM)
/asrPOST离线语音识别(上传 WAV 文件)

后续步骤

  • 接入你的大语言模型,完成语音助手流水线:ASR → LLM → TTS
  • 部署后可在"设备管理"页面调整 TTS 说话人 ID(0-9)
  • Jetson Voice GitHub
联系我们
获取方案参考设计与产品选型支持。
您是否使用过我们的产品?