模型卡 · 中文版(Model Card, zh-CN)
W2v-BERT 2.0 是 Meta 开源的 Conformer 架构多语言自监督语音编码器,约 600M 参数,
基于 450 万小时、覆盖 143+ 种语言的未标注语音预训练(见论文
Seamless: Multilingual Expressive and Streaming Speech Translation)。
本仓库将其适配到 昇腾(Ascend)NPU 上,通过 torch_npu 在 npu:0 执行前向推理,
输出顶层语音 embedding。
该模型为 裸编码器(bare encoder):不含 ASR 识别头、不含 tokenizer,需在预训练基础上
微调才能用于 ASR / 音频分类等下游任务。因此本仓库直接使用 AutoFeatureExtractor
(解析为 SeamlessM4TFeatureExtractor)将 16 kHz 波形转为 log-mel 频谱后送入编码器。
| 项目 | 值 |
|---|---|
| Model ID | facebook/w2v-bert-2.0 |
| 固定 revision | da985ba0987f70aaeb84a80f2851cfac8c697a7b |
| 参数量 | ~600M |
| 架构 | Conformer(hidden 1024,24 层,16 头,relative_key 位置编码) |
| 预训练 | 4.5M 小时 / 143+ 语言 |
| 适配硬件 | 昇腾 Ascend 910(npu:0) |
(1, T, 1024) 顶层 last_hidden_state 序列 embedding。前置平台栈(本仓库不负责安装):
torch + torch-npu(本次为 torch 2.9.0 + torch-npu 2.9.0.post1)应用层依赖(requirements.txt,仅列出推理脚本真正需要的库,不含平台栈):
pip install -r requirements.txt模型:facebook/w2v-bert-2.0,固定 revision da985ba0987f70aaeb84a80f2851cfac8c697a7b。
权重 model.safetensors 固定哈希(脚本内置校验,不匹配即拒绝运行、绝不静默替换):
| 项 | 值 |
|---|---|
| 文件 | model.safetensors |
| 字节数 | 2322063736 |
| SHA256 | eb890c9660ed6e3414b6812e27257b8ce5454365d5490d3ad581ea60b93be043 |
获取方式(无需手动执行;inference.py 在本地 models/ 缺失时会自动下载):
python -c "from huggingface_hub import snapshot_download; \
snapshot_download('facebook/w2v-bert-2.0', revision='da985ba0987f70aaeb84a80f2851cfac8c697a7b', \
local_dir='models', allow_patterns=['model.safetensors','config.json','preprocessor_config.json','README.md'])"facebook/w2v-bert-2.0
python -c "from modelscope import snapshot_download; \
snapshot_download('facebook/w2v-bert-2.0', revision='master', local_dir='models', \
allow_patterns=['model.safetensors','config.json','preprocessor_config.json','README.md'])"models/ 不做任何改动。# 1) 安装应用依赖(平台栈 torch/torch-npu/CANN 需已就绪)
pip install -r requirements.txt
# 2) 运行 NPU 推理(必须存在可用昇腾 NPU,无 CPU 回退)
python inference.py --model-dir models --wav sample.wav --device npu:0参数:
--model-dir:可选。指定后必须与固定哈希一致;缺省时优先使用已验证的本地 models/,
否则自动按固定 revision 从 Hugging Face 下载(镜像兜底须哈希一致)。--wav:真实 16 kHz 单声道 WAV 路径,默认 sample.wav。--device:默认 npu:0。输出:result.json(见第 8 节)与完整日志 npu_result.txt。
sample.wav 为官方真实语音样本,取自 Hugging Face hf-internal-testing/librispeech_asr_demo
(clean/validation,id 1272-128104-0000),固定 revision
48b47ace52db0fb183e30b87988149a5b4f9a5b2。非合成、非重编码,逐字节传输。
| 项 | 值 |
|---|---|
| 格式 | mono PCM 16-bit / 16000 Hz |
| 字节数 | 187404 |
| SHA256 | 799f78ed4beb4de7ceae3a809262d4ce242394342ccd1d58cef7d49dbc2def46 |
| 时长 | 5.86 s(93680 样本点) |
在 npu:0(Ascend910_9362,共 2 卡)上使用上述真实样本完成前向冒烟验证:
[npu] device=npu:0 count=2 name=Ascend910_9362
[in] real input sample.wav: 93680 samples @ 16000 Hz (5.86s)
[out] last_hidden_state (1, 292, 1024) dtype=torch.float32 device=npu:0
[out] stats mean=-0.00003 std=0.15411 min=-2.81605 max=4.11433
[out] forward time on npu:0: 0.214sinput_features、attention_mask、输出)均在 NPU 上,无 CPU 回退;
若 torch.npu.is_available() 为假则直接报错退出。(1, 292, 1024) 与 hidden_size=1024 一致;5.86 s 音频对应 292 帧,
与编码器 80-mel / stride 2 下采样相符。result.json / npu_result.txt 记录(配置声明 torch_dtype: float32)。npu_result.txt;结构化结果:result.json。仓库中的三张真实昇腾 NPU 证据截图(位于 assets/):



result.json 关键字段:
| 字段 | 说明 |
|---|---|
model_id / revision | 固定模型标识与 revision |
checkpoint_bytes / checkpoint_sha256 | 权重固定字节数与 SHA256 |
parameter_device | 模型参数所在设备(应为 npu:0) |
input_features_device / attention_mask_device / output_device | 输入与输出所在设备(均为 npu:0) |
embedding_shape / embedding_dtype | 顶层 embedding 形状 [1, 292, 1024] 与 dtype |
real_input | 真实输入样本路径、SHA256、采样率、时长 |
forward_time_s | 前向耗时(本次 0.214 s) |
限制:
torch.float32 前向;数值为编码器隐层表示,
需按下游任务语义使用。模型与模型卡:MIT(依据 models/README.md 元数据 license: mit)。
本仓库的适配脚本与文档可按 MIT 使用。本地仓库中未附带独立的 LICENSE.md 文件,
交付物中因此不含(“如可用才包含”)。