Skip to main content
ASR 服务使用完全在 Qualcomm NPU 上运行的设备端模型将音频转录为文本。它同时支持基于文件的批量转录和通过 WebSocket 的实时流式转录。

前提条件

确保 Audio Analytics 容器已部署并正在运行。有关设置说明,请参阅运行 Audio Analytics 容器

音频格式要求

可用模型

查询模型端点以获取可用 ASR 模型列表:
响应:
在转录请求中使用此响应中的 name 值。

端点

文件转录

上传 WAV 文件并在单个响应中接收完整转录结果:
响应:
language 设置为模型支持的语言代码,或省略该参数以进行自动检测。

带流式结果的文件转录

上传完整的 WAV 文件,并在文件处理过程中通过 WebSocket 接收转录结果:
服务器确认上传并开始处理。连接到 WebSocket 以接收结果。 WebSocket 结果:

实时音频流

实时发送原始音频数据块,并在说话的同时接收转录结果。

第 1 步 - 创建会话

如果您的音频不是 16 kHz 单声道 PCM,请通过 parameters 声明音频格式:
响应:
vad 参数设置检测到语音结束前的静音等待时长(毫秒)。省略该参数可禁用 VAD,并通过 /transcriptions/flush/transcriptions/close 手动管理语句结束。

第 2 步 - 连接 WebSocket 并发送音频

连接到 ws://localhost:8085/stream。服务器在连接后、任何转录消息到达之前会先发送 connection_established 消息:
通过 WebSocket 以 8192 字节的数据块发送音频:

第 3 步 - 接收结果

服务器针对每个语句发出如下序列:
transcript.text.done 之后,引擎会重置并监听下一条语句。会话保持打开状态,直到您调用 /transcriptions/close

第 4 步 - 关闭会话

响应:
同一时间只能有一个活跃的 ASR 会话。在已有活跃会话时启动第二个会话会返回 HTTP 409 Conflict。请先关闭现有会话。

语音活动检测(VAD)

VAD 控制服务器在流式会话期间如何检测语句的结束。当检测到静音持续达到配置的时长时,服务器会针对当前语句发出 speech_end,随后发出 transcript.text.done。会话保持打开并为下一条语句重置——VAD 不会关闭会话。
如果在容器配置中 SESSION_TIMEOUT_S(默认:30 秒)设置的时长内未收到音频,无论 VAD 状态如何,会话都会自动关闭。

冲刷缓冲的音频

在不关闭会话的情况下强制立即转录缓冲的音频:

Python 示例

故障排除

转录质量差: 请使用 16 kHz 单声道 WAV 文件,并确保音频清晰、背景噪音最小。

后续步骤

文本转语音

在设备端将文本合成为语音

语言翻译

在设备端进行跨语言文本翻译