腾讯云实时 ASR 语音识别集成

lishihuan大约 1 分钟

腾讯云实时 ASR 语音识别集成

与阿里云并列,经 AsrStreamProtocol.fromTencent() 映射为同一套 asr_* 事件;H5 VoiceInput.vue 无需按厂商拆分逻辑。

相关笔记

文档内容
../common/ASR流式协议.md统一协议 + 腾讯 vendorEvent 对照表
../common/语音输入-VoiceInput实现链路.mdhold-send、长按消息改字
../aliyun/ASR语音识别集成.md阿里云 NUI 分支
../README.md总览与目录
backup/README.md离线源码

一、整体架构

我的页 Switch → asrConfig(默认 tencent)
    ↓ VoiceInput:getAsrTokenUrl() → GET /bus-module/ai/asr/tencent/credential
    ↓ cordovaPlugin.startStreamVoiceRecognize({ credential })
    ↓ FirstPlugin:asr_tencent_start / asr_tencent_stop
    ↓ TencentVoiceRecognizePlugin(QCloud ASR SDK v3)
    ↓ AsrStreamProtocol.fromTencent → JSON event/text/vendor=tencent_asr

二、后端 STS 凭证

  • TencentAsrCredentialServiceissueCredential()
  • 接口GET /bus-module/ai/asr/tencent/credential
  • 配置前缀ai.tencent.*(与 ai.nls.* 同级)
ai:
  tencent:
    secret-id: xxx
    secret-key: xxx
    app-id: 1234567890
    engine-model-type: 16k_zh      # 与原生 ENGINE_MODEL_TYPE 一致
    sts-duration-seconds: 7200
    # sts-region: ap-guangzhou     # 可选

返回字段供 H5 组装 options.credentialappIdsecretIdsecretKeytoken 等),永久密钥不下发


三、Cordova 入参

cordovaPlugin.startStreamVoiceRecognizegetAsrVendor() === 'tencent' 时:

参数说明
options.credentialSTS JSON,经 arg2 传入原生
Actionasr_tencent_start / asr_tencent_stop

阿里云分支为 appKey + token,见 阿里 ASR 文档


四、Android 要点

说明
TencentVoiceRecognizePluginAAIClient 生命周期对齐官方 Demo;cancelstart 复用实例
AsrStreamProtocolonSliceSuccessasr_interimonSegmentSuccessasr_sentence_endonSuccessasr_session_complete

热词(易踩坑)

控制台热词表需 同时

  1. setHotWordId(热词表ID)
  2. setReinforceHotword(1) — 仅设 ID 不生效(官方 Demo 常注释此行,勿删)

常量位置:TencentVoiceRecognizePluginHOTWORD_IDENGINE_MODEL_TYPE


五、排障

adb logcat -s TENCENT_ASR

H5 控制台:[ASR] tencent_asr asr_interim ...

现象排查
凭证失败ai.tencent 配置、app-id、STS 地域
无识别结果麦克风权限、RECORD_AUDIO
热词不生效setReinforceHotword(1) 是否保留
与 TTS 冲突开 ASR 前 StreamInputTtsPlugin 会静默停播(FirstPlugin)

六、离线备份

backup/README.md