You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Azure语音转文本及翻译服务部署在Azure APIM之后?

Azure认知服务(语音转文本+翻译)部署到APIM后无调用/测试失败的排查与修复

一、先确认APIM核心配置是否正确

语音转文本WebSocket端点配置

  • 必须创建WebSocket类型的API,不能复用HTTP模板。后端端点填写Azure语音服务的官方WebSocket地址(格式:wss://<region>.stt.speech.microsoft.com/speech/universal/v2)
  • 配置后端身份验证:在APIM的API后端设置中,添加语音服务的密钥作为Ocp-Apim-Subscription-Key头,或者用策略自动转发:
    <set-header name="Ocp-Apim-Subscription-Key" exists-action="override">
      <value>{你的语音服务密钥}</value>
    </set-header>
    
  • 开启CORS支持:在APIM的API设置里,添加WebSocket方法(GET、OPTIONS),并允许客户端的域名,避免跨域拦截。

翻译服务HTTPS端点配置

  • 后端地址必须是翻译服务的标准端点(格式:https://<region>.cognitiveservices.azure.com/translate)
  • 策略中配置密钥转发:确保APIM在向后端发送请求时,带上翻译服务的密钥,示例策略:
    <set-header name="Ocp-Apim-Subscription-Key" exists-action="override">
      <value>{你的翻译服务密钥}</value>
    </set-header>
    
  • 确认API版本参数正确:翻译服务需要带api-version=3.0参数,APIM的API操作要保留该参数的传递。

二、正确的测试方法

语音转文本WebSocket测试

APIM内置测试工具不支持完整的WebSocket交互流程,建议用第三方工具:

  • 用wscat命令行测试:
    wscat -c wss://<你的APIM实例名>.azure-api.net/<语音API路径> -H "Ocp-Apim-Subscription-Key: <你的APIM订阅密钥>"
    
    连接成功后,按照语音服务的WebSocket协议发送音频数据或控制消息,同时查看APIM监控日志。

翻译服务HTTPS测试

用curl或Postman直接调用APIM端点:

curl -X POST "https://<你的APIM实例名>.azure-api.net/translate?api-version=3.0&from=en&to=zh" \
-H "Ocp-Apim-Subscription-Key: <你的APIM订阅密钥>" \
-H "Content-Type: application/json" \
-d "[{\"Text\":\"Hello world\"}]"

如果测试失败,查看APIM的“测试”标签页中的后端响应详情,定位错误原因。

三、常见问题排查

  • 请求未到达APIM:检查客户端是否使用了APIM的端点和订阅密钥,而非认知服务的原始端点/密钥;确认APIM的产品已发布,且订阅处于激活状态。
  • WebSocket连接失败:检查APIM是否启用了WebSocket支持(默认启用),VNet配置是否允许APIM访问语音服务端点,CORS设置是否覆盖客户端域名。
  • 策略冲突:检查自定义策略是否移除了<websocket-upgrade>(WebSocket必需)或<set-backend-service>等关键逻辑,导致请求无法正确转发。
  • 网络拦截:如果APIM部署在VNet中,需确保客户端IP在APIM的允许列表内,同时APIM能通过服务端点/私有链接访问认知服务。

内容的提问来源于stack exchange,提问作者vijay kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 17:43:25