从Hugging Face下载数据测试whisper、fast_whisper耗时

时长比较短的音频:https://huggingface.co/datasets/PolyAI/minds14/viewer/en-US

时长比较长的音频:https://huggingface.co/datasets/librispeech_asr?row=8

此次测试过程暂时只使用比较短的音频

使用fast_whisper测试

下载安装,参考官方网站即可

 报错提示:

Could not load library libcudnn_ops_infer.so.8. Error: libcudnn_ops_infer.so.8: cannot open shared object file: No such file or directory
Please make sure libcudnn_ops_infer.so.8 is in your library path!

解决办法:

找到有libcudnn_ops_infer.so.8 的路径,在我的电脑中,改文件所在的路径为

在终端导入  export LD_LIBRARY_PATH=/opt/audio/venv/lib/python3.10/site-packages/nvidia/cudnn/lib:$LD_LIBRARY_PATH

test_fast_whisper.py


import subprocess
import os
import time
import unittest
import openpyxl
from pydub import AudioSegment
from datasets import load_datasetfrom faster_whisper import WhisperModelclass TestFastWhisper(unittest.TestCase):def setUp(self):passdef test_fastwhisper(self):# 替换为您的脚本路径# 设置HTTP代理os.environ["http_proxy"] = "http://10.10.10.178:7890"os.environ["HTTP_PROXY"] = "http://10.10.10.178:7890"# 不知道此处为什么不能生效,必须要在终端中手动导入os.environ["LD_LIBRARY_PATH"] = "/opt/audio/venv/lib/python3.10/site-packages/nvidia/cudnn/lib:$LD_LIBRARY_PATH"# 设置HTTPS代理os.environ["https_proxy"] = "http://10.10.10.178:7890"os.environ["HTTPS_PROXY"] = "http://10.10.10.178:7890"print("load whisper")# 使用fast_whisper model_size = "large-v2"# Run on GPU with FP16fast_whisper_model = WhisperModel(model_size, device="cuda", compute_type="float16")minds_14 = load_dataset("PolyAI/minds14", "en-US", split="train")  # for en-USworkbook = openpyxl.Workbook()# 创建一个工作表worksheet = workbook.active# 设置表头worksheet["A1"] = "Audio Path"worksheet["B1"] = "Audio Duration (seconds)"worksheet["C1"] = "Audio Size (MB)"worksheet["D1"] = "Correct Text"worksheet["E1"] = "Transcribed Text"worksheet["F1"] = "Cost Time (seconds)"for index, each in enumerate(minds_14, start=2):audioPath = each["path"]print(audioPath)# audioArray = each["audio"]audioDuration = len(AudioSegment.from_file(audioPath))/1000audioSize = os.path.getsize(audioPath)/ (1024 * 1024)CorrectText = each["transcription"]tran_start_time = time.time()segments, info = fast_whisper_model.transcribe(audioPath, beam_size=5)segments = list(segments)  # The transcription will actually run here.print("Detected language '%s' with probability %f" % (info.language, info.language_probability))text = ""for segment in segments:text += segment.textcost_time =  time.time() - tran_start_timeprint("Audio Path:", audioPath)print("Audio Duration (seconds):", audioDuration)print("Audio Size (MB):", audioSize)print("Correct Text:", CorrectText)print("Transcription Time (seconds):", cost_time)print("Transcribed Text:", text)worksheet[f"A{index}"] = audioPathworksheet[f"B{index}"] = audioDurationworksheet[f"C{index}"] = audioSizeworksheet[f"D{index}"] = CorrectTextworksheet[f"E{index}"] = textworksheet[f"F{index}"] = cost_time# breakworkbook.save("fast_whisper_output_data.xlsx")print("数据已保存到 fast_whisper_output_data.xlsx 文件")if __name__ == '__main__':unittest.main()

使用whisper测试

下载安装,参考官方网站即可,代码与上面代码类似

测试结果可视化

不太熟悉用numbers,凑合着看一下就行

很明显,fast_whisper速度要更快一些

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

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

相关文章

51单片机-串口通信

文章目录 前言1.基础介绍2.串口实战3.4. 前言 1.基础介绍 常见1,2,3,电源 常用方式1 fosc外部晶振 2.串口实战 3. 4.

【脑机接口 算法】EEGNet: 通用神经网络应用于脑电信号

EEGNet: 神经网络应用于脑电信号 中文题目论文下载:算法程序下载:摘要1 项目介绍2 EEGNet网络原理2.1EEGNet原理架构2.2FBCCA 算法2.3自适应FBCCA算法 3EEGNet网络实现4结果 中文题目 论文下载: DOI: 算法程序下载: 地址 摘要…

Linux下yum源配置实战

