当前位置: 首页 > news >正文

解决whisper 本地运行时GPU 利用率不高的问题

        

        我在windows 环境下本地运行whisper 模型,使用的是nivdia RTX4070 显卡,结果发现GPU 的利用率只有2% 。使用

import torch
print(torch.cuda.is_available())

返回TRUE。表示我的cuda 是可用的。

最后在github 的下列网页上找到了问题

极低的 GPU 利用率 #140

最关键的是

1 .运行之前,清除GPU 缓存

torch.cuda.empty_cache()

 2 使用小的whisper 模型,我使用

model =load_model("base").to("cuda")

3 最关键的是 在model.transcribe的参数中设置   beam_size = 5,一下子GPU 的利用率到了20%,当beam_size = 8 时,GPU 利用率可达30%左右。

model.transcribe(arr,language="en", prompt=prompt,fp16 =False,beam_size = 8,verbose =True,condition_on_previous_text =False)["text"]

下面是我完整的测试程序

import os
import sys
import os.path
import openai
#from dotenv import load_dotenv
import torch
#import whisper
from whisper  import load_model
import numpy as np
#from pyannote.audio import Pipeline
from pydub import AudioSegment
#os.environ['OPENAI_API_KEY'] ="sk-ZqGx7uD7sHMyITyIrxFDjbvVEAi84izUGGRwN23N9NbnqTbL"
#os.environ['OPENAI_BASE_URL'] ="https://api.chatanywhere.tech/v1"
print(torch.cuda.is_available())
torch.cuda.empty_cache()
model =load_model("base").to("cuda")
audio = AudioSegment.from_mp3("daily.mp3") #sys.argv[1]segment_length = 25 * 60
duration = audio.duration_seconds
print('Segment length: %d seconds' % segment_length)
print('Duration: %d seconds' % duration)segment_filename = os.path.basename("daily.mp3") #sys.argv[1]
segment_filename = os.path.splitext(segment_filename)[0]
number_of_segments = int(duration / segment_length)
segment_start = 0
segment_end = segment_length * 1000
enumerate = 1
prompt = ""for i in range(number_of_segments):audio_segment = audio[segment_start:segment_end]exported_file = './tmp/' + segment_filename + '-' + str(enumerate) + '.mp3'audio_segment.export(exported_file, format="mp3")print('Exported segment %d of %d' % (enumerate, number_of_segments))#f = open(exported_file, "rb")#audio_segment = audio[segment_start:segment_end]if audio_segment.frame_rate != 16000: # 16 kHzaudio_segment = audio_segment.set_frame_rate(16000)if audio_segment.sample_width != 2:   # int16audio_segment = audio_segment.set_sample_width(2)if audio_segment.channels != 1:       # monoaudio_segment = audio_segment.set_channels(1)        arr = np.array(audio_segment.get_array_of_samples())arr = arr.astype(np.float32)/32768.0#beam_size = 5非常重要,=8 GPU 利用率30%左右data = model.transcribe(arr,language="en", prompt=prompt,fp16 =False,beam_size = 8,verbose =True,condition_on_previous_text =False)["text"]print('Transcribed segment %d of %d' % (enumerate, number_of_segments))f = open(os.path.join('./transcripts/', segment_filename + '.txt'), "a")f.write(data)f.close()prompt += datasegment_start += segment_length * 1000segment_end += segment_length * 1000enumerate += 1

 beam_size到底是什么意思我并没有搞清楚

beam size(又名 beam width)控制生成输出时每个步骤中探索的路径数。这是个啥呀?

相关文章:

解决whisper 本地运行时GPU 利用率不高的问题

我在windows 环境下本地运行whisper 模型,使用的是nivdia RTX4070 显卡,结果发现GPU 的利用率只有2% 。使用 import torch print(torch.cuda.is_available()) 返回TRUE。表示我的cuda 是可用的。 最后在github 的下列网页上找到了问题 极低的 GPU 利…...

模拟实战-用CompletableFuture优化远程RPC调用

实战场景 这是广州某500-900人互联网厂的面试原题 手写并发优化解决思路 我们要调用对方的RPC接口,我们的RPC接口每调用一次对方都会阻塞50ms 但是我们的业务要批量调用RPC,例如我们要批量调用1k次,我们不可能在for循环里面写1k次远程调用…...

深入解析:Jsoup 库的多功能应用场景

Jsoup 是一个强大的 Java 库,主要用于解析和操作 HTML 文档。它不仅广泛应用于网络爬虫和数据抓取,还在网页内容分析、数据清洗与处理、自动化测试等多个领域有着广泛的应用。本文将详细介绍 Jsoup 库的多种用途,并提供具体的代码示例。 一、…...

Polardb三节点集群部署安装--附虚拟机

1. 架构 PolarDB-X 采用 Shared-nothing 与存储计算分离架构进行设计,系统由4个核心组件组成。 计算节点(CN, Compute Node) 计算节点是系统的入口,采用无状态设计,包括 SQL 解析器、优化器、执行器等模块。负责数据…...

