自动语音下发
since 4.0.19
企业应用调用流媒体 HTTP 接口下发预置语音;流媒体打开对讲通道播放本地音频,并将结果写入 Kafka。
基本流程
- 流媒体启动时若从未同步过,从远程音频 API 全量同步到本地,并转码为 8 kHz / 单声道 / 16-bit LPCM WAV;之后新素材在第一次下发时按需拉取
- 应用调用 下发语音(可带
priority/guid) VoiceDispatchMgr按(priority DESC, reqTm ASC)排队;同终端同时只执行 1 路;不抢占已执行任务。内存队可用 查询内存队列 观察(与 查询任务 库表分工)- 执行器打开对讲(
dataType=2),播完后关闭通道 - 凡终态向 auto-voice-evt 发送结果(
result1–4)
超时从入参 tm(epoch millis)起算,默认 30 秒(voice.dispatchTimeoutMs)。
与人工对讲
同一通道已被人工对讲占用时,自动下发立即失败(result=2),不踢人、不等待。详见 对讲集成指南。
音频库
voice为 string(音频编号);本地文件{voice.localDir}/{voice}.wav- 从未同步过:启动时全量一次(查询
GET {voice.remoteApi.baseUrl}/v1/voice,下载GET {voice.remoteApi.baseUrl}/v1/voice/file?voice=,转码后落盘,并写.voice-synced) - 之后不定时同步。任务执行时若本地无该
voice,按需下载并与开对讲并行(voice.fetchTimeoutMs,默认 4 秒) - 按需拉取或转码失败 →
result=2(不会空等到任务超时) - 远端查询失败时不删除本地已同步文件
- 客户端可 查询音频库 并 试听(本地 WAV,不在试听路径从远程拉取)
司机回传音频本版本不处理。