Azure Speech SDK连续语音翻译中如何获取语言检测信号?
解决Azure Speech SDK连续语言检测信号获取问题
你遇到的'AutoDetectSourceLanguageConfig' object has no attribute 'language'错误,是因为AutoDetectSourceLanguageConfig对象本身并没有language属性——这个类仅用于配置可检测的语言列表,检测到的语言结果需要从翻译识别器的事件回调中获取,而非直接从配置对象读取。
Python版Azure Speech SDK完全支持连续语言检测,你只需要通过正确的事件回调捕获检测到的语言信号,具体步骤如下:
1. 修正配置代码中的错误
先删除错误的打印语句:
# 移除这两行错误代码 print("Detectable languages set in AutoDetectSourceLanguageConfig:") print(self.auto_detect_source_language_config.language)
2. 通过事件回调获取检测到的语言
在set_event_callbacks()方法中,为翻译识别器的recognized或recognizing事件添加回调函数,从事件参数中提取检测到的源语言:
示例回调实现:
def set_event_callbacks(self): # 处理最终识别/翻译结果(包含确认的检测语言) def on_recognized(evt): if evt.result.reason == speechsdk.ResultReason.TranslatedSpeech: # 获取检测到的源语言 detected_language = evt.result.properties.get(speechsdk.PropertyId.SpeechServiceConnection_AutoDetectSourceLanguageResult) print(f"检测到的语言: {detected_language}") # 在此添加UI更新逻辑,例如将detected_language传递给UI组件 # update_ui_language_display(detected_language) elif evt.result.reason == speechsdk.ResultReason.RecognizedSpeech: detected_language = evt.result.properties.get(speechsdk.PropertyId.SpeechServiceConnection_AutoDetectSourceLanguageResult) print(f"检测到的语言: {detected_language}") # 处理中间识别结果(连续检测时实时触发) def on_recognizing(evt): if evt.result.reason == speechsdk.ResultReason.TranslatingSpeech: detected_language = evt.result.properties.get(speechsdk.PropertyId.SpeechServiceConnection_AutoDetectSourceLanguageResult) if detected_language: print(f"实时检测到的语言: {detected_language}") # 实时更新UI的逻辑可放在此处 # 绑定事件到识别器 self.translation_recognizer.recognized.connect(on_recognized) self.translation_recognizer.recognizing.connect(on_recognizing)
3. 确认连续语言检测配置生效
你已设置SpeechServiceConnection_LanguageIdMode为Continuous,该配置正确,确保SDK会在连续语音输入过程中实时检测语言变化。
关键说明
AutoDetectSourceLanguageConfig仅用于初始化可检测的语言范围,不存储实时检测结果。- 检测到的语言信息存储在识别结果的
properties字典中,需通过SpeechServiceConnection_AutoDetectSourceLanguageResult这个PropertyId获取。 - 连续语言检测模式下,
recognizing事件会实时返回中间检测结果,recognized事件会返回最终确认的检测结果,可根据UI更新需求选择监听对应事件。
内容的提问来源于stack exchange,提问作者serxio
相关产品推荐
相关产品推荐

