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

如何在AssemblyAi实时转录中可靠检测2秒及以上语音停顿?

可靠检测AssemblyAI实时转录中2秒以上语音停顿的方案

当前实现的缺陷

仅依赖finalTranscript的audio_start和audio_end计算停顿的逻辑存在以下问题:

  • finalTranscript是经过AssemblyAI合并、修正后的结果,相邻短语音片段会被合并,中间的短停顿会被“忽略”,导致两个finalTranscript之间的时间间隔无法准确反映实际停顿时长。
  • 实时转录过程中,finalTranscript输出存在延迟,中间会产生多个partialTranscript,仅跟踪finalTranscript会丢失连续时间节点,导致接近2秒的短停顿检测误差增大。

优化方案

方案1:结合Partial Transcript跟踪连续时间线

partialTranscript是实时流回的中间转录结果,时间戳更连续,能反映每一段语音的精确起止时间。通过跟踪所有partialTranscript和finalTranscript的时间戳,计算相邻转录结果的时间间隔,可准确检测停顿。

示例代码:

// 维护最近一次有效转录(partial或final)的结束时间戳
let lastTranscriptEnd = null;
const PAUSE_THRESHOLD = 2000;

socket.on('message', (message) => {
  const transcript = JSON.parse(message);
  
  // 处理所有包含转录内容的消息(partial或final)
  if (transcript.partial_transcript || transcript.final_transcript) {
    const currentAudioStart = transcript.audio_start;
    
    if (lastTranscriptEnd !== null) {
      const pauseDuration = currentAudioStart - lastTranscriptEnd;
      if (pauseDuration >= PAUSE_THRESHOLD) {
        console.log("pause greater than 2 seconds detected");
      }
    }
    
    // 更新最近的转录结束时间
    lastTranscriptEnd = transcript.audio_end;
  }
});

方案2:基于无转录反馈的定时器检测

当用户停止说话后,AssemblyAI会停止返回任何partial或final转录结果。通过设置定时器,若超过阈值时长未收到转录消息,即可判定为停顿。这种方式直接对应沉默的实际时长,准确性更高。

示例代码:

let pauseTimer = null;
const PAUSE_THRESHOLD = 2000;

// 启动停顿检测定时器
const startPauseTimer = () => {
  if (pauseTimer) clearTimeout(pauseTimer);
  pauseTimer = setTimeout(() => {
    console.log("pause greater than 2 seconds detected");
    pauseTimer = null;
  }, PAUSE_THRESHOLD);
};

socket.on('message', (message) => {
  const transcript = JSON.parse(message);
  
  // 收到任何转录消息,重置定时器
  if (transcript.partial_transcript || transcript.final_transcript) {
    startPauseTimer();
  }
});

// 音频流启动时初始化定时器(可选,根据业务场景调整)
startPauseTimer();

方案3:双逻辑互补检测

将上述两种方案结合,既跟踪转录结果的时间间隔,又通过定时器检测无反馈的沉默时段,进一步提升检测的稳定性和准确性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 13:22:04