Whisper-medium.en:769M参数打造超准英语语音转文字
**导语**:OpenAI推出的Whisper-medium.en模型凭借769M参数规模与68万小时训练数据,在英语语音识别领域实现了4.12%的超低词错误率(WER),为企业级语音应用提供了高精度、易部署的解决方案。## 行业现状:语音识别迈入"低门槛高精度"时代随着远程办公、智能硬件和内容创作需求的爆发,语音转文字技术已从专业领域走向大众化应用。据Gartner预测,到2025年,3
快速开始
🛠️ 环境准备
根据本地是否有NPU设备和使用目标选择对应的环境准备方式:
| 环境准备 | 社区体验 / 算子开发(CANN商用/社区版) | 生态开发者贡献(CANN master) |
|---|---|---|
| 无NPU设备 | 云开发环境 | 手动下载安装CANN master + 云开发环境 |
| 有NPU设备 | CANN官方Docker镜像 | 手动下载安装CANN master + Dev Container |
[!TIP] 选择建议
- 为了保障开发体验环境的质量,推荐用户基于容器化技术完成环境准备。
- 如不希望使用容器,也可在带NPU设备的主机上完成环境准备,请参考CANN软件安装指南 - 在物理机上安装。
- 针对仅体验"编译安装本开源仓 + 仿真环境运行算子"的用户,不要求主机带NPU设备,可跳过安装NPU驱动和固件,直接安装CANN包,请参考下载安装CANN包。
1️⃣ 云开发环境
对于无NPU设备的用户,可使用云开发环境提供的NPU计算资源进行开发体验,云开发环境提供了在线直接运行的昇腾ARM架构环境。目前仅适用于Atlas A2系列产品,提供两种接入方式:
- WebIDE开发平台,即"一站式开发平台",提供网页版的便携开发体验。
- VSCode IDE,支持远程连接云开发环境,提供VSCode强大插件市场的支持。
-
进入开源仓Gitcode页面,单击"
云开发"按钮,使用已认证过的华为云账号登录。若未注册或认证,请根据页面提示进行注册和认证。
-
根据页面提示创建并启动云开发环境,单击"
连接 > WebIDE 或 Visual Studio Code"进入云开发环境,开源项目的资源默认在/mnt/workspace目录下。
[!NOTE] 使用说明
- 环境默认安装了最新的商用版NPU驱动和固件、CANN包,源码下载时注意与软件配套。
- 如需下载特定版本的CANN包,请参考下载安装CANN包。
- 更多关于WebIDE开发平台的介绍,请参考云开发平台介绍。
- Huawei Developer Space插件为VSCode IDE接入云开发环境提供技术支持。
2️⃣ CANN官方Docker镜像
对于有NPU设备的用户,可使用CANN官方Docker镜像进行开发体验。
-
确认主机环境
- 是否已安装NPU驱动和固件,使用
npu-smi info能够输出NPU相关信息,如没有安装,请参考CANN软件安装指南 - 在物理机上安装。 - 是否已安装Docker,使用
docker --version能够输出Docker版本信息,如没有安装,请参考Docker官方安装指南。
- 是否已安装NPU驱动和固件,使用
-
下载CANN镜像
从昇腾镜像仓库拉取已预集成CANN镜像:
# 示例:ascend/cann:tag为9.0.0-beta.2的CANN社区包 # docker pull swr.cn-south-1.myhuaweicloud.com/ascendhub/cann:9.0.0-beta.2-910b-ubuntu22.04-py3.11 docker pull <ascend/cann:tag>[!NOTE] 使用说明
- 镜像默认安装了对应版本的CANN包,源码下载时注意与软件配套。
- 镜像文件比较大,正常网速下,下载时间约为5~10分钟,请您耐心等待。
-
运行Docker
拉取镜像后,需要以特定参数启动,以便容器内能访问宿主机的NPU设备。
docker run --name <cann_container> \ --ipc=host --net=host --privileged \ --device /dev/davinci0 \ --device /dev/davinci_manager \ --device /dev/devmm_svm \ --device /dev/hisi_hdc \ -v /usr/local/dcmi:/usr/local/dcmi \ -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \ -v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \ -v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \ -v /etc/ascend_install.info:/etc/ascend_install.info \ -v </home/your_host_dir>:</home/your_container_dir> \ -it <ascend/cann:tag> bash参数 说明 注意事项 --name <cann_container>为容器指定名称,便于管理 自定义 --ipc=host与宿主机共享IPC命名空间,NPU进程间通信(共享内存、信号量)所需 - --net=host使用宿主机网络栈,避免容器网络转发带来的通信延迟 - --privileged赋予容器完整设备访问权限,NPU驱动正常工作所需 - --device /dev/davinci0将宿主机的NPU设备卡映射到容器内,可指定映射多张NPU设备卡 必须根据实际情况调整: davinci0对应系统中的第0张NPU卡。请先在宿主机执行npu-smi info命令,根据输出显示的设备号(如NPU 0,NPU 1)来修改此编号--device /dev/davinci_manager映射NPU设备管理接口 - --device /dev/devmm_svm映射设备内存管理接口 - --device /dev/hisi_hdc映射主机与设备间的通信接口 - -v /usr/local/dcmi:/usr/local/dcmi挂载设备容器管理接口(DCMI)相关工具和库 - -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi挂载 npu-smi工具使容器内可以直接运行此命令来查询NPU状态和性能信息 -v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/将宿主机的NPU驱动库映射到容器内 - -v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info挂载驱动版本信息文件 - -v /etc/ascend_install.info:/etc/ascend_install.info挂载CANN软件安装信息文件 - -v </home/your_host_dir>:</home/your_container_dir>挂载宿主机的一个路径到容器中 自定义 -it-i(交互式)和-t(分配伪终端)的组合参数- <ascend/cann:tag>指定要运行的Docker镜像 请确保此镜像名和标签(tag)与您通过 docker pull拉取的镜像完全一致bash容器启动后立即执行的命令 -
3️⃣ DevContainer
对于有NPU设备的用户,推荐使用DevContainer进行生态开发者贡献。
DevContainer基于VS Code Dev Containers,通过仓库内.devcontainer配置自动构建一致的容器化开发环境,内置conda、Python等开发工具链。与宿主机的NPU驱动共享设备访问,适合需要编译源码、运行UT、向本仓贡献代码的场景。详细说明请参考.devcontainer/README.md。
[!NOTE] 使用说明 DevContainer仅挂载宿主机的NPU驱动(只读),CANN toolkit和ops包需在容器启动后手动安装,请参考下载安装CANN包。
📥 下载安装CANN包
CANN包分为CANN toolkit包和CANN ops包。
下载CANN包
-
如果您想体验官网正式发布的CANN包,请访问CANN安装部署-昇腾社区获取对应版本CANN包。
-
如果您想体验CANN master,请访问CANN master obs镜像网站,下载日期最新的CANN包。
安装CANN包
-
安装CANN toolkit包 (必选)
chmod +x Ascend-cann-toolkit_${cann_version}_linux-$(uname -m).run ./Ascend-cann-toolkit_${cann_version}_linux-$(uname -m).run --install --install-path=${install_path} -
安装CANN ops包 (可选)
chmod +x Ascend-cann-${soc_name}-ops_${cann_version}_linux-$(uname -m).run ./Ascend-cann-${soc_name}-ops_${cann_version}_linux-$(uname -m).run --install --install-path=${install_path}[!IMPORTANT] 安装说明 examples中部分算子样例的编译运行依赖本包,若想完整体验样例编译运行流程,建议安装此包。
| 参数 | 说明 |
|---|---|
${cann_version} |
CANN包版本号 |
${soc_name} |
NPU型号,如910b |
${install_path} |
安装路径,toolkit包和ops包需相同。默认:root用户/usr/local/Ascend,非root用户$HOME/Ascend |
✅ 环境验证
[!NOTE] 使用前须知 云开发环境和CANN官方Docker镜像已预装CANN包,可直接执行以下命令验证;DevContainer和手动安装用户请在安装CANN包后执行。
验证环境和驱动是否正常:
-
检查NPU设备:
# 运行npu-smi,若能正常显示设备信息,则驱动正常 npu-smi info -
检查CANN包安装:
# 查看CANN包的version字段提供的版本信息(默认路径安装)。WebIDE场景下,请将/usr/local替换为/home/developer cat /usr/local/Ascend/cann/$(uname -m)-linux/ascend_toolkit_install.info cat /usr/local/Ascend/cann/$(uname -m)-linux/ascend_ops_install.info
⚙️ 环境变量配置
[!NOTE] 使用前须知 云开发环境和CANN官方Docker镜像已自动配置环境变量,可跳过此步骤。
按需选择合适的命令使环境变量生效:
# 默认路径安装,以root用户为例(非root用户,将/usr/local替换为${HOME})
source /usr/local/Ascend/cann/set_env.sh
# 指定路径安装
# source ${install_path}/cann/set_env.sh
🔨 源码编译步骤
📥 下载源码
开发者可通过如下命令下载本仓源码:
# 下载项目源码,以master分支为例
git clone https://gitcode.com/cann/asc-devkit.git
📦 依赖检查
[!NOTE] 使用前须知 如您使用容器化技术,容器中已为您安装好依赖,可跳过此步骤。
以下为本开源仓源码编译和examples算子样例编译运行的基础依赖条件:
- python >= 3.9.0
- gcc >= 7.3.0 / g++ >= 7.3.0 (注意:要求gcc与g++版本一致)
- cmake >= 3.16.0
⚡ 编译安装
-
编译
本开源仓提供一键式编译安装能力。
方式一:进入本开源仓代码根目录,执行如下命令:
bash build.sh --pkg方式二:用户也可使用离线下载功能,手动下载makeself源码包存放至自定义目录PATH_TO_DOWNLOAD,进入本开源仓代码根目录,执行如下命令:
bash build.sh --pkg --cann_3rd_lib_path={PATH_TO_DOWNLOAD} #PATH_TO_DOWNLOAD为自定义下载目录编译完成后会在
build_out目录下生成cann-asc-devkit_${cann_version}_linux-$(uname -m).run软件包。[!CAUTION] 编译报错可能 本仓依赖其他CANN开源仓,暂不支持独立升级,须搭配对应版本的CANN包进行编译:
- master分支 -- 使用最新的CANN master包
- 特定Tag -- 使用对应版本的官网正式发布的CANN包
-
安装
在开源仓根目录下执行下列命令,将编译生成的run包安装到默认路径
/usr/local/Ascend;或安装到指定的CANN包的装包路径${install_path},同时会覆盖原CANN包中的Ascend C内容。cd build_out # 默认路径安装run包 ./cann-asc-devkit_${cann_version}_linux-$(uname -m).run --full # 指定路径安装run包 # ./cann-asc-devkit_${cann_version}_linux-$(uname -m).run --full --install-path=${install_path}
🧪 UT验证
安装依赖
-
pytest >= 8.0.0
执行以下命令安装:
pip3 install pytest -
coverage >= 4.5.4
执行以下命令安装:
pip3 install coverage -
lcov >= 1.16 (仅在执行覆盖率统计场景需要)
下载lcov源码后,执行以下命令安装:
tar -xf lcov-1.16.tar.gz cd lcov-1.16 make install # root用户安装 # sudo make install # 非root用户安装
UT执行
方式一:在开源仓根目录执行下列命令,将按各模块依次批跑tests目录下的用例,得到结果日志,用于看护编译是否正常。
bash build.sh --adv_test # 批跑tests目录下adv_api里的用例
bash build.sh --basic_test_one # 批跑tests目录下basic_api part-one里的用例
bash build.sh --basic_test_two # 批跑tests目录下basic_api part-two里的用例
bash build.sh --basic_test_three # 批跑tests目录下basic_api part-three里的用例
方式二:用户也可使用离线下载功能,手动下载三方库源码包存放至自定义目录PATH_TO_DOWNLOAD,在开源仓根目录执行下列命令,同时批跑执行各模块的用例。
# 以PATH_TO_DOWNLOAD为自定义下载目录为例
bash build.sh --adv_test --cann_3rd_lib_path={PATH_TO_DOWNLOAD} # 批跑tests目录下adv_api里的用例
bash build.sh --basic_test_one --cann_3rd_lib_path={PATH_TO_DOWNLOAD} # 批跑tests目录下basic_api part-one里的用例
bash build.sh --basic_test_two --cann_3rd_lib_path={PATH_TO_DOWNLOAD} # 批跑tests目录下basic_api part-two里的用例
bash build.sh --basic_test_three --cann_3rd_lib_path={PATH_TO_DOWNLOAD} # 批跑tests目录下basic_api part-three里的用例
开源第三方软件依赖
在执行UT时,依赖的第三方开源软件列表如下:
| 开源软件 | 版本 | 下载地址 |
|---|---|---|
| googletest | 1.14.0 | googletest-1.14.0.tar.gz |
| boost | 1.87.0 | boost_1_87_0.tar.gz |
| mockcpp | 2.7 | mockcpp-2.7.tar.gz |
| mockcpp_patch | 2.7 | mockcpp-2.7_py3-h3.patch |
更多推荐
所有评论(0)