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

如何在transformers.js结合Whisper实现字符/单词级时间戳粒度?

解决transformers.js + Whisper字符/单词级时间戳问题

要实现细粒度的字符/单词级时间戳,核心要解决两个关键问题:模型支持性和参数配置,具体如下:

1. 必须使用带对齐头的Whisper模型

你当前使用的默认Whisper模型(比如base、small版本)没有训练对齐头,所以即便设置了return_timestamps: "char",也只能生成大段落级的chunk——因为模型没有输出字符/单词与音频帧的对齐数据,无法拆分到细粒度。

你可以直接使用transformers.js生态中预导出的带对齐头模型,比如Xenova/whisper-base.en-aligned(英文支持)这类,或者用Python的transformers库自行导出带对齐头的ONNX模型(导出时需确保包含对齐头的输出)。

2. 完善生成参数配置

除了设置return_timestamps: "char",还需要在生成配置里启用对齐输出,否则模型不会返回用于细粒度拆分的对齐数据。修改你的script.js代码,补充如下配置:

data.generation.return_timestamps = "char";
data.generation.output_alignment = true; // 关键:启用对齐输出开关

3. 验证输出效果

使用正确的模型和参数后,返回的结果会包含字符/单词级的细粒度chunks,同时还会附带alignment字段,里面是每个token对应的时间戳映射,你可以根据需求进一步处理。

不需要更新或重建transformers.js本身,仅需替换模型、调整参数即可实现需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 01:20:29