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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 17:23:10