Azure容器版语音转文本:ConversationTranscriber报WebSocket升级404错误
问题分析与解决方案
核心原因
你遇到的404错误是因为Azure Speech to Text本地容器不支持ConversationTranscriber对应的会话转录功能。Azure的本地Speech容器仅实现了基础的语音识别(对应SpeechRecognizer)能力,而会话转录、实时说话人分离这类功能是云端专属的,本地容器没有部署/speech/universal/v2这个WebSocket端点,所以请求会返回404。
验证方法
你可以访问本地Speech容器的Swagger文档确认:
http://<service>.<namespace>.svc.cluster.local:80/swagger/ui/index.html
查看后会发现,容器仅提供基础语音识别的API,完全没有会话转录相关的接口定义。
解决途径
切换到Azure云端Speech服务
如果必须使用会话转录功能,只能放弃本地容器,改用Azure云端的Speech资源。修改代码中的speech_config,换成云端的密钥和区域:speech_config = speechsdk.SpeechConfig(subscription="你的云端密钥", region="你的区域")这样
ConversationTranscriber就能正常调用云端的会话转录服务。本地容器替代方案
如果必须使用本地容器,只能用SpeechRecognizer完成基础语音识别,然后自行实现说话人分离逻辑:- 先用
SpeechRecognizer转录出文本和对应的音频时间戳 - 使用第三方库(如
pyannote.audio)对原始音频进行说话人分离,再将分离结果和转录文本对应起来
- 先用
补充说明
你尝试更换SDK版本和容器版本无效,是因为所有版本的Azure Speech本地容器都不支持会话转录功能,这是产品设计的限制,和版本无关。另外,SpeechRecognizer能正常运行也证明你的网络连接、容器部署都是正常的,问题完全出在功能支持上。
内容的提问来源于stack exchange,提问作者Jerome Durand
相关产品推荐
相关产品推荐

