Dolphin词级时间戳教程:如何精准获取每个词的起止时间
2026/8/17 22:56:57 网站建设 项目流程

Dolphin词级时间戳教程:如何精准获取每个词的起止时间

【免费下载链接】DolphinDolphin is a multilingual, multitask ASR model jointly trained by DataoceanAI and Tsinghua University.项目地址: https://gitcode.com/gh_mirrors/dolphin22/Dolphin

做语音识别(ASR)时,光拿到整句文本往往不够——字幕、剪辑、教学切片、会议纪要,哪一个不需要知道"每个词到底在哪个时间点说的"?Dolphin 词级时间戳功能正是为此而生:它是 DataoceanAI 与清华大学联合训练的多语言多任务 ASR 模型,支持 40 种东方语言和 22 种中文方言,只需一个参数即可输出每个词的起止时间。本教程手把手带你从安装到实战,快速上手 Dolphin 词级时间戳。

上图是 Dolphin 的多任务数据格式:模型既可以输出带时间戳(begin time / end time)的对齐转录,也可以输出纯文本。词级时间戳就是左边这条"绿色通道",每个词都精确对应一段语音。

什么是 Dolphin 词级时间戳

传统 ASR 只给出一句话的起止时间,而词级时间戳(Word Timestamp)把精度细化到每一个词。Dolphin 返回的结果是类似这样的结构:

{"word": "今天", "start": 0.42, "end": 0.85}

每个词都有独立的开始秒数与结束秒数,单位精确到毫秒级(保留 3 位小数)。这意味着你可以直接用它做:

  • 🎬 逐字/逐词字幕(karaoke 效果)
  • ✂️ 自动剪辑,按词定位说话人重点
  • 📚 语言教学中的单词发音定位

准备工作:两分钟安装环境

Dolphin 需要 FFmpeg 将音频统一转为 WAV 格式,先装上它:

# Ubuntu / Debian sudo apt update && sudo apt install ffmpeg # macOS brew install ffmpeg

然后安装 Dolphin 本体:

pip install -U dataoceanai-dolphin

💡 提示:词级时间戳依赖 torchaudio 的强制对齐功能,如果安装时没有自动带上,请执行pip install torchaudio补齐。

最快方法:命令行一行开启词级时间戳

Dolphin 的命令行工具默认就开启了词级时间戳(--word_timestamp默认值为 true),直接执行:

dolphin audio.wav --word_timestamp true

指定方言模型更精准(例如中文普通话 + 中国地区):

dolphin audio.wav --model small.cn --lang_sym "zh" --region_sym "CN" --word_timestamp true

运行结束后,日志里会直接打印每个词的时间戳,类似:

text: 今天天气真不错 Timestamp: [{'word': '今天', 'start': 0.42, 'end': 0.85}, ...]

相关参数定义可以在 dolphin/transcribe.py 中查看,命令行入口封装在 dolphin/main.py。

Python 调用:获取结构化的起止时间数据

如果你要做二次开发,Python 接口更灵活。核心就两步:加载模型 + 调用transcribe,并传入word_timestamp=True

import dolphin from dolphin import transcribe model = dolphin.load_model("small.cn", device="cuda") result = transcribe(model, "audio.wav", lang_sym="zh", region_sym="CN", word_timestamp=True) print(result.text) # 整句文本 print(result.word_timestamps) # 每个词的起止时间

result.word_timestamps是一个列表,每个元素都是{"word": ..., "start": ..., "end": ...}字典。想逐词打印可以这样:

for item in result.word_timestamps: print(f"{item['start']:.2f}s ~ {item['end']:.2f}s {item['word']}")

输出示例:

0.42s ~ 0.85s 今天 0.88s ~ 1.30s 天气 1.35s ~ 1.92s 真不错

词级时间戳是如何算出来的

理解原理能帮你更好地排查问题。Dolphin 的词级时间戳流程分三步(源码见 dolphin/search.py 和 dolphin/model.py):

  1. CTC 对齐:利用 torchaudio 的forced_align把识别出的词对齐到编码器的每一帧上;
  2. 帧转秒:通过子采样率和帧移(10ms/帧)把帧序号换算成秒,得到初步的起止时间;
  3. 边界精修:过滤标点、合并 BPE 子词(比如英文单词被拆成多个子词时自动合并为一个完整单词),最终输出规整的word_timestamps

这也是为什么 Dolphin 时间戳能支持中文按字、英文按词的两种模式——分词器会智能判断。

常见问题与提升精度的小技巧

  • 长音频怎么办?Dolphin 会自动启用 VAD 分段处理(transcribe_long),每一段都会返回独立的词级时间戳,还附带段落的start/end信息,参见 dolphin/transcribe.py。
  • 识别结果不理想?指定语言和地区能显著提升准确率,例如中文用small.cn+lang_sym="zh"+region_sym="CN";完整模型列表与语言支持见 dolphin/model_registry.py 和 languages.md。
  • 想用热词纠错?结合 hotword 功能(--hotword_list_path)可以在不牺牲时间戳的前提下纠正专有名词。

现在你已经掌握了 Dolphin 词级时间戳的核心用法:一条命令开启、一个参数拿数据、三行代码读结果。无论是做字幕工具还是音频分析,这个"每个词的起止时间"能力都能让你的产品立刻上一个台阶。快去试试吧!🚀

【免费下载链接】DolphinDolphin is a multilingual, multitask ASR model jointly trained by DataoceanAI and Tsinghua University.项目地址: https://gitcode.com/gh_mirrors/dolphin22/Dolphin

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询