Redis - 全局ID生成器 RedisIdWorker

文章目录 Redis - 全局ID生成器 RedisIdWorker一、引言二、实现原理三、代码实现代码说明 四、使用示例示例说明 五、总结 Redis - 全局ID生成器 RedisIdWorker 一、引言 在分布式系统中,生成全局唯一ID是一个常见的需求。传统的自增ID生成方式在分布式环境下容易出…...

【Vitest】单元测试

文章目录 测试:Vitest一、安装二、断言三、回调测试四、对象方法五、模拟第三库 测试:Vitest 一、安装 npm install vitest创建文件:example.test.ts 运行测试: npx vitest example二、断言 import { expect, test } from vi…...

达梦数据库从单主模式转换为主备模式

目录标题 达梦数据库单主转主备配置笔记前期准备服务器环境数据库安装磁盘空间 流程流程图说明基于脱机备份方式的单实例转主备流程图详细步骤说明 详细步骤1. 检查主库归档模式2. 配置主库配置文件dm.ini 文件dmmal.ini 文件dmarch.ini 文件 3. 备份主库数据库4. 备库配置新建…...

【Elasticsearch】nested聚合

在 Elasticsearch 中,嵌套聚合(nestedaggregation)的语法形式用于对嵌套字段(nestedfields)进行聚合操作。嵌套字段是 Elasticsearch 中的一种特殊字段类型,用于存储数组中的对象,这些对象需要独…...

虹科波形小课堂 | 三分钟掌握车辆相对压缩测试!不拆发动机、不测缸压就能判断故障缸!

不拆发动机、不测缸压,只测个电流也能知道哪个缸压缩有问题?没错!做个相对压缩测试,测下起动电流就行,简单又实用!今天,从原理到方法,几分钟教会你! 我们都知道&#xf…...

【玩转全栈】--创建一个自己的vue项目

目录 vue介绍 创建vue项目 vue页面介绍 element-plus组件库 启动项目 vue介绍 Vue.js 是一款轻量级、易于上手的前端 JavaScript 框架,旨在简化用户界面的开发。它采用了响应式数据绑定和组件化的设计理念,使得开发者可以通过声明式的方式轻松管理数据和…...

基于 Spring Cloud + Spring AI + VUE 的知识助理平台介绍以及问题

前言(一些废话) 在看这篇文章的各位大佬,感谢你们留出几分钟时间,来看这个产品介绍,其实重点说实话,不是这个产品怎么样。而是在最后有一个郁结在心里的几个问题,希望大佬们能给出一些建议。万…...

< 自用文儿 > 下载 MaxMind GeoIP Databases 对攻击的 IP 做 地理分析

起因 两个 VPM/VPS,安装了 fail2ban 去拦截密码穷举攻击。每天的记录都在增长,以前复制屏幕输出就行,一屏的内容还容易粘贴出来的。昨天已经过 500 条,好奇 fail2ban 是如何存储这些内容的?就发现它在使用 SQLite3 数…...

前端知识速记:重绘和回流

前端知识速记:重绘和回流 一、什么是重绘与回流 1. 重绘(Repaint) 重绘是指当元素的外观发生变化时,浏览器需要重新绘制这些元素。由于这些操作不会改变元素占据的空间,因此不需要进行回流。常见的重绘操作包括&…...

webrtc peerconnection_client peerconnection_server 连接失败问题解决 win10 win11

0 常见问题 (1) webrtc peerconnection_client 连接 peerconnection_server 无连接列表 (2)连接导致崩溃debug状态下因为这个断言 RTC_DCHECK_RUN_ON(&capture_checker_); 1 在 peerconnection\client\main.cc 当中 定义类 class CustomSock…...

【C++】STL——list的使用与底层实现

目录 💕1.带头双向链表List 💕2.list用法介绍 💕3.list的初始化 💕4.size函数与resize函数 💕5.empty函数 💕6.front函数与back函数 💕7.push_front,push_back,pop_front,pop_back函数…...

iOS 音频录制、播放与格式转换

iOS 音频录制、播放与格式转换:基于 AVFoundation 和 FFmpegKit 的实现 在 iOS 开发中,音频处理是一个非常常见的需求,比如录音、播放音频、音频格式转换等。本文将详细解读一段基于 AVFoundation 和 FFmpegKit 的代码,展示如何实现音频录制、播放以及 PCM 和 AAC 格式之间…...

【PyTorch】解决Boolean value of Tensor with more than one value is ambiguous报错

理解并避免 PyTorch 中的 “Boolean value of Tensor with more than one value is ambiguous” 错误 在深度学习和数据科学领域,PyTorch 是一个强大的工具,它允许我们以直观和灵活的方式处理张量(Tensor)。然而,即使…...

Jsoup库具体怎么用?

