Files
msh-system/models-integration/docs/TENCENT_ASR_配置指南.md

5.0 KiB
Raw Blame History

腾讯云语音识别 - 快速配置指南

⚠️ 当前错误

您遇到的错误:

The provided credentials could not be validated. Please check your signature is correct.

原因SecretKey 未配置或配置错误


🔧 解决方案3种方式任选其一

方式1环境变量配置 推荐,最安全)

步骤1获取完整的密钥对

  1. 登录腾讯云控制台
  2. 访问:https://console.cloud.tencent.com/cam/capi
  3. 找到您的 SecretIdAKIDf9OM3TdWBZqqZ1C7k6B0Ypqb6KIzQaT5
  4. 复制对应的 SecretKey通常是一个40位的字符串

步骤2设置环境变量

# 设置环境变量
export TENCENT_SECRET_KEY="你的SecretKey"

# 验证是否设置成功
echo $TENCENT_SECRET_KEY

步骤3重启应用

# 停止应用
./stop.sh

# 启动应用(会自动读取环境变量)
./start.sh

方式2修改 application.yml⚠️ 不推荐生产环境)

编辑配置文件:

tencent-asr:
  secret-id: AKIDf9OM3TdWBZqqZ1C7k6B0Ypqb6KIzQaT5
  secret-key: 你的SecretKey  # 直接填写但不要提交到Git

然后重启应用。


方式3启动时指定参数

java -jar target/models-integration-0.0.1.jar \
  --tencent-asr.secret-key=你的SecretKey

验证配置

重启应用后,访问配置检查接口验证:

curl http://localhost:5081/api/tencent/asr/config-check

成功响应示例

{
  "code": 200,
  "message": "success",
  "data": "✅ 配置已正确加载API密钥验证通过"
}

失败响应示例

{
  "code": 500,
  "message": "fail",
  "data": "❌ 配置错误SecretKey 未配置。\n\n解决方案\n1. 设置环境变量export TENCENT_SECRET_KEY=你的密钥\n2. 或在 application.yml 中配置 tencent-asr.secret-key"
}

🧪 测试接口

1. 配置检查(新增)

curl http://localhost:5081/api/tencent/asr/config-check

2. 健康检查

curl http://localhost:5081/api/tencent/asr/health

3. 一句话识别测试

curl -X POST http://localhost:5081/api/tencent/asr/sentence-recognition \
  -H "Content-Type: application/json" \
  -d '{
    "url": "http://jxz.uj345.cc/static/images/xhs-wechat.mp3",
    "engineModelType": "16k_zh"
  }'

🔐 安全提醒

不要做:

  • 将 SecretKey 提交到 Git 仓库
  • 在代码中硬编码密钥
  • 在公共场合分享密钥
  • 在日志中输出完整密钥

应该做:

  • 使用环境变量管理密钥
  • 使用密钥管理服务(如 Vault
  • 定期轮换密钥
  • 为不同环境使用不同的密钥

📋 当前配置状态

application.yml 中的配置:

tencent-asr:
  secret-id: AKIDf9OM3TdWBZqqZ1C7k6B0Ypqb6KIzQaT5  # ✅ 已配置
  secret-key: ${TENCENT_SECRET_KEY:}              # ❌ 需要配置
  region: ap-shanghai                             # ✅ 已配置
  default-engine-model: 16k_zh                    # ✅ 已配置

问题secret-key: ${TENCENT_SECRET_KEY:} 表示从环境变量读取,如果环境变量不存在,值为空。


🚀 快速开始(完整流程)

1. 获取密钥

访问:https://console.cloud.tencent.com/cam/capi

2. 设置环境变量

export TENCENT_SECRET_KEY="你的40位SecretKey"

3. 重启应用

./stop.sh && ./start.sh

4. 验证配置

curl http://localhost:5081/api/tencent/asr/config-check

5. 测试识别

curl -X POST http://localhost:5081/api/tencent/asr/sentence-recognition \
  -H "Content-Type: application/json" \
  -d '{
    "url": "http://jxz.uj345.cc/static/images/xhs-wechat.mp3",
    "engineModelType": "16k_zh",
    "convertNumMode": true
  }'

💡 常见问题

Q1: 如何知道密钥是否配置成功?

A: 访问 /api/tencent/asr/config-check 接口,会明确告诉您配置状态。

Q2: 重启应用后环境变量丢失怎么办?

A: 将 export TENCENT_SECRET_KEY="..." 添加到 ~/.bashrc~/.zshrc 文件中,或使用启动脚本。

Q3: 可以把密钥写到配置文件吗?

A: 可以,但不推荐。如果必须这样做,请确保:

  • application.yml 添加到 .gitignore
  • 使用 application-prod.yml 区分环境
  • 只在测试环境使用

Q4: 如何在启动脚本中设置环境变量?

A: 修改 start.sh 文件:

#!/bin/bash
export TENCENT_SECRET_KEY="你的密钥"
nohup java -jar target/models-integration-0.0.1.jar > logs/api-demo.log 2>&1 &
echo $! > app.pid

📞 需要帮助?

如果按照以上步骤操作后仍有问题,请检查:

  1. SecretId 和 SecretKey 是否匹配(同一对密钥)
  2. 环境变量是否在应用启动前设置
  3. 应用是否已重启
  4. 密钥是否有语音识别服务的权限
  5. 腾讯云账号是否已开通语音识别服务

访问配置检查接口可获得详细的错误信息:

curl http://localhost:5081/api/tencent/asr/config-check