口述里「就是、然后、这个、那个」重复得多时,SayIt 这类工具通常不会只做逐字转写:语气性重复一般会被删掉,同一个意思被停顿切碎的片段会被合并成一句,而带指代或确认意味的重复往往原样留下。要判断你手上的配置落在哪一档,只看输出读起来顺不顺不够,得拿一段专门制造重复的口述当基准,逐句对照。下面按设计样本、标出分段、把重复归类、加大密度再跑一遍的顺序给记录方式。哪些会删、哪些会留,需要结合你使用的模型、提示词和标点清理规则确认。
判断 SayIt 是在整理还是只做转写,看重复词的去向比看句子通顺度更有用。建议固定一段含「就是、然后、这个、那个」的口述当基准样本,把人工听写的停顿点与输出分段点对齐,再把每个重复词归入删除、合并、保留三类。把重复密度加大后重跑一次,出现原样保留或长句断裂的位置,通常就是当前配置的处理边界,具体档位需要结合环境确认。
设计一段重复词密集的口述样本
样本不用长,四五十字就够,但重复类型要齐:语气垫词(就是、然后)、指示代词(这个、那个)、连说两遍的动词。下面这段可以照着念,也可以按同样比例替换成你自己的业务词。
我们这边呢,就是……这个项目,然后就是,前面那个,那个需求其实,
其实就是想,想把这个,这个流程就是简化一下,然后然后,那个,
我们可能就是,就是这个月先,先跑一版,然后看看,看看那个数据,
然后再那个再定。
录音要求:一次念完不要中断,语速比平时略慢,在句号和省略号处停半秒到一秒,环境尽量安静。同时保存原始音频和一份人工听写稿,听写稿是后面所有对照的基准,必须把重复词原样记下来,不要一边听一边顺手改通顺。
# Linux 下先确认采集设备名,再按实际设备替换 plughw:1,0
arecord -l
arecord -D plughw:1,0 -f S16_LE -r 16000 -c 1 -d 60 repeat_dense.wav
# 也可以直接用 ffmpeg
ffmpeg -hide_banner -f alsa -i plughw:1,0 -t 60 -ar 16000 -ac 1 repeat_dense.wav
# macOS 一般换成 -f avfoundation -i ":0",设备号按 ffmpeg -f avfoundation -list_devices true -i "" 的结果填
记录 SayIt 输出中的段落切分位置
把人工听写稿按停顿切开并编号,再把 SayIt 输出的每一段编号。对不上的位置就是判断依据:切点几乎都落在停顿上,说明分段主要按停顿;停顿处不切、句子长到一定字数才切,偏按长度;两者都不吻合却总切在意思完整处,偏按语义。换设备、换参数都可能改变结果,别只跑一遍就定性。
| 停顿序号 | 原文停顿位置 | 停顿大致时长 | 输出分段点 | 判断 |
|---|---|---|---|---|
| P1 | 「就是」之后 | 约 0.5 秒 | 按实际填 | 切 / 未切 |
| P2 | 「那个需求其实」之后 | 约 1 秒 | 按实际填 | 切 / 未切 |
| P3 | 「然后然后」之后 | 约 0.5 秒 | 按实际填 | 切 / 未切 |
记录用固定字段,两次跑完可以直接并排比对:
编号: P1
原文位置: 我们这边呢,就是 | 这个项目
停顿: 约0.5秒
输出是否分段: 是
分段后首词: 这个项目
该处重复词去向: 删除(就是)
备注: 切点落在停顿处
分段原因可以先用这三条互相排除:
- 输出每段首词都能在停顿表里找到位置,偏按停顿。
- 停顿处没切,但某段长度明显超过相邻段,偏按长度。
- 停顿和长度都不贴合,切点却总落在一个完整主谓结构之后,偏按语义。
对照重复词在输出里的三种去向
把听写稿里每个重复词圈出来,逐个标成删除、合并、保留。只凭「读起来顺多了」判断,很容易把合并当成删除,两者对后续调提示词的意义并不一样。
完全删除
- 纯垫词被删:「然后就是,那个,我们想」在输出里只留「我们想」。
- 同句内连说两遍且不改变意思:「这个,这个流程」在输出里只留一个「这个」。
合并成一句
- 被停顿切碎的同一意思:「其实就是想,想把这个」并成「其实就是想把这个」。
- 重复主语加半截谓语:「我们可能就是,就是这个月先」并成「我们可能这个月先」。
原样保留
- 承担指代作用的「那个」:「那个需求」里的「那个」指向具体对象,通常不会被删。
- 在输出里仍起连接作用的「其实」「就是」,可能原样留下。
- 同一段里相隔较远的两次「然后」,为了保留推进顺序,有时两次都留。
三类比例不做预设,标完数一遍即可。如果保留类里出现了本可删的语气词,先检查标点清理和提示词里有没有对应规则,别急着换模型。
用更高重复密度的口述再跑一次
第二版把密度加大:每个语义单元里塞进两次以上重复,并把原来带停顿的地方改成连说。另存文件,录音条件与第一版保持一致,方便两两对照。
我们我们这边呢就是就是,这个这个项目然后然后,前面那个那个需求,
其实就是就是想想,想把这个这个流程就是就是简化一下,
然后然后那个我们我们可能就是这个这个月先先跑一版,
看看看看那个数据,然后再那个再那个再定。
两次输出按同一张表并排记录,只写位置和现象,不写「效果更好」这类判断:
| 观察维度 | 第一版(低重复) | 第二版(高重复) |
|---|---|---|
| 输出段落数 | 按实际填 | 按实际填 |
| 单段最长字数 | 按实际填 | 按实际填 |
| 残留重复词个数与位置 | 按实际填 | 按实际填 |
| 是否出现主语缺失的长句 | 按实际填 | 按实际填 |
| 是否出现中途断裂的短段 | 按实际填 | 按实际填 |
临界情况通常出现在这样的位置:同一语义单元里连续两次以上重复、中间又没有停顿。此时输出容易出现两种反应——把重复原样带进书面段落,或者为了压短而合并过头,把指代对象吞掉,读起来像主语断了。连说三次以上的地方更容易落到这两类里。这只是一套观察档位的办法,具体到你的配置,需要按上面两张表实跑后再确认,不能只凭一次录音下判断。