whisper之初步使用记录

文章目录

前言

一、whisper是什么?

二、使用步骤

1.安装

2.python调用

3.识别效果评估

4.一点封装

5.参考链接

总结


前言

随着AI大模型的不断发展,语音识别等周边内容也再次引发关注,通过语音转文字再与大模型交互,从而实现语音与大模型交互。

今天我们介绍下语音识别领域的顶级选手whisper。


一、whisper是什么?

whisper是openai开源的语音识别模型,也是使用了Transformer架构。

openai宣称whisper的语音识别能力已经到了人类的水平。

接下来我们参考Github结合其他技术博客内容,实操下whisper的使用。

二、使用步骤

1.安装

1)pip安装whisper

pip install -U openai-whisper

2)安装ffmpeg

下载地址:ffmpeg下载地址icon-default.png?t=N7T8https://github.com/BtbN/FFmpeg-Builds/releases

选择对应操作系统的安装包即可

Linux系统也可以直接命令方式安装。

对于Windows系统,下载到本地后解压缩即可,但是需要设置环境变量,路径bin(就是在这个路径下有ffmpeg.exe)

特意说明:whisper内部其实调用了ffmpeg,使用的就是cmd形式,应该是将音频文件转为流式以及按时间段分成小段音频(最终识别结果就是按时间段分开的)

2.python调用

import whispermodel = whisper.load_model("base")
result = model.transcribe("audio.mp3")
print(result["text"])

第一次运行的时候,首先需要下载模型文件,base属于比较小尺寸的模型,还有small、large等。

另外如果可能报错,可以尝试重启下开发工具再试,可能就好了(我就遇到这种问题,可能没有重启开发工具,找不到ffmpeg)

3.识别效果评估

我使用了一个11分钟的会议录音文件测试。CPU环境。

使用base模型,用时约2分钟,质量还行

使用small模型,用时约4分钟,质量比base模型的好一些,但是有些反而不如base模型的。

整体上,还行吧。

4.一点封装

由于不同大小的模型识别速度上还是差不少,因此还要结合实际情况选择使用哪个模型,基于这个基础对调用做了一点封装

import whisper
from datetime import datetime# 模型根路径
model_root="E:\Models\whisper"class whisper_utils:# model_name="base"# model_name="small"def __init__(self,model_name="base"):self.model = whisper.load_model(name=model_name,download_root=model_root)def audio_to_txt(self,audio_file: str):now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")print(f"{now} 开始识别…")result = self.model.transcribe(audio_file)now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")print(f"{now} 识别完成")return result

这里我把模型路径自己设置了下。

和多数模型文件一样,默认情况下,whisper模型也会下载到C盘Users下当前用户文件夹的.cache下,很容易导致C盘塞满。 

5.参考链接

openai/whisper: Robust Speech Recognition via Large-Scale Weak Supervision (github.com)icon-default.png?t=N7T8https://github.com/openai/whisper


总结

本篇主要介绍了whisper的安装、调用、识别效果评估以及一点调用封装。希望可以帮助正好有需要的小伙伴。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

驾驶证OCR识别接口如何对接

驾驶证OCR识别接口也叫驾驶证文字识别OCR接口,指的是传入驾驶证照片,精准识别静态驾驶证图像上的文字信息。那么驾驶证OCR文字识别接口如何对接呢? 首先我们找到一家有驾驶证OCR识别接口的服务商,数脉API,然后注册账户&#xff0…

Celery + redis 异步分布式任务队列安装测试

Celery 异步分布式任务队列 Celery 5.4.0 官方文档 环境:3台 centos7.9 普通用户 redisSchedulerworkerdp951dp96111dp971 文章目录 Celery 异步分布式任务队列1、Celery 介绍2、安装部署2.1 安装消息中间件(broker)2.2 安装Celery 3、功能…

骑出好身材,女士专属,这项运动让你健康美丽两不误。

在繁忙的生活节奏中,寻找一项既能放松心情又能塑形美体的运动,成为了现代女性的新追求。骑行,这项绿色低碳的运动方式,正以其独特的魅力,成为女士们的新宠。它不仅能够带你穿梭于城市的喧嚣与自然的宁静之间&#xff0…

C++面向对象程序设计 - 虚函数

在C中,虑函数(Virtual Function)是面向对象编程(OOP)中的一个重要概念,它允许派生类(或称为子类)覆盖基类(或称为父类)中的成员函数。当通过基类指针或引用调…

遥控挖掘机之ESP8266调试心得(1)

ESP8266调试心得 1. 前言2.遇到的问题2.1 ESP8266模块建立TCP连接时候报错2.2 指令异常问题 3. 更新ESP8266固件3. ESP8266的部分AT指令3. 连接步骤3.1 模块与电脑连接3.2.1 电脑上的设置3.2.2 ESP8266模块作为客户机(TCP Cilent)的设置步骤 3.2 模块与模…

电脑硬盘故障,这5种情况要了解!

在数字化时代,电脑硬盘作为存储数据的重要设备,其稳定性和安全性直接关系到用户的数据安全和工作效率。然而,硬盘故障却是一个无法完全避免的问题。为什么会出现电脑硬盘故障?出现该问题时应该如何解决?一文带你弄懂答…

k8s部署最新版zookeeper集群(3.9.2),并配置prometheus监控

