FunASR 时间戳对齐指南:如何把语音文字精准对上

发布时间:2026/9/7 19:30:53
FunASR 时间戳对齐指南:如何把语音文字精准对上 FunASR 时间戳对齐指南如何把语音文字精准对上【免费下载链接】FunASROpen-source speech recognition toolkit for training, inference, streaming ASR, VAD, punctuation, speaker diarization pipelines, and OpenAI-compatible/MCP serving.项目地址: https://gitcode.com/GitHub_Trending/fun/FunASR做视频剪辑或会议记录时最常遇到的情况是字幕比声音早半拍出现或者转写结果只能整段复制、无法按时间检索某句话。FunASR 时间戳对齐要解决的正是这件事让识别出的每个字、每句话都带毫秒级的起止时间字幕、会议记录、语音分析三类用法共用同一套数据。原理速览时间戳从哪来Paraformer 类模型在识别的同时用 CIF 激活函数累积积分法在帧序列上逐个点火每个点火帧对应一个字符的起点帧号乘以帧时长LFR6 抽帧后约 60 毫秒/帧就是毫秒时间戳再叠加 VAD 段起点偏移和帧级修正最后按标点把字符时间戳拼成句级时间戳。链路是识别出字 → 生成字级时间戳 → 按标点切句 → 输出 SRT/TSV。之所以有效是因为定位和识别出自同一个模型不需要再单独训练一个对齐模型。最短路径上手一条命令输出带时间戳的字幕从拿到代码到看到带时间戳的 SRT只需四步全部在 16k 单声道音频上操作克隆仓库并安装git clone https://gitcode.com/GitHub_Trending/fun/FunASR pip install -e ./FunASR准备一段 16kHz WAV 音频视频可用 ffmpeg 抽出音轨中文音频模型默认即可识别。一条命令直接生成 SRT句级时间戳自动写入funasr audio.wav -f srt验证输出的 SRT 每段都有00:00:00,420 -- 00:00:03,800形式的时间轴再加--timestamps可在 JSON/文本输出里拿到词级start/end/timestamp字段。字幕生成的完整示例见 examples/subtitle/模型支持列表见 model_zoo/。时间戳参数调整顺序先平移再微调最后切长音时间戳误差基本来自三处VAD 切段造成的整段平移、CIF 峰值帧与字符真正起点的固定偏差、长音字符被强制拆段。对应三个参数后两项定义在 funasr/utils/timestamp_tools.py参数作用默认值 / 调整区间begin_timevad_offset毫秒VAD 段起点偏移整段平移所有时间戳默认 0按听感偏差 0–200 毫秒逐步试force_time_shift峰值帧到字符起点的整体帧偏移默认 -1.5 帧微调区间 -1.2 -1.8 帧MAX_TOKEN_DURATION单字符时间戳最大持续长度超过即拆成字符 sil静音段默认 12 帧约 720 毫秒长音多的场景可到 15–20 帧--subtitle-segment-modeSRT 字幕条切分方式readable合并短句默认/sentence保留模型原句边界调整顺序只有一条先动vad_offset修整体偏移再动force_time_shift微调每字起点MAX_TOKEN_DURATION只在长音频繁断句时才改。原因是整段平移是加法、影响面大帧级偏移是微调、影响面小顺序反了会反复来回改字幕条长短只改观感不碰定位永远放最后。误差快速评估五个抽查点定阈值不用全量标注抽 5 个以上分散位置的字符做人工对照即可def avg_error_ms(ref, pred): pairs zip(ref, pred) return sum(abs(a[0]-b[0])abs(a[1]-b[1]) for a,b in pairs) / (2*len(list(pairs))) # ref/pred: [[起始ms, 结束ms], ...]判定标准三条单字平均误差 100 毫秒且首尾句子的误差方向一致说明是系统性偏移可整体平移修复句号/问号位置与听感停顿吻合误差在半个字以内长音字符出现sil且两侧时间戳首尾相接、无重叠。三条都满足即达标若首尾误差方向相反说明不是平移问题先回到识别环节检查切段。分场景建议字幕生成用-f srt默认readable模式工具会按可读长度合并短句人直接看到成稿需要原句边界再换sentence模式。会议记录重点是句级起点准确可加--spk区分说话人要按时间检索就用-f tsv每行start end text。语音分析保留词级时间戳--timestamps做停顿统计和节奏分析sentence模式下停顿边界更干净。收尾按这个顺序落地先跑funasr audio.wav -f srt确认输出含start/end/timestamp字段用播放器对 5 个抽查点记录误差整体偏移固定就改begin_time每字起点偏一个常数就改force_time_shift。后续迭代方向积累一批有对齐标注的音频建立误差基线把readable与sentence两种模式做 A/B 对比长会议场景再叠加说话人分离验证句级边界稳定性。【免费下载链接】FunASROpen-source speech recognition toolkit for training, inference, streaming ASR, VAD, punctuation, speaker diarization pipelines, and OpenAI-compatible/MCP serving.项目地址: https://gitcode.com/GitHub_Trending/fun/FunASR创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