一、Linux下软件包的管理 1、软件安装方式 ① RPM包管理(需要单独解决依赖问题) ② YUM包管理(需要有网络及YUM仓库的支持,会自动从互联网下载软件,自动解决依赖) ③ 源码安装(安装过程比较…

快速搭建开源分布式任务调度系统DolphinScheduler并远程访问

使用Docker部署开源分布式任务调度系统DolphinScheduler 文章目录 使用Docker部署开源分布式任务调度系统DolphinScheduler前言1. 安装部署DolphinScheduler1.1 启动服务 2. 登录DolphinScheduler界面3. 安装内网穿透工具4. 配置Dolphin Scheduler公网地址5. 固定DolphinSchedu…

windows上 Nexus 批量上传 maven依赖npm依赖

windows上 Nexus 批量上传 maven依赖/npm依赖 前言:windows系统上要有git环境,不然sh文件执行不了 1.批量上传maven依赖 设置脚本,把脚本放在依赖包的根目录执行,脚本名为upload.sh #!/bin/bash# 定义变量 while getopts &quo…

Kotlin文件和类为什么不是一对一关系

在Java中,一个类文件的public类名必须和文件名一致,如何不一致就会报异常,但是在kotlin的文件可以和类名一致,也可以不一致。这种特性,就跟c有点像,毕竟c的.h 和 .cpp文件是分开的。只要最终编译的时候对的…

MSSQL 配置ORACLE ​链接服务器

在有些场景,我们需要整合其他异构数据库的数据。我们可以使用代码去读取,经过处理后,再将数据保存到MSSQL数据库中。如果数据量比较大,但处理的逻辑并不复杂的情况下,这种方式就不是最好的办法。这时可以使用使用链接服…

C++初阶 | [二] 类和对象(上)

摘要:class,成员函数,成员变量,类的大小,this 指针 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。 C是基于面向对象的,关注的是对象…

ORA-00257: Archiver error. Connect AS SYSDBA only until resolved错误解决

错误的原因:是因为服务器分配空间不足,数据库归档日志满导致系统数据库登陆失败。 解决办法:1.删除以前的日志 2.增大归档日志的容量 3.关闭归档模式 一、删除以前的容量 1.登录账号后,查看ORACLE_BASE目录 【oraclelocalhost~】$…

【FastCAE源码阅读5】使用VTK实现鼠标拾取对象并高亮

鼠标拾取对象是很多软件的基本功能。FastCAE的拾取比较简单,是通过VTK实现的。 对几何而言,拾取类型切换在工具栏上,单击后再来单击视图区对象进行拾取,拾取后的对象会高亮显示。效果如下图: 一、拾取对象 拾取对象…

普洱茶上市?澜沧古茶通过港股聆讯

近日,澜沧古茶成功通过港交所聆讯,随后在11月7日披露了相关资料集。该公司即将在港交所主板上市,此次上市由中信建投国际和招商证券国际担任联席保荐人。据了解,澜沧古茶或将成为内地茶企第一股,也将成为“普洱茶第一股…

汽车发动机各系统部件构造图解及名称大全(超详细)

我们都知道发动机是汽车的心脏,相信大家都有东拼西凑的学一些发动机知识,今天汽车维修网小编给大家系统的整理整个发动机的基础知识,如果能认真看完,相信肯定有所收获。全文3065字,81幅结构图,建议收藏、分享后再慢慢看。 首先我们来看一下 发动机总成构造图解 发动机…

带你走进中国十大名校,全面了解学校历史和文化

一、资源描述 本套资源是很不错的,带你实地走进中国十大名校的校园,看看校园内的著名景点和建筑,同时讲解十大名校的历史和文化。这些高校不仅是中国十大名校,可能也是中国排名前十的学校,更是众多学子梦寐以求的&…

【刚体姿态运动学】角速度和欧拉角速率的换算关系的详细推导

0 引言 本文以一种新的角度推导刚体姿态运动学,也即角速度和欧拉角速率之间的换算,不同于相似博文的地方在于,本文旨在从原理上给出直观清晰生动的解释。将详细过程记录于此,便于后续学习科研查找需要。 1 符号 符号含义 { E }…

爱上C语言:操作符详解(上)

🚀 作者:阿辉不一般 🚀 你说呢:生活本来沉闷,但跑起来就有风 🚀 专栏:爱上C语言 🚀作图工具:draw.io(免费开源的作图网站) 如果觉得文章对你有帮助的话,还请…

双通道 H 桥电机驱动芯片AT8833,软硬件兼容替代DRV8833,应用玩具、打印机等应用

上期小编给大家分享了单通道 H 桥电机驱动芯片,现在来讲一讲双通道的驱动芯片。 双通道 H 桥电机驱动芯片能通过控制电机的正反转、速度和停止等功能,实现对电机的精确控制。下面介绍双通道H桥电机驱动芯片的工作原理和特点。 一、工作原理 双通道 H 桥电…

毫米波雷达技术在自动驾驶中的关键作用:安全、精准、无可替代

自动驾驶技术正以前所未有的速度不断演进,而其中的关键之一就是毫米波雷达技术。作为自动驾驶系统中的核心感知器件之一,毫米波雷达在保障车辆安全、实现精准定位和应对复杂环境中发挥着不可替代的作用。本文将深入探讨毫米波雷达技术在自动驾驶中的关键…

基于Springboot的时装购物系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的时装购物系统(有报告)。Javaee项目,springboot项目。 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 项目介绍…

【性能测试】Linux下Docker安装与docker-compose管理容器(超细整理)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、Linux下Docker…

RuoYi-Vue 在Swagger和Postman中 上传文件测试方案

RequestPart是Spring框架中用于处理multipart/form-data请求中单个部分的注解。在Spring MVC中,当处理文件上传或其他类型的多部分请求时,可以使用RequestPart注解将请求的特定部分绑定到方法参数上。 使用RequestPart注解时,需要指定要绑定…