ONNX 模型库
返回模型

说明文档

ASR 模型卡片(基于 CTC 的英语 ASR)

<!-- Provide a quick summary of what the model is/does. --> 本仓库包含一个基于 Hugging Face Transformers 构建的端到端 自动语音识别 (ASR) 流水线。默认配置在 Common Voice 17.0(英语) 的 50k 子样本上使用 CTC 头对 facebook/wav2vec2-base-960h 进行微调,并提供用于 训练、评估、导出到 ONNX 以及在 AWS SageMaker 上部署 的脚本。它还包括一个健壮的音频加载栈(优先使用 FFmpeg,带有备用方案)以及用于文本规范化和评估(WER/CER)的实用工具。

模型详情

模型描述

  • 开发者: Amirhossein Yousefi (GitHub: @amirhossein-yousefi)
  • 资金支持: 未指定
  • 共享者: Amirhossein Yousefi
  • 模型类型: 基于 CTC 的 ASR,使用 Transformers (Wav2Vec2ForCTC)
  • 语言(NLP): 英语 (en)
  • 许可证: 基础模型为 Apache-2.0;仓库/微调权重许可证在此未明确说明(在澄清之前视为 其他
  • 微调自模型: facebook/wav2vec2-base-960h

训练/评估流水线使用 Hugging Face transformersdatasetsjiwer,并包含推理和 SageMaker 部署的脚本。

模型来源

  • 代码库: https://github.com/amirhossein-yousefi/ASR
  • 论文: Baevski et al., "wav2vec 2.0: A Framework for Self-Supervised Learning of Speech Representations" (arXiv:2006.11477)
  • 演示: 暂无(包含本地 CLI 和 SageMaker 示例)

用途

直接使用

  • 用于短到中等长度音频片段的通用 英语 语音转录(默认时长过滤器:约 1-18 秒)。
  • 通过 CLI 或 Python 进行本地批量转录,或通过 AWS SageMaker 进行实时部署(JSON base64 或原始 WAV 内容类型)。

下游使用

  • 在特定任务或口音数据集上进行领域适应 / 进一步微调。
  • 导出到 ONNX 以实现 CPU 友好的推理和在生产应用中的集成。

超出范围的使用

  • 不包括 说话人分离标点恢复真正的流式 ASR
  • 未经额外微调的多语言或语码转换语音。
  • 未经分块的极长文件;未经增强/调优的严重背景噪声。

偏差、风险和局限性

  • 默认微调数据集(Common Voice 17.0,英语)可能反映收集偏差(麦克风质量、口音、人口统计特征)。在领域外音频(例如电话、医学术语)上的准确性可能会下降。
  • 转录可能包含错误,如果音频中存在敏感信息/PII,可能会被转录出来;请负责任地处理输出。

建议

  • 始终在您自己的保留数据上评估 WER/CER。根据需要考虑添加标点大小写模型和领域词汇表。
  • 对于受监管的环境,请加入人工审核和数据治理。

如何开始使用该模型

Python(本地推理):

import torch, torchaudio
from transformers import AutoModelForCTC, AutoProcessor

model_dir = \"./outputs/asr\"  # 或 Hugging Face hub id
device = \"cuda\" if torch.cuda.is_available() else \"cpu\"

processor = AutoProcessor.from_pretrained(model_dir)
model = AutoModelForCTC.from_pretrained(model_dir).to(device).eval()

wav, sr = torchaudio.load(\"path/to/file.wav\")
target_sr = processor.feature_extractor.sampling_rate
if sr != target_sr:
    wav = torchaudio.functional.resample(wav, sr, target_sr)

inputs = processor(wav.squeeze(0).numpy(), sampling_rate=target_sr, return_tensors=\"pt\", padding=True)
with torch.no_grad():
    logits = model(**{k: v.to(device) for k, v in inputs.items()}).logits
pred_ids = torch.argmax(logits, dim=-1)
print(processor.batch_decode(pred_ids.cpu().numpy())[0])

CLI(示例):

python src/infer.py --model_dir ./outputs/asr --audio path/to/file.wav

训练详情

训练数据

  • 数据集: Common Voice 17.0(英语),文本列:sentence
  • 时长过滤器: 最小约 1.0 秒,最大约 18.0 秒
  • 备注: 区分大小写的规范化,白名单过滤以匹配分词器词汇表;可选的波形增强。

训练过程

预处理 [可选]

  • 健壮的音频解码(Windows 上优先使用 FFmpeg;备用 torchaudio/soundfile/librosa),按 Wav2Vec2 要求重采样至 16 kHz。
  • 通过模型处理器进行分词;使用 CTC 整理器进行动态填充。

训练超参数

  • 轮次: 3
  • 每设备批次大小: 8 (× 8 梯度累积 → 有效 64)
  • 学习率: 3e-5
  • 预热比例: 0.05
  • 优化器: adamw_torch_fused
  • 权重衰减: 0.0
  • 精度: FP16
  • 最大梯度范数: 1.0
  • 日志记录: 每 50 步;评估/保存: 每 500 步;保留最后 2 个检查点;早停耐心值 = 3
  • 随机种子: 42

速度、大小、时间 [可选]

  • 总 FLOPs(训练): 10,814,747,992,293,114,000
  • 训练运行时间: 2,346 步约 ~11,168 秒
  • 日志: TensorBoard 位于 src/output/logs(或配置的类似路径)

评估

测试数据、因素和指标

  • 指标: WER(主要)和 CER(辅助),使用 jiwer 实用工具计算。
  • 因素: CV17 分割中的英语语音;性能因口音、录音条件和语句长度而异。

结果

  • 训练包括 损失评估 WER评估 CER 曲线。请参阅 assets/ 目录中的图表。

总结

  • 基线 WER/CER 在每次评估时记录;用户应在其自己的数据集上报告特定领域的结果。

模型检查

  • 默认使用贪婪解码;本仓库不包含束搜索/LM 融合。如需错误分析,可根据需要检查 logits 和对齐。

环境影响

  • 硬件类型: 笔记本电脑(Windows)
  • GPU: NVIDIA GeForce RTX 3080 Ti Laptop GPU (16 GB VRAM),驱动程序 576.52
  • CUDA / PyTorch: CUDA 12.9,PyTorch 2.8.0+cu129
  • 使用小时数: 约 ~3.1 小时
  • 云服务商: 本地不适用;提供 AWS SageMaker 实用工具用于云训练/部署
  • 计算区域: 不适用(本地)
  • 碳排放: 未计算;可使用 MLCO2 计算器 估算

技术规格

模型架构和目标

  • 架构: Wav2Vec2 编码器,带有 CTC 输出层
  • 目标: 用于 ASR 的字符级 CTC 损失

计算基础设施

硬件

  • 如上所述的本地 GPU;或通过 SageMaker 脚本使用的 AWS 实例类型(例如 ml.g4dn.xlarge)。

软件

  • Python 3.10+
  • 主要依赖项:transformersdatasetstorchtorchaudiosoundfilelibrosajiweronnxruntime(用于 ONNX 测试),以及用于部署的 boto3/sagemaker

引用

BibTeX:

@article{baevski2020wav2vec,
  title={wav2vec 2.0: A Framework for Self-Supervised Learning of Speech Representations},
  author={Baevski, Alexei and Zhou, Henry and Mohamed, Abdelrahman and Auli, Michael},
  journal={arXiv preprint arXiv:2006.11477},
  year={2020}
}

APA: Baevski, A., Zhou, H., Mohamed, A., & Auli, M. (2020). wav2vec 2.0: A framework for self‑supervised learning of speech representations. arXiv:2006.11477.

术语表

  • WER:词错误率;越低越好。
  • CER:字符错误率;越低越好。
  • CTC:连接时序分类,一种用于序列标注的无对齐损失。

更多信息

  • ONNX 导出: src/export_onnx.py
  • AWS SageMaker: sagemaker/ 中的脚本,用于训练、部署和自动扩展。
  • 训练/指标图表: 参见 assets/(例如 train_loss.svgeval_wer.svgeval_cer.svg)。

模型卡片作者

  • Amirhossein Yousefi(仓库作者)

模型卡片联系方式

  • 在 GitHub 仓库上提交 issue:https://github.com/amirhossein-yousefi/ASR

Amirhossein75/ASR

作者 Amirhossein75

automatic-speech-recognition transformers
↓ 0 ♥ 1

创建时间: 2025-08-26 05:50:25+00:00

更新时间: 2025-08-26 06:06:42+00:00

在 Hugging Face 上查看

文件 (10)

.gitattributes
.idea/.gitignore
README.md
config.json
model.safetensors
preprocessor_config.json
special_tokens_map.json
tokenizer_config.json
training_args.bin
vocab.json