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

如何使用Microsoft Azure语音认知SDK检测语音起始及二次说话触发?

检测语音结束后短时间内的再次说话方案

针对你使用microsoft-cognitiveservices-speech-sdk ^1.32.0实现STT时的需求,核心问题在于recognizeOnceAsync是单次识别模式,无法获取语音起始事件。推荐改用连续识别模式来实现精准的时间差判断,以下是具体实现思路和代码示例:

一、核心方案:使用连续识别模式监听语音起止事件

连续识别模式支持注册speechStartDetected和speechEndDetected事件,能直接获取语音的开始/结束时间点,以此计算两次语音的间隔:

  1. 初始化语音识别器,注册关键事件
  2. 维护变量记录上一次语音结束的时间戳
  3. 在语音开始事件中计算与上次结束的时间差,判断是否在2-3秒范围内

代码示例(JavaScript)

const SpeechSDK = require("microsoft-cognitiveservices-speech-sdk");

// 初始化配置
const speechConfig = SpeechSDK.SpeechConfig.fromSubscription("你的订阅密钥", "你的区域");
const audioConfig = SpeechSDK.AudioConfig.fromDefaultMicrophoneInput();
const recognizer = new SpeechSDK.SpeechRecognizer(speechConfig, audioConfig);

let lastSpeechEndTime = null;
const DETECT_INTERVAL = 3000; // 设置为3秒阈值,可调整为2000-3000之间

// 监听语音开始事件
recognizer.speechStartDetected = (sender, event) => {
  if (lastSpeechEndTime) {
    const timeGap = Date.now() - lastSpeechEndTime;
    if (timeGap <= DETECT_INTERVAL) {
      console.log("检测到上一次语音结束后3秒内再次说话");
      // 此处执行你的业务逻辑,比如标记连续说话状态
    }
  }
};

// 监听语音结束事件,更新时间戳
recognizer.speechEndDetected = (sender, event) => {
  lastSpeechEndTime = Date.now();
};

// 监听识别结果(可选,根据业务需求处理)
recognizer.recognized = (sender, event) => {
  if (event.result.reason === SpeechSDK.ResultReason.RecognizedSpeech) {
    console.log(`识别结果:${event.result.text}`);
  }
};

// 启动连续识别
recognizer.startContinuousRecognitionAsync();

// 资源清理:在不需要识别时调用
// recognizer.stopContinuousRecognitionAsync();
// recognizer.close();

二、变通方案:基于recognizeOnceAsync的循环调用(不推荐)

如果必须使用单次识别模式,可以通过循环调用recognizeOnceAsync+定时器的方式实现,但精度不如连续模式:

  • 每次recognizeOnceAsync返回结果后,启动一个2-3秒的定时器
  • 如果定时器触发前,新的recognizeOnceAsync被触发(说明检测到语音),则判定为连续说话
  • 注意:此方法依赖SDK的语音活动检测(VAD)触发时机,可能存在一定延迟,且容易受环境噪音影响

注意事项

  • 可通过调整SDK的VAD参数优化检测精度,比如设置语音结束超时:
    speechConfig.setProperty(SpeechSDK.PropertyId.SpeechServiceConnection_VoiceActivityDetectionTimeoutMs, "2000");
    
  • 确保麦克风输入正常,避免背景噪音导致误触发语音起止事件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 01:52:13