BYO-VP

BYO-VP

本文说明座席浏览器侧如何把实时音频交给企业自建的 Processor。页名 BYO-VP。协议、采样率和回调在 JS SDK 实时语音流开发指南。

快速阅读

BYO-VP 跑在 WebRTC 座席的实时语音流上。观察点是集成 JS SDK 的座席浏览器:local 是座席麦克风,remote 是通话对端,通常是客户。

情绪识别、关键词识别是这条链上的辅助结果。它们不是 RASR,也不是挂机后的 ASR。座席工作台已有的实时转写事件名是 transcript,不要改叫 RASR,也不要当成 Processor 的返回值。

两种模式:

mode音频是否回灌通话当前限制
sendonly否,只分析local、remote 都可以
sendrecv是,用处理后的音频替换座席麦克风仅 source: "local"。同一 SDK 实例最多一个

remote 配 sendrecv 为无效配置,SDK 触发 processorError。

阅读地图

要做的事文档
选模式、确认和 RASR / ASR / transcript 的差别本文
填 CTILink.setup()、WebSocket 消息、采样率、错误码JS SDK 实时语音流开发指南
呼入 / 外呼机器人的识别与合成BYO-ASR、BYO-TTS

配置项

一个 Processor 是一条独立 WebSocket。在 CTILink.setup() 的 media.audio.processors 里配置。未配置该项时,SDK 不建立语音流连接。

参数必填默认说明
id是—同一 SDK 实例内唯一
source否locallocal 或 remote
mode否sendonlysendonly 或 sendrecv
transport.protocol否websocket目前仅 websocket
transport.url是—仅 wss://

可同时配置多个 sendonly。最多一个 sendrecv,且 source 必须是 local。建议单座席 Processor 不超过 5 个。没有 mixed 源;要同时处理两侧时,配两条 sendonly,用同一个 uniqueId 在服务端关联。

常见配法:

用途sourcemode回传音频
把座席麦克风送到自有服务做分析localsendonly否
把客户侧音频送到自有服务做分析remotesendonly否
实时质检、情绪、关键词local 或 remotesendonly否
座席辅助提示remotesendonly否
变声、美化、降噪、把处理后的座席声音送给对端localsendrecv是

上表里的分析是 Processor 自己的结果。不要把它记成 RASR、离线 ASR,或座席工作台 transcript 事件。

鉴权由企业的 WebSocket 服务决定。SDK 不规定一种算法。现稿建议的方式是:URL 上的短期 Token、URL 签名、API 网关,或 IP 白名单;并在 SessionStart 里再核对会话信息。

默认音频:sampleRate 16000、channels 1、sampleBits 16、encoding pcm_s16le。载荷是裸 PCM,不含 WAV 头。

生效

  1. 页面 HTTPS,浏览器已授权麦克风,座席为 WebRTC。
  2. processors 已写入 CTILink.setup(),地址为 wss://。
  3. 座席发起 WebRTC 通话后,SDK 自动建连并发送 SessionStart。开发者不手动创建或关闭 Processor。
  4. Processor 返回 Session(Ready) 后开始收 Uplink。只有 local + sendrecv 才回 Downlink,并替换送给对端的座席声音。
  5. 通话结束时 SDK 发送 SessionEnd。连接异常断开后,SDK 会新建 Session,服务端不要沿用旧 Session。

Processor 语音流与 WebRTC 媒体流分开。启用 Processor 不改变浏览器与媒体服务器之间的 WebRTC 编码码率。

验收

  • 浏览器里能看到到 Processor 的 WebSocket 长连接。
  • 服务端依次收到 SessionStart、持续 Audio、SessionEnd。
  • sendonly:source 对应的一侧有持续 PCM,通话对端声音不被替换。
  • sendrecv:对端听到的是处理后的座席声音;回包为连续 PCM,格式与 Session 一致,无 WAV 头。
  • remote + sendrecv:收到 processorError,不建立回灌。
  • 情绪或关键词结果只出现在 Processor 业务日志中,座席工作台转写事件仍叫 transcript。

Did this page help you?