Jsoup 是一个非常强大的 Java 库,用于解析和操作 HTML 文档。它提供了丰富的功能,包括发送 HTTP 请求、解析 HTML 内容、提取数据、修改 HTML 元素等。以下将详细介绍 Jsoup 的基本用法和一些高级功能,帮助你更好地使用 Jsoup 进行网络爬虫开…...

python:如何播放 .spx 声音文件

.spx 是 Speex音频编解码器的文件扩展名,它是一种开源的、免费的音频编解码器,主要用于语音压缩和语音通信领域。spx 文件通常用于语音记录、VoIP应用、语音信箱等场景。 .mp3 是一种广泛使用的音频格式,它采用了有损压缩算法,可…...

HTML学习笔记(6)

利用dom操作实现&#xff0c;对一个表格的增删改查 代码如下&#xff1a; todolist.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, …...

嵌入式Linux SPI转CAN-FD扩展实战:基于i.MX8MP与MCP2518FD

1. 项目概述&#xff1a;当开发板的CAN口不够用时在嵌入式产品开发中&#xff0c;尤其是工业控制、汽车电子或机器人领域&#xff0c;CAN总线因其高可靠性和实时性被广泛应用。飞凌嵌入式的OKMX8MP-C开发板基于强大的i.MX8M Plus处理器&#xff0c;原生提供了两路CAN-FD总线&am…...

Midjourney现代主义风格提示词工程(2024权威白皮书首发):覆盖12类先锋流派+87个已验证prompt模板

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Midjourney现代主义风格的美学基因与范式跃迁 现代主义风格在Midjourney中的生成并非对包豪斯或构成主义的简单复刻&#xff0c;而是通过扩散模型对20世纪视觉语法进行概率性重编码——其核心在于将“简…...

代码即文档:让三个月后的自己还能看懂今天写的逻辑

在软件测试领域&#xff0c;我们擅长用精密的逻辑去验证他人的代码&#xff0c;却常常在一个隐蔽的角落跌倒——我们自己写的测试代码。三个月前&#xff0c;你精心构建了一套自动化测试框架&#xff0c;一个周末&#xff0c;数百行代码&#xff0c;逻辑环环相扣&#xff0c;运…...

钱学森物理大一统:宇宙速度阶梯尺 全套公版正式文档(带可计算代码)

宇宙速度阶梯尺 全套公版正式文档 &#xff08;无版权全开源全民通用可直接印刷发布/平台投稿/社区分发&#xff09; 开篇总纲 定名&#xff1a;本源速度阶梯尺 核心主旨&#xff1a;大道至简&#xff0c;以地球天然标准音速为万物速度本源基底&#xff0c;以宇宙真空光速为速度…...

观察Taotoken在多日连续调用中的延迟与稳定性表现

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 观察Taotoken在多日连续调用中的延迟与稳定性表现 在需要连续多日、高频率调用大模型API的场景中&#xff0c;例如持续性的内容生成…...

如何彻底解决Windows系统DLL缺失问题:Visual C++运行库一键修复终极指南

如何彻底解决Windows系统DLL缺失问题&#xff1a;Visual C运行库一键修复终极指南 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过打开软件时突…...

如何用Python自动化工具解放你的电商评价时间:3分钟完成30分钟任务

如何用Python自动化工具解放你的电商评价时间&#xff1a;3分钟完成30分钟任务 【免费下载链接】jd_AutoComment 自动评价,仅供交流学习之用 项目地址: https://gitcode.com/gh_mirrors/jd/jd_AutoComment 你知道吗&#xff1f;每次网购后写评价平均要花30分钟&#xff…...

边缘UPF解决方案,构筑5G轻量化边缘算力底座

随着 5G 行业应用持续深化&#xff0c;工业生产、智慧交通、园区专网、沉浸式视听等场景&#xff0c;对网络时延、数据安全与传输效率提出了更高要求。传统集中式 UPF 统一回传的组网模式&#xff0c;容易造成骨干网负荷过高、数据传输时延增加&#xff0c;同时行业内部私密数据…...

别再被CUDA版本搞懵了!PyTorch环境配置保姆级避坑指南(含conda与本地安装对比)

深度学习环境配置终极指南&#xff1a;PyTorch与CUDA版本匹配的实战解决方案 1. 理解CUDA与PyTorch版本冲突的本质 当你第一次在终端看到"RuntimeError: The detected CUDA version mismatches the version that was used to compile PyTorch"这个错误时&#xff0c;…...

构建自主可控安全自动化平台:从开源情报到自动化响应实践

1. 项目概述&#xff1a;从开源代码到安全实践的桥梁最近在梳理一些开源安全项目时&#xff0c;我注意到了mattijsmoens/openclaw-sovereign-shield这个仓库。单从名字看&#xff0c;“Sovereign Shield”&#xff08;主权之盾&#xff09;就透着一股强烈的防御和自主掌控的意味…...