Skip to content
Discussion options

You must be logged in to vote

这不是一个单纯的 ASR “识别精度”问题,需要先区分两个目标:

  1. 按静音切开语音:由 FSMN-VAD 负责。
  2. 判断是否换了说话人:需要 speaker diarization;VAD 只判断语音/非语音,不知道客服和客户是谁。

你第二个例子的时间戳里,前一句最后一个词到回答第一个词约有 3730 - 3090 = 640 ms 的间隔。当前 FSMN-VAD 配置的 max_end_silence_time 默认是 800 ms配置源码),所以 640 ms 的停顿仍被保留在同一个 VAD 片段里,符合当前配置。

只需要按这段静音切开

可以先把端点静音阈值降到 300–500 ms,例如从 400 ms 开始:

from funasr import AutoModel

model = AutoModel(
    model="paraformer-zh",
    vad_model="fsmn-vad",
    vad_kwargs={"max_end_silence_time": 400},
    punc_model="ct-punc",
)

res = model.generate(input="call.wav", batch_size_s=60)
print(res[0]["text"])

这对你示例中的 640 ms 停顿有机会切开,但阈值越低,客服句子内部的自然停顿也越容易被切碎,所以应在一批真实电话上比较 300/400/500 ms,而不是只看一条录音。max_single_segment_timebatch_size_s 都不…

Replies: 1 comment

Comment options

You must be logged in to vote
0 replies
Answer selected by LauraGPT
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants