SayIt 接入私有化语音识别服务的接口配置方法

文章导读
SayIt 切换私有化语音识别服务的核心动作,是把配置文件里指向云端引擎的端点改成内部服务的 URL,并补上认证信息。私有服务必须能接收 SayIt 提交的音频并返回文本结果,否则只改地址无法完成对接。
📋 目录
  1. A 定位SayIt识别引擎配置文件
  2. B 配置服务地址和认证信息
  3. C 使用 curl 模拟请求验证服务可用性
  4. D 调整超时与重试参数
  5. E 重启SayIt并做端到端录音测试
A A

SayIt 切换私有化语音识别服务的核心动作,是把配置文件里指向云端引擎的端点改成内部服务的 URL,并补上认证信息。私有服务必须能接收 SayIt 提交的音频并返回文本结果,否则只改地址无法完成对接。

私有化接入适用场景是团队希望语音数据不出内网、或需要复用自研识别引擎。操作路径是定位配置文件、替换 engine.url、设置令牌,用 curl 预先验证接口连通性,再重启服务做录音测试。验证标准是模拟请求返回预期文本、日志中出现自定义端点访问记录。风险边界是接口协议(音频编码、字段结构)若与 SayIt 默认不兼容,需要额外写适配层。

定位SayIt识别引擎配置文件

配置文件的位置取决于安装方式。常见位置是 /etc/sayit/config.yml~/.config/sayit/config.yml,Windows 安装版通常放在安装目录下的 config.ini。如果找不到,可以在系统里搜索:

find / -iname "*sayit*" -name "*.yml" -o -iname "*sayit*" -name "*.ini" 2>/dev/null

打开配置文件后,重点找识别引擎段落。默认配置里通常有一个类似 engine.url 的字段,它就是决定 SayIt 向哪个地址发送音频的入口。有些版本会写成 engine.endpointspeech.url,需要以实际文件为准。

配置服务地址和认证信息

假设私有识别服务提供 HTTP POST 接口,接受二进制音频并返回 JSON,配置文件可以这样改:

SayIt 接入私有化语音识别服务的接口配置方法
engine:
  url: "http://192.168.1.10:8080/v1/recognize"
  api_key: "替换为内部服务下发的令牌"
  token_header: "Authorization"
  token_scheme: "Bearer"

url 必须是服务端可访问的完整地址,建议先用 IP 或内网域名。api_key 是占位符,实际值应来自私有化服务的控制台或管理员。token_headertoken_scheme 用来组成请求头,最终会生成 Authorization: Bearer 真实令牌。如果你的服务用的是自定义头如 X-API-Key,就把这两个字段改成对应键名。

使用 curl 模拟请求验证服务可用性

修改配置前,先用手里的测试音频直接打一次后端接口,确认服务本身是通的。下面是一个通用示例:

curl -X POST "http://192.168.1.10:8080/v1/recognize" \
  -H "Authorization: Bearer 真实令牌" \
  -H "Content-Type: audio/wav" \
  `--data-binary` "@test.wav"

执行后观察返回体。如果接口正常,一般会得到一个包含转写文本的 JSON,例如 {"text":"你好"}{"result":"你好"}。如果返回 401 或 403,说明认证方式不对;如果返回 415,说明音频格式不受支持。这一步确定接口协议后再去改 SayIt 配置,能减少联调返工。

SayIt 接入私有化语音识别服务的接口配置方法

调整超时与重试参数

私有化服务如果部署在内网,偶发网络抖动会导致请求中断。在配置文件的 engine 段落里,通常可以设置超时时间和重试次数。建议先设一个保守值:

engine:
  timeout_ms: 8000
  retry_count: 2

timeout_ms 是等待服务端返回的最长时间,单位毫秒。识别长音频时耗时可能超过 8 秒,如果服务端处理时间较长,需要适当调大。retry_count 是请求失败后的重试次数。注意,重试不能解决服务端已经处理出结果但响应丢失的情况,所以这个值不宜设得太大,否则会造成重复转写。

重启SayIt并做端到端录音测试

配置生效需要重启服务。使用 systemd 管理的环境通常执行:

SayIt 接入私有化语音识别服务的接口配置方法
sudo systemctl restart sayit

如果是从命令行启动的,先杀掉旧进程,再用相同方式启动并指定配置文件:

sayit `--config` /etc/sayit/config.yml

重启后录一段测试音频,比如读“今天天气不错”。转写结果应显示在 SayIt 的界面或输出文件中。同时查看运行日志,确认请求确实打到了私有地址:

grep "recognize" /var/log/sayit/sayit.log

如果日志里出现类似 POST http://192.168.1.10:8080/v1/recognize 200 的记录,说明配置已经生效。如果返回 404 或超时,优先检查服务地址是否可达、端口是否开放,其次再回来核对配置字段名。