whisper之初步使用记录

news2025/2/22 8:38:12

文章目录

前言

一、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 whisper

model = 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.coloradmin.cn/o/1671438.html

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

相关文章

ssm125四六级报名与成绩查询系统+jsp

四六级报名与成绩查询系统的设计与实现 摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对四六级报名信息管理混乱&am…

外卖 点金推广实战课程,2024外卖 点金推广全流程(7节课+资料)

课程内容: 外卖点金推广实操课程 资料 01 1-了解外卖.mp4 02 第一节:点金推广的说明.mp4 03 第二节:如何降低点金推广的成本,mp4 04 第三节:如何计算点金推广的流速,mp4 05 第四节:如何提升点金的精准度,mp4 06 第五节:点金推广实操,mp4 07 点金推广高级教程…

UE4_照亮环境_不同雾效的动态切换

一、问题及思路: 我们在一个地图上,经常切换不同的区域,不同的区域可能需要不同的色调,例如暖色调的野外或者幽暗的山洞,这两种环境上,雾效的选用肯定不一样,夕阳西下的户外用的就是偏暖的色调&…

基于微信小程序+JAVA Springboot 实现的【马拉松报名系统】app+后台管理系统 (内附设计LW + PPT+ 源码+ 演示视频 下载)

项目名称 项目名称: 马拉松报名系统微信小程序 项目技术栈 该项目采用了以下核心技术栈: 后端框架/库: Java SSM框架数据库: MySQL前端技术: 微信开发者工具、uni-app其他技术: JSP开发技术 项目展示 …

CANopen总线_CANOpen开源协议栈

CANopen是自动化中使用的嵌入式系统的通信协议栈和设备配置文件规范。就OSI 模型而言,CANopen 实现了以上各层,包括网络层。 CANopen 标准由一个寻址方案、几个小型通信协议和一个由设备配置文件定义的应用层组成。通信协议支持网络管理、设备监控和节点…

防火墙远程桌面端口号修改,通过防火墙修改远程桌面的端口号详细操作步骤

使用防火墙修改远程桌面的端口号是一项涉及系统安全和网络配置的重要任务。 以下是详细的操作步骤,旨在确保您能够安全、有效地完成此操作: 一、准备阶段 1. 了解默认端口号:远程桌面端口号通常是3389,这是一个用于远程访问和控…

springboot+vue+mybatis生活废品回收系统+PPT+论文+讲解+售后

该生活废品回收系统采用B/S架构、前后端分离以及MVC模型进行设计,并采用java语言以及springboot框架进行开发。该系统主要设计并完成了管理过程中的用户登录、个人信息修改、义捐活动、在线咨询、订单评价、废品订单、废品、回收再利用技巧、废品回收员、用户等功能…

幻兽帕鲁(公益入库)教程

先安装“SteamtoolsSetup”, 安装好桌面会出来个steam图标的。然后打开“幻兽帕鲁文件夹” 把那2个脚本拖进去那个steam图标。只要显示“已编译了1个Lua脚本”“已更新了1个清单文件”将在Steam重启后生效。然后退出steam,然后重启steam就可以了&#xf…

霍金《时间简史 A Brief History of Time》书后索引(I--L)

A–D部分见:霍金《时间简史 A Brief History of Time》书后索引(A–D) E–H部分见:霍金《时间简史 A Brief History of Time》书后索引(E–H) 图源:Wikipedia INDEX I Imaginary numbers Ima…

新消息:2024中国(厦门)国际义齿加工产品展览会

DPE2024中国(厦门)国际义齿加工产品展览会暨学术研讨会 2024 China (Xiamen) International Denture Processing Products Exhibition 时 间:2024年11月1-3日 November 1-3, 2024 地 点:厦门国际会展中心 Xiamen Int…

强化训练:day7(字符串中找出连续最长的数字串、岛屿数量、拼三角)

文章目录 前言1. 字符串中找出连续最长的数字串1.1 题目描述1.2 解题思路1.3 代码实现 2. 岛屿数量2.1 题目描述2.2 题目描述2.3 代码实现 3. 拼三角3.1 题目描述3.2 解题思路3.3 代码实现 总结 前言 1. 字符串中找出连续最长的数字串   2. 岛屿数量   3. 拼三角 1. 字符串…

LVGL移植到ARM开发板(GEC6818)

源码下载:点击跳转 下载好三个文件后,将其解压缩,并合到一个文件夹里面—— 1、修改 Makefile 删除 -Wshift-negative-value 2、修改 main.c 3、修改 lv_drv_conf.h 在lv_drv_conf.h文件屏幕驱动文件刚好与开发板LCD驱动文件一致&#xff0c…

轻松掌握RAID级别

一、官方说明: RAID(英文全称 Redundant Array of Independent Disks)翻译成中文(独立磁盘冗余阵列)。 RAID 是一种将多块独立磁盘,组成一组逻辑磁盘的技术。RAID 级别分为 0、1、3、5、6等,可…

算法设计与分析(超详解!) 第三节 贪婪算法

1.贪心算法基础 1.贪心算法的基本思想 贪心算法是从问题的某一个初始解出发,向给定的目标推进。但它与普通递推求解过程不同的是,其推动的每一步不是依据某一固定的递推式,而是做一个当时看似最佳的贪心选择,不断地将问题实例归…

软件测试面试题100题

一、测试理论 3.1 你们原来项目的测试流程是怎么样的? 我们的测试流程主要有三个阶段:需求了解分析、测试准备、测试执行。 1、需求了解分析阶段 我们的 SE 会把需求文档给我们自己先去了解一到两天这样,之后我们会有一个需求澄清会议, …

VS2022 错误 LNK2001 无法解析的外部符号

错误 LNK2001 无法解析的外部符号 “private: static struct std::once_flag ThreadPool::flag_” (?flag_ThreadPool0Uonce_flagstdA) STL D:\VS2019\STL\源.obj 1 错误原因 :链接器无法解析 ThreadPool::flag_ 这个静态成员变量。这通常是因为静态成员变量在声明…

【linux-IMX6ULL-uboot初次编译及烧录

目录 1. uboot基本概念1. 1 uboot的编译 3. uboot的烧录2. uboot的烧录结果 第一次不进行原理性的探究,也不关注源码内容,只是进行一个直观的了解,对uboot进行初次编译并进烧录到IMX6ULL板卡中 1. uboot基本概念 U-Boot(Universa…

计算机网络 3.3OSI参考模型

第三节 OSI参考模型 一、认识OSI/RM 1.描述:定义了一个连接异种计算机的标准主体结构,给网络设计者提供了一个参考规范。 2.组织:国际标准化组织. 3.发展:1979年研究并提出了该国际标准。 4.分层原则: ①层次的划…

通过任意文件读取获取weblogic账号密码

对于weblogic获取到账号密码的前提是有任意文件读取存在,当任意文件读取存在时是可以读取配置文件来对账号密码进行解密。weblogic密码使用AES(老版本3DES)加密,对称加密可解密,只需要找到用户的密文与加密时的密钥即可…

对称加密算法在线工具集

上一篇讲到对称加密算法,对称加密的特点是,在加密和解密时使用相同的密钥,或是使用两个可以简单地相互推算的密钥。常见的对称加密算法有 AES、SM4、ChaCha20、3DES、Salsa20、DES、Blowfish、IDEA、RC5、RC6、Camellia。 以下分享对称加密算…