e
gcw_GSiqzzLf/asr_speech2text-npu
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

asr_speech2text - 智能语音生成会议纪要

模型简介

asr_speech2text 是一个基于 PyTorch 的自动语音识别(ASR)模型,专门用于 智能语音生成会议纪要 场景。该模型能够将会议录音、对话音频自动转换为文本,帮助用户快速整理会议记录、提取关键信息,大幅提升会议效率。

核心能力

  • 语音转文本:将中文语音(普通话)实时转换为文字
  • 会议纪要生成:支持长音频的对话分段与内容汇总
  • 多场景适用:会议记录、访谈整理、课堂笔记、语音备忘录等

基本信息

属性说明
任务类型自动语音识别 (ASR) / 语音转文本
应用场景智能会议纪要生成
框架PyTorch
模型大小~24 MB
原始来源ModelScope - ModelBulider/asr_speech2text
NPU 适配支持华为昇腾 Ascend NPU (910/910B)

文件结构

asr_speech2text/
├── README.md              # 本文件 - 模型说明文档
├── inference.py           # NPU/CUDA/CPU 通用推理脚本
├── compare_cpu_npu.py     # CPU vs NPU 性能对比脚本
├── requirements.txt       # Python 依赖
├── test_audio.wav         # 测试音频文件
├── screenshots/           # (可选) 截图目录
└── scripts/               # (可选) 辅助脚本目录

环境准备

1. 安装依赖

pip install -r requirements.txt

主要依赖说明:

依赖用途
torchPyTorch 深度学习框架
torch_npu华为昇腾 NPU PyTorch 插件
soundfile音频文件读取
modelscopeModelScope 模型下载(可选)
funasrFunASR 语音识别工具包(替代方案)

2. 昇腾 NPU 环境配置

如需在华为昇腾 NPU 上运行,请确保已正确安装昇腾驱动和 CANN 软件包:

# 检查 NPU 是否可用
python -c "import torch; print(torch.npu.is_available())"
# 应输出: True

注意: 如果在 CPU 环境下运行,torch_npu 可不安装,推理脚本会自动回退到 CPU 模式。


模型获取说明

情况一:原始模型权重(ModelScope)

该模型由用户上传至 ModelScope,模型文件可通过以下方式获取:

# 方式1:使用 modelscope SDK
python -c "from modelscope import snapshot_download; snapshot_download('ModelBulider/asr_speech2text', cache_dir='./model')"

# 方式2:使用 git clone
git clone https://www.modelscope.cn/ModelBulider/asr_speech2text.git

注意:原始模型文件可能不公开开放下载。如果上述方式无法获取模型,请使用下面的 FunASR 替代方案。

情况二:FunASR Paraformer 替代方案(推荐,支持 NPU)

本仓库默认使用 FunASR 的 Paraformer 模型作为替代,该模型原生支持昇腾 NPU,在中英文语音识别任务上表现优异。

替代方案的优势:

  • 原生支持华为昇腾 NPU(无需额外适配)
  • 提供 VAD(语音活动检测)+ 标点恢复功能
  • 社区活跃,持续更新
  • 适合直接用于会议纪要场景
from funasr import AutoModel

model = AutoModel(
    model="iic/speech_paraformer_asr_nb-zh-cn-16k-common-vocab8404-pytorch",
    vad_model="iic/speech_fsmn_vad_zh-cn-16k-common-pytorch",
    punc_model="iic/punc_ct-transformer_zh-cn-common-vocab272727-pytorch",
    device="npu:0",  # 或在 CPU 上使用 "cpu"
)
result = model.generate(input="test_audio.wav", cache={})
print(result)

推理命令

基础推理

# 自动检测设备(NPU > CPU)
python inference.py --wav test_audio.wav

# 指定使用 NPU
python inference.py --wav test_audio.wav --device npu

# 指定使用 CPU
python inference.py --wav test_audio.wav --device cpu

# 尝试从 ModelScope 加载原始模型
python inference.py --wav test_audio.wav --mode modelscope

CPU vs NPU 性能对比

# 运行 CPU 和 NPU 性能对比(每设备推理3次取平均)
python compare_cpu_npu.py --wav test_audio.wav --runs 3

昇腾 NPU 适配说明

适配概览

本模型已针对华为昇腾 Ascend NPU 适配,关键适配点如下:

适配项状态说明
NPU 设备检测已完成torch.npu.is_available() 自动检测
FunASR NPU 推理已完成FunASR 原生支持 Ascend NPU
auto 设备回退已完成NPU 不可用时自动回退 CPU
性能对比已完成compare_cpu_npu.py 提供性能对比

性能优化建议

  1. 昇腾驱动版本:确保使用最新 CANN 和驱动版本以获取最佳性能
  2. 内存管理:FunASR 模型较小(~100MB),无需额外内存优化
  3. 批处理优化:如处理多段音频,可考虑批量推理提升吞吐量
  4. 实时因子 (RTF):NPU 上 RTF 通常小于 0.1,可实现实时转写

使用示例

场景:会议录音转文本

# 1. 准备会议录音(16kHz, wav格式)
# 2. 运行推理
python inference.py --wav meeting_recording.wav --device npu

# 3. 输出示例
# [RESULT] 识别结果: ['好的,今天我们讨论一下第一季度的项目进展。首先请各负责人汇报一下工作情况。']
# [RESULT] 推理耗时: 3520.45 ms

场景:批量音频处理

import os
from funasr import AutoModel

model = AutoModel(
    model="iic/speech_paraformer_asr_nb-zh-cn-16k-common-vocab8404-pytorch",
    vad_model="iic/speech_fsmn_vad_zh-cn-16k-common-pytorch",
    punc_model="iic/punc_ct-transformer_zh-cn-common-vocab272727-pytorch",
    device="npu:0",
)

audio_dir = "audio_files/"
for wav_file in os.listdir(audio_dir):
    if wav_file.endswith(".wav"):
        result = model.generate(input=os.path.join(audio_dir, wav_file), cache={})
        print(f"{wav_file}: {result}")

模型来源与致谢

  • 原始模型: ModelBulider/asr_speech2text on ModelScope
  • FunASR: FunASR - 阿里巴巴达摩院开源的端到端语音识别工具包
  • Paraformer: Paraformer - 非自回归端到端语音识别模型

标签

  • #ASR
  • #语音识别
  • #会议纪要
  • #昇腾
  • #NPU
  • #PyTorch
  • #FunASR
  • #华为昇腾
  • #Speech2Text

许可证

请参考原始模型在 ModelScope 上的许可证。本仓库中的推理脚本和工具代码采用 MIT 许可证。