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

Azure Speech Service连续识别空转录问题求助(对接Twilio/Plivo)

Azure Speech Service 实时通话静默返回空转录的解决配置方案

针对你用Twilio/Plivo对接Azure STT时,静默状态下每隔10-15秒返回空转录的问题,给你几个可落地的调整方案:

1. 调整Azure Speech SDK的静默识别触发参数

你提到已经配置了初始超时和语音分段超时,但可能漏了针对连续识别的静默结束检测配置。可以尝试在初始化SpeechRecognizer时添加以下参数:

  • 设置Speech_Segmentation_SilenceTimeoutMs为你能接受的最大值(比如1000,符合你1秒的限制),同时禁用自动静默结束后的空结果触发:
// C# 示例代码
var recognizer = new SpeechRecognizer(speechConfig, audioConfig);
// 设置静默分段超时为1秒
recognizer.SetProperty(PropertyId.Speech_Segmentation_SilenceTimeoutMs, "1000");
// 禁止服务在静默时自动返回空识别结果
recognizer.SetProperty(PropertyId.SpeechServiceConnection_EndSilenceTimeoutMs, "0");

注意:SpeechServiceConnection_EndSilenceTimeoutMs设为0时,服务不会因为静默超时主动结束识别会话,只会在有语音输入时返回结果,直到你主动停止连续识别。

2. 优化Twilio/Plivo的音频流传输设置

实时通话平台在静默时可能会发送静音帧或空数据包,Azure STT收到这些无效音频后会触发识别并返回空结果。你可以在通话平台侧做调整:

  • Twilio: 在<Stream>标签中添加silenceDetection="false"参数,禁用Twilio侧的静默检测,避免发送静音帧到Azure:
<Response>
  <Stream url="你的Azure STT对接地址" silenceDetection="false" />
</Response>
  • Plivo: 在启动Stream时配置silence_threshold为极低值(比如0),或者禁用静音帧传输,具体可参考平台的Stream API静音过滤配置。

3. 在业务逻辑层过滤空转录结果

如果以上配置仍无法解决,可以在处理Azure返回结果时,直接过滤空文本的识别结果:

  • 在识别结果回调中,判断结果文本是否为空,同时检查结果原因是否为NoMatch或RecognizedSpeech但无内容,此时跳过后续处理:
recognizer.Recognized += (s, e) =>
{
    if (e.Result.Reason == ResultReason.RecognizedSpeech && string.IsNullOrEmpty(e.Result.Text))
    {
        // 静默触发的空结果,跳过处理
        return;
    }
    // 正常识别结果的处理逻辑
};

4. 确认连续识别模式是否正确配置

检查是否误将连续识别模式设置为单次识别:确保你调用的是StartContinuousRecognitionAsync()而非RecognizeOnceAsync(),后者会在单次语音结束后返回结果,即使静默也会触发空结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 18:13:19