前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AI:安装Nemo并进行自动语音识别

AI:安装Nemo并进行自动语音识别

作者头像
Freedom123
发布2024-03-29 16:00:40
720
发布2024-03-29 16:00:40
举报
文章被收录于专栏:DevOpsDevOps

一、基础环境

CPU: 6核

内存: 56GB

显卡: GN8 (P40)

公网带宽: 5M

系统: Ubuntu Server 18.04.1 LTS 64位

连接方式: SSH

二、安装Nvidia驱动

1.安装指令

代码语言:javascript
复制
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:graphics-drivers/ppa
# 根据Ubuntu系统和显卡不同,版本略有区别,主要有 460 470 495 以及更高的510等
sudo apt-get install nvidia-driver-470
# 重启之后才能成功
sudo reboot

2.检查是否安装成功

代码语言:javascript
复制
nvidia-smi

结果显示如图:

nvidia-smi运行结果图

对显示的结果进行分析(截图时已经安装完成,并且已经开始运行程序):

  • 橙色方框:Driver版本,470(指令安装的470)
  • 红色方框:Cuda版本,11.4(默认安装的)
  • 绿色方框:所有显卡信息,0号显卡为Tesla P40,状态为on
  • 蓝色方块:对应左侧绿色方框的显卡的显存占用,此刻0号显卡占用大概9009Mb
  • 紫色方框:运行的所有程序,0号显卡此刻正在运行程序,PID为32656

可以使用下方指令检查cuda版本:

代码语言:javascript
复制
nvcc -V

二、安装miniconda

代码语言:javascript
复制
# 使用清华源进行安装(推荐)
export DL_SITE=https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda
# 使用原厂源进行安装(国内不推荐)
export DL_SITE=https://repo.anaconda.com/miniconda
# 上方命令二选一即可
# 下载安装包
wget -c $DL_SITE/Miniconda3-py38_4.10.3-Linux-x86_64.sh
# 执行安装,推荐全部按照预设路径走
bash Miniconda3-py38_4.10.3-Linux-x86_64.sh
# 启动 Conda
source ~/.bashrc

此时命令行最前方显示应该如下图所示:出现了一个(base)

这个表明当前位于conda的base环境内部。

可以使用下方指令创建新的虚拟环境,也可使用默认环境继续进行:

代码语言:javascript
复制
# 创建 conda 环境 名字叫做 'studyNemo' 指定python版本为3.8
conda create -n studyNemo python==3.8
# 激活 conda 中名为 studyNemo 的环境
conda activate studyNemo
# 退出环境 如果从base中退出则回到基本命令行
conda deacitvate

接下来命令行前方显示不再是 (base) 而是 (studyNemo).

注意: base 与 studyNemo 的环境相互独立,并不互通,在不同环境中install的包不能相互使用

1.安装Jupyter Lab

代码语言:javascript
复制
pip install jupyter jupyterlab
# 设置登录密码
export PW='自行提供' 
# 保存一下密码到指定位置
python3 -c "from notebook.auth.security import set_password;set_password('$PW','$HOME/.jupyter/jupyter_notebook_config.json')"

三、安装Nemo

可能需要先将ubuntu的源更换至国内源:

代码语言:javascript
复制
# 编辑配置源的列表:
sudo vim /etc/apt/sources.list
# 按 i 进入插入模式,在文件头部插入以下内容(清华源):
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
#
# 注意!! 链接中 bionic表示是18.04,如果版本不同请考虑更换:
# 20.04:focal;18.04:bionic;16.04:xenial;14.04:trusty。
#

#更新仓库
sudo apt-get update
# update命令执行过程中会看到 mirrors.tuna.tsinghua.edu.cn 的链接,表示仓库正确更新
#可能需要升级仓库
sudo apt-get upgrade

开始安装Nemo(注意当前conda环境):

代码语言:javascript
复制
# 需要安装依赖
sudo apt-get install -y libsndfile1 ffmpeg
# 在对应的conda环境中执行以下命令,比如 base环境或者studyNemo 环境
pip install Cython
pip install --user pytest-runner
pip install rosa numpy==1.19.4
pip install torchmetrics==0.6.0
pip install nemo_toolkit[all]==1.4.0
pip install ASR-metrics

复制

1.测试Nemo:

代码语言:javascript
复制
python
>>>import nemo
>>>import nemo.collections.asr as nemo_asr
>>>import nemo.collections.tts as nemo_tt

没有报错即为成功,warning不必理会

四、使用Nemo和预训练模型进行ASR识别

代码语言:javascript
复制
# 导入Nemo
import nemo
import nemo.collections.asr as nemo_asr
# 输出Nemo版本
print(nemo.__version__)
# 加载模型
# 方式1:直接下载,需要login
# asr_model = nemo_asr.models.EncDecCTCModel.from_pretrained(model_name="stt_zh_quartznet15x5")
# 方式2:加载本地模型(登录NGC后自行下载:https://catalog.ngc.nvidia.com/)
# 加载中文预训练模型并实例化
quartznet = nemo_asr.models.EncDecCTCModel.restore_from("stt_zh_quartznet15x5.nemo")
# 传入语音进行识别
# 调用transcribe函数测试预训练模型识别效果
asr_result = quartznet.transcribe(paths2audio_files=["/root/testdata/hi6.wav"])
print(asr_result)
# 使用工具计算准确率
from ASR_metrics import utils as metrics
# 指定正确答案
s1 = "这是一段测试音频"
# 识别结果
s2 = " ".join(asr_result)
# 计算字错率cer
print("字错率:{}".format(metrics.calculate_cer(s1,s2)))
# 计算准确率accuracy
print("准确率:{}".format(1-metrics.calculate_cer(s1,s2)))

本来是启动jupyter lab后 使用jupyter notebook 写的,为了方便这里合并成了一个python文件

其他

参考:https://cloud.tencent.com/developer/article/2011234

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、基础环境
  • 二、安装Nvidia驱动
    • 1.安装指令
      • 2.检查是否安装成功
      • 二、安装miniconda
        • 1.安装Jupyter Lab
        • 三、安装Nemo
          • 1.测试Nemo:
          • 四、使用Nemo和预训练模型进行ASR识别
            • 其他
            相关产品与服务
            语音识别
            腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档