目录 zookeeper集群部署创建zookeeper文件夹namespace.yamlscripts-configmap.yamlserviceaccount.yamlstatefulset.yamlsvc-headless.yamlsvc.yamlmetrics-svc.yaml执行部署 接入prometheus访问prometheus查看接入情况导入zookeeper监控模版监控展示 zookeeper集群部署 复制粘…

Linux 操作系统TCP、UDP

1、TCP服务器编写流程 头文件&#xff1a; #include <sys/socket.h> 1.1 创建套接字 函数原型&#xff1a; int socket(int domain, int type, int protocol); 参数&#xff1a; domain: 网域 AF_INET &#xff1a; IPv4 AF_INET6 &a…

第十五届蓝桥杯省赛大学B组(c++)

很幸运拿了辽宁赛区的省一,进入6月1号的国赛啦... 这篇文章主要对第十五届省赛大学B组(C)进行一次完整的复盘,这次省赛2道填空题6道编程题: A.握手问题 把握手情景看成矩阵: 粉色部分是7个不能互相捂手的情况 由于每个人只能和其他人捂手, 所以黑色情况是不算的 1和2握手2和…

Vue+OpenLayers7入门到实战:OpenLayers解析通过fetch请求的GeoJson格式数据,并叠加要素文字标注,以行政区划边界为例

返回《Vue+OpenLayers7》专栏目录:Vue+OpenLayers7入门到实战 前言 本章介绍如何使用OpenLayers7在地图上通过fetch请求geojson数据,然后通过OpenLayers解析为Feature要素叠加到图层上,并且通过动态设置标注方式显示要素属性为文字标注。 本章还是以行政区划边界为例,这个…

大模型LLM之SFT微调总结

一. SFT微调是什么 在大模型的加持下现有的语义理解系统的效果有一个质的飞跃&#xff1b;相对于之前的有监督的Pre-Train模型&#xff1b;大模型在某些特定的任务中碾压式的超过传统nlp效果&#xff1b;由于常见的大模型参数量巨大&#xff1b;在实际工作中很难直接对大模型训…

游戏陪玩平台app小程序H5源码交付游戏陪玩接单软件游戏陪玩源码 陪玩小程序陪玩工作室运营模式陪玩管理系统游戏陪玩工作室怎么做

提供陪玩平台源码&#xff0c;陪玩系统源码&#xff0c;陪玩app源码&#xff0c;团队各部门配备齐全&#xff0c;分工明确&#xff0c;及时对接开发进度&#xff0c;保证开发效率 一、陪玩平台源码的功能介绍 1、派单大厅:陪玩系统源码的派单大厅内支持用户通过语音连麦的方式…

Vue.js-----vue组件

能够说出vue生命周期能够掌握axios的使用能够了解$refs, $nextTick作用能够完成购物车案例 Vue 生命周期讲解 1.钩子函数 目标&#xff1a;Vue 框架内置函数&#xff0c;随着组件的生命周期阶段&#xff0c;自动执行 作用: 特定的时间点&#xff0c;执行特定的操作场景: 组…

硬性清空缓存的方法

前端发布代码后&#xff0c;我们是需要刷新页面再验证的。有时候仅仅f5 或者ctrlshiftdelete快捷键仍然有历史缓存&#xff0c;这时可以通过下面的方法硬性清空缓存。 以谷歌浏览器为例&#xff0c;打开f12&#xff0c;右键点击刷新按钮&#xff0c;选择【清空缓存并硬性加载】…

Windows只能安装在GPT磁盘上

转换磁盘分区形式 步骤1. 先按照正常流程使用Windows系统安装光盘或系统U盘引导计算机。 步骤2. 在Windows安装程序中点击“开始安装”&#xff0c;然后按ShiftF10打开命令提示符。 步骤3. 依次输入以下命令&#xff0c;并在每一行命令后按一次Enter键执行。 步骤4. 等待转换…

C++ | Leetcode C++题解之第78题子集

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<int> t;vector<vector<int>> ans;void dfs(int cur, vector<int>& nums) {if (cur nums.size()) {ans.push_back(t);return;}t.push_back(nums[cur]);dfs(cur 1, nums);t.po…

自动驾驶学习2-毫米波雷达

1、简介 1.1 频段 毫米波波长短、频段宽,比较容易实现窄波束,雷达分辨率高,不易受干扰。波长介于1~10mm的电磁波,频率大致范围是30GHz~300GHz 毫米波雷达是测量被测物体相对距离、相对速度、方位的高精度传感器。 车载毫米波雷达主要有24GHz、60GHz、77GHz、79GHz四个频段。 …

深度学习基础之《TensorFlow框架(17)—卷积神经网络》

一、卷积神经网络介绍 1、背景 随着人工智能需求的提升&#xff0c;我们想要做复杂的图像识别&#xff0c;做自然语言处理&#xff0c;做语义分析翻译等等&#xff0c;多层神经网络的简单叠加显然力不从心 2、卷积神经网络与传统多层神经网络对比 &#xff08;1&#xff09;传…

实战 | 18行代码轻松实现人脸实时检测【附完整代码与源码详解】Opencv、人脸检测

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

【图像识别】Swin Transformer

一、引言 论文&#xff1a; Swin Transformer: Hierarchical Vision Transformer using Shifted Windows 作者&#xff1a; Microsoft Research Asia 代码&#xff1a; Swin Transformer 特点&#xff1a; 提出滑动窗口自注意力 (Shifted Window based Self-Attention) 解决Vi…