可以白嫖的语音识别开源项目whisper的搭建详细过程 | 如何在Linux中搭建OpenAI开源的语音识别项目Whisper

news2025/1/18 6:08:07

原文来自我个人的博客。

1、前提条件

服务器为GPU服务器。点击这里跳转到我使用的GPU服务器。我搭建 whisper 选用的是 NVIDIA A 100显卡,4GB显存。

Python版本要在3.8~3.11之间。

输入下面命令查看使用的Python版本。

python3 -V

2、安装Anaconda

为啥要安装Anaconda?

为了减少不同项目使用的库的版本冲突,我们可以使用Anaconda来创建虚拟Python环境。

下载Anaconda安装脚本

找到对应自己系统的安装器。

image-20230512160616642

下载完成之后我们可以直接运行脚本。

bash 脚本.sh

也可以使用下面的方式运行脚本。

chmod +x 脚本.sh
./脚本.sh

安装完成之后需要重新连接SSH。

验证是否安装成功,可以使用下面的命令。

conda -V

3、安装FFmpeg

apt install ffmpeg

输入ffmpeg回车之后可以看到提示信息,说明安装成功。

4、安装显卡驱动

先输入nvidia-smi查看显卡信息,如果有提示信息,说明已经安装过了显卡驱动。

如果没有安装过显卡驱动,那么这里提供两种安装方式。

4.1、方式一

ubuntu-drivers devices 查看可以安装的显卡驱动

apt install nvidia-driver-530 安装推荐的显卡驱动

nvidia-smi 查看显卡信息

image-20230511174509407

4.2、方式二

NVIDIA官方驱动下载网站下载相对应的显卡驱动。

点击这里去下载。

具体可以参考这篇文章。

5、安装CUDA

下载CUDA

下载的CUDA版本一定要小于等于nvidia-smi中看到的CUDA版本,不能随意下载。

根据官方的命令安装。

编辑~/.bashrc,在最后添加下面命令。

export PATH=/usr/local/cuda-12.1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-12.1/lib64

注意:需要把上面cuda-12.1改为你自己安装的CUDA的版本。

重新载入

source ~/.bashrc
sudo ldconfig

检查CUDA是否安装好。

nvcc -V

如果安装过程中没有任何报错,但是输入该命令之后,没有输出版本信息,那么是你的环境变量没有配置或者是没有正确配置。

6、安装cuDNN(可选)

需要主要要想下载cuDNN必须要注册NVIDIA账号,并且一定要勾选同意加入他们的社区,否则是不能下载的。并且这个下载之前是要认证的,所以你不能直接在服务上下载,否则下载的只是一个网页,我们需要在本地电脑上先下载,然后通过rz或者是scp命令上传到服务器中。

cuDNN下载

image-20230511181842121

image-20230511182057161

下载完成之后,解压到CUDA目录下。

