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

news/2024/11/16 14:36:26/

时长比较短的音频: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.ppmy.cn/news/1201905.html

相关文章

Apache Doris (五十二): Doris Join类型 - Broadcast Join

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频 目录 1. Broadcast Join原理

RLHF的替代算法之DPO原理解析:从Zephyr的DPO到Claude的RAILF

前言 本文的成就是一个点顺着一个点而来的,成文过程颇有意思 首先,如上文所说,我司正在做三大LLM项目,其中一个是论文审稿GPT第二版,在模型选型的时候,关注到了Mistral 7B(其背后的公司Mistral AI号称欧洲…

【排版教程】使用Latex ACM 双栏会议模板如何添加跨栏的图片

0 前言 模板中默认的图片插入的写法是下图这样的单栏图片,但是一般我们自己绘制的系统整体结构框图都是比较长的(横向长度) 我们想插入一个类似于这样的长图片 但是模板中给的这个例子,是插入的一个pdf文件。在实际使用中&…

mysql 问题解决 3

4 事务 1、什么是数据库的事务? 数据库的事务是一个作为单个工作单位执行的一系列操作,这些操作要么完全地执行,要么完全不执行。事务由四个主要特性定义,通常被称为ACID属性: 原子性(Atomicity):事务中的所有操作都被视为一个整体,它们要么全部成功,要么全部失败。…

企业数字化转型与供应链效率-基准回归复刻(2007-2022年)

参照张树山(2023)的做法,本团队对来自统计与决策《企业数字化转型与供应链效率》一文中的基准回归部分进行复刻。文章实证检验企业数字化转型对供应链效率的影响。用年报词频衡量上市公司数字化转型程度,以库存周转天数来衡量供应…

移除元素,原地修改输入数组

题目: 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数…

VSCode修改主题为Eclipse 绿色护眼模式

前言 从参加开发以来,一直使用eclipse进行开发,基本官方出新版本,我都会更新。后来出来很多其他的IDE工具,我也尝试了,但他们的主题都把我劝退了,黑色主题是谁想出来?😂 字体小的时…

c++实现组播和广播的发送和接收端

广播 接收端 #include <iostream> #include <WinSock2.h> #include <WS2tcpip.h> #include <vector> #include "MsgDefForDataServer23Tai.h" #include "LocatorData.h"#pragma comment(lib, "ws2_32.lib") using names…