tar -xvf 文件名
cd 文件夾
sudo cp include/* /usr/local/cuda-12.1/include
sudo cp lib/libcudnn* /usr/local/cuda-12.1/lib64
sudo chmod a+r /usr/local/cuda-12.1/include/cudnn*
sudo chmod a+r /usr/local/cuda-12.1/lib64/libcudnn*
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

7、安装PyTorch

点击这里下载PyTorch

image-20230512162536942

注意:安装的版本一定要和你CUDA版本一致。

安装的时候直接复制官方给出的命令即可。

然后我们可以使用下面的命令来验证是否安装成功。

python
import torch
torch.__version__
torch.cuda.is_available()

其中最后一句是关键,只有返回Ture,才能让Whisper使用显卡进行转录,否则是使用CPU进行转录。如果最后一句返回的是False,那么可能是你安装的PyTorch版本中使用的CUDA版本和你服务器中已经安装的CUDA版本不一致。

8、安装Whisper

安装之前需要使用conda创建一个虚拟环境。

conda create -n whisper python=3.10

激活虚拟环境。

conda activate whisper

退出虚拟环境。

conda deactivate

查看虚拟环境。

conda env list

删除虚拟环境。

conda remove -n whisper --all

先激活虚拟环境,然后输入下面一条命令即可安装。

pip install -U openai-whisper

如果没有任何报错,然后我们输入下面的命令,当看到信息输出时,说明安装成功。

whisper -h

9、Whisper的使用

第一次使用的时候比较慢,需要下载模型,使用的模型越大,转录的速度越慢,转录的准确性越高,Whisper对西班牙语的识别准确性最高,其次时意大利语,然后才是英语,而对于普通话的识别排在中间。

这里简单写一下Whisper的用法。

whisper 你要转录的音视频文件 --model large --language Chinese

更多用法可以使用whisper -h查看。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/523847.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ORACLE数据库长连接客户端持久的CLOSE_WAIT

前言 根据以往的项目构造,业务层数据库基本使用长连接形式进行批量操作。大部分周期有执行的链接基本正常。再长期的内测中也没有发生CLOSE_WAIT的现象。 上线后采用的数据库使用了新的版本,发现产生CLOSE_WAIY。根据开发经验和网上搜索,发…

『手撕 Mybatis 源码』01 - 基本原理与搭建

MyBatis的架构设计 Api接口层:提供API 增加、删除、修改、查询等接口,通过API接口对数据库进行操作 例如下面这些操作 sqlSession.selectOne(statementId, param); mapperProxy.findByCondition(param);数据处理层:解析sql根据调用请求完成…

机器学习模型的评估

(1)数据划分 将可用数据划分为三部分:训练集、验证集和测试集。在训练数据上训练模型。在验证数据上评估模型。模型准备上线之前,在测试数据上最后测试一次 不将数据划分为两部分,即训练集和测试集?在训练…

Java基础(二十三):反射机制

Java基础系列文章 Java基础(一):语言概述 Java基础(二):原码、反码、补码及进制之间的运算 Java基础(三):数据类型与进制 Java基础(四):逻辑运算符和位运算符 Java基础(五):流程控制语句 Java基础(六)&#xff1…

Linux内存管理 (1):内核镜像线性映射的建立

文章目录 1. 前言2. 分析背景3. 内核镜像线性映射的建立过程3.1 预备工作:内核解压缩3.2 建立内核镜像区域的线性映射3.2.1 定位内核入口3.2.2 建立内核线性映射前的其它启动工作3.2.2.1 将 CPU 设为 SVC 模式,且禁用 IRQ FIQ 中断3.2.2.2 获取处理器类…

【C++】实现 priority_queue --- 反函数

priority_queue 实际上是以 堆 的规则组织起来的数组&#xff0c;是一颗完全二叉树 **反函数 !!! 堆的向上向下调整 #pragma oncenamespace xiong {//反函数template<class T>struct less{bool operator()(const T& x, const T& y){return x < y;}};templat…

python列表逆序排列的方法

python中的列表是可以直接进行逆序排列的&#xff0c;但是在 python中&#xff0c;逆序排列也是有一定规则的&#xff0c;一般是按升序排序&#xff0c;也就是从左到右。比如 list[1,2,3,4]&#xff1b; 注意&#xff1a;顺序相同的元素可以放在同一行&#xff1b; 在 python中…

嵌入式电路基础

电路基础 器件基础基本电路术语与符号 信号浮动三态门&#xff08;三态缓冲器&#xff09;上下拉电阻基本元件与逻辑OC/OD门&#xff08;掌握原理&#xff0c;用途&#xff09;开放收集器&#xff08;OC门&#xff0c;NPN型三极管&#xff09;掌握原理、用途漏极开路&#xff0…

C++ STL—vector,map,set,list,deque等

STL是什么 STL是标准模板库&#xff0c;包括算法、容器和迭代器。 算法&#xff1a;包括排序、复制等常用算法容器&#xff1a;数据存放形式&#xff0c;包括序列式容器和关联式容器&#xff0c;序列式容器就是list,vector&#xff0c;关联式容器就是set,map等迭代器是在不暴…

考研复试刷题第八天:日期累加 【日期问题】

本来以为和上次那个简单题一样的&#xff0c;没啥难度&#xff0c;就是循环就完事了&#xff0c;结果超时了 超时代码: #include <iostream> using namespace std;//平年各个月份都多少天&#xff1f; int mouths [13] {0,31,28,31,30,31,30,31,31,30,31,30,31 };//判…

Spring事务深度学习

jdbcTemp Spring 框架对 JDBC 进行封装&#xff0c;使用 JdbcTemplate 方便实现对数据库操作。 JdbcTemp的使用 对应依赖 <!-- MySQL驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><ve…

已知相机内外参通过COLMAP进行稀疏/稠密模型重建操作过程

在https://colmap.github.io/faq.html#reconstruct-sparse-dense-model-from-known-camera-poses 中介绍了已知相机内外参如何通过COLMAP进行稀疏和稠密模型重建的过程&#xff0c;这里按照说明操作一遍&#xff1a; 在instant-ngp中&#xff0c;执行scripts/colmap2nerf.py时…

request页面代码逻辑

一. 封装请求基地址 在src目录下面建一个api文件夹 然后在文件夹里面新建一个专门放用户请求的use.js 用axios发送请求 在use.js文件夹里导入request 在src目录新建发送请求的页面并导入封装好的请求 然后把这个请求封装成一个函数&#xff0c;这个函数里需要传入两个参数。 …

Xavier或TX2配置ipv4地址

输入ifconfig查看本地ipv4地址&#xff0c;发现并没有设置&#xff0c;无法通过以太网与其他主机通信。下面来配置系统的以太网地址。 1、编辑文件/etc/network/interfaces: sudo gedit /etc/network/interfaces2、用下面的内容来替换有关eth0的行&#xff0c;并且将ip地址等信…

Java中抽象类和接口的区别,一文弄懂,图文并茂

目录 前言 1. 抽象类 1.1 定义 1.2 示例 1.3 使用 1.3.1代码-抽象类 1.3.2代码-抽象类继承类使用 1.3.3输出结果为&#xff1a; 1.4UML类图展示类间的关系 2. 接口 2.1 定义 2.2 示例 2.2.1代码-接口 2.3 使用 2.3.1代码-接口实现 2.3.2代码-接口实现类使用 2…

【Linux】驱动内核调试,没有几板斧,怎么能行?

目录 前言&#xff1a; 一、基础打印工具 &#xff08;1&#xff09;printk---最常用 ①Log Buffer: ②Console&#xff1a; ③RAM Console&#xff1a; &#xff08;2&#xff09;动态打印 ①动态打印与printk之间的区别联系 ②动态打印常用的例子 ③动态打印转为pri…

C语言实战 - 贪吃蛇(图形界面)

由于本人精力有限&#xff0c;暂时先把素材和代码放上&#xff0c;等以后有空再补教程。 目录 效果预览 准备工作 EasyX图形库 音频素材 代码编写 Transfer.h文件 game.cpp文件 main.c文件 效果预览 先来看一下最终成品效果 贪吃蛇图形界面 准备工作 EasyX图形库 这…

[230513] TPO72 | 2022年托福阅读真题第1/36篇 | 10:45

Invading Algae 目录 Invading Algae 全文 题目 Paragraph 1 P1 段落大意 问题1 Paragraph 2 P2 段落大意 问题2 *问题3* Paragraph 3 P3 段落大意 问题4 Paragraph 4 P4 段落大意 Paragraph 5 P5 段落大意 *问题5* *问题6* 问题7 问题8 问题9…

【计算机组成原理】第二章 运算方法和运算器

系列文章目录 第一章 计算系统概论 第二章 运算方法和运算器 第三章 多层次的存储器 第四章 指令系统 第五章 中央处理器 第六章 总线系统 第七章 外围设备 第八章 输入输出系统 文章目录 系列文章目录第一章 计算系统概论 **第二章 运算方法和运算器** 第三章 多层次的存储器…

C++移动构造函数

一、背景 拷贝构造函数又分为浅拷贝和深拷贝&#xff1a; 浅拷贝&#xff1a;当类中有指针时&#xff0c;直接复制&#xff0c;会使多个指针指向同一块内存&#xff0c;导致重复析构 深拷贝&#xff1a;每次都是重新赋值一份&#xff0c;这种方法内存消耗较大 因此C就提供…