Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

能否在 Windows 下调用 GPU #9

Open
LJason77 opened this issue Jun 11, 2024 · 20 comments
Open

能否在 Windows 下调用 GPU #9

LJason77 opened this issue Jun 11, 2024 · 20 comments
Labels
bug Something isn't working enhancement New feature or request

Comments

@LJason77
Copy link

系统: Windows 11
软件版本: v1.0.3
模型: medium.en
视频语言: 英文


测试了一下,生成字幕要超久,看了任务管理器,是用的 CPU,还没有跑满,只用了一点点。

我平时生成字幕用的 whisper 命令是:

whisper --model medium.en --device cuda --language English --output_format vtt 文件

这个可以调用 GPU 并且跑满。

测试同一个半小时的视频,操作还没结束,video-subtitle-master 的用时已经是命令的三倍以上了(相同模型)。


Issues 还没写完,终于操作结束了。然后,没有输出字幕?
我的想法是:视频 AAA.mp4 ,然后输出 AAA.srt,不想要 targetLanguage 的后缀,就设置了 ${fileName},结果什么都没有输出。

设置:

  • 模型:medium.en
  • 视频原始语言:英语
  • 是否单独保存源字幕文件:否
  • 翻译服务:火山
  • 翻译目标语言:中文
  • 翻译输出字幕设置:输出双语(源字幕加翻译字幕)
  • 翻译字幕保存文件名:${fileName}

我导入视频,还没点 开始操作,就已经是正在转的图标,有点迷惑。
是 “已经在处理中” 还是 “未开始处理” 的意思?等待了一下,图标没有变化,我猜是 “未开始操作”?
我点 开始操作,然后图标没有任何变化。
这点可以优化一下。

@LJason77
Copy link
Author

又出现一个问题:

在上面的情况下(操作完成,三个图标都变成勾,但没有输出字幕),我又点了一下 开始操作
CPU 涨了,进程开始有占用了,生成 wav 文件了,意味着开始处理了?
但是图标没有变化,依旧是打勾,开始操作 的按钮也不会锁定了。

@buxuku buxuku added the bug Something isn't working label Jun 11, 2024
@buxuku
Copy link
Owner

buxuku commented Jun 11, 2024

非常感谢如此详细的反馈,软件使用体验上的问题,我将进一步优化。关于 Windows 下面 GPU 的支持,目前确实是没有支持,核心卡点是 cublasLt64_12.dll 这个文件高达五百多兆,集成进来将会导致软件体积异常大。我将思考是否有更好的解决方案。

@LJason77
Copy link
Author

能否检测本地已经存在的命令?
优先调用本地的命令,本地不存在再调用集成的?

@buxuku
Copy link
Owner

buxuku commented Jun 11, 2024

能否检测本地已经存在的命令? 优先调用本地的命令,本地不存在再调用集成的?

这个是可以的,你的 whisper 命令是怎么安装的呢?本地是已经可以全局调用的是吧?

@LJason77
Copy link
Author

这个是可以的,你的 whisper 命令是怎么安装的呢?本地是已经可以全局调用的是吧?

FFmpeg 是 winget install Gyan.FFmpeg
whisper 是 pip install -U openai-whisper

在 PowerShell 里是可以直接运行 whisper 的。


只是我个人的想法:有选项可以自定义路径,默认是自动检测并填充路径,检测不到并且没有设置路径再使用集成。


当然,如果是我开发,肯定不会这么干,自动检测就完事了,主要是懒 🤣

@buxuku buxuku added the enhancement New feature or request label Jun 11, 2024
@buxuku
Copy link
Owner

buxuku commented Jun 14, 2024

非常感谢如此详细的反馈,软件使用体验上的问题,我将进一步优化。关于 Windows 下面 GPU 的支持,目前确实是没有支持,核心卡点是 cublasLt64_12.dll 这个文件高达五百多兆,集成进来将会导致软件体积异常大。我将思考是否有更好的解决方案。

确实不调用gpu生成字幕也太慢了,体积大就大吧,总比没有的好,可以先更新一版

目前我只有家里的电脑的虚拟机安装了 window 系统。所以 windows 下的开发进度会慢一些,不过我会尽量优先开发调用本地的命令来实现。

@tobycroft
Copy link

隔壁faster whisper已经1G多了,大点没事的!

@buxuku
Copy link
Owner

buxuku commented Jun 15, 2024

@LJason77 我发布了一个 1.0.13 版本,这个版本会调用系统里面的 whisper 命令,但我手头上没有支持 cuda 的电脑,麻烦下载测试,并反馈一下情况。

@LJason77
Copy link
Author

测试了,可以跑满 GPU 了,速度和用命令行的一模一样 👍
我这边没有问题了。

@tobycroft
Copy link

@LJason77 我发布了一个 1.0.13 版本,这个版本会调用系统里面的 whisper 命令,但我手头上没有支持 cuda 的电脑,麻烦下载测试,并反馈一下情况。

image
啊? how is that gonna work?

@LJason77
Copy link
Author

@tobycroft 你在本地有没有安装 whisper?命令行里能不能直接运行 whisper?

@tobycroft
Copy link

@tobycroft 你在本地有没有安装 whisper?命令行里能不能直接运行 whisper?

windows,目前还没有正在装环境

@LJason77
Copy link
Author

我有个想法,不知道会不会太麻烦,就是分几个版本:

  1. 完全轻量版 - 不集成 ffmpeg 和 whisper,全靠本地的命令,纯 UI,容量也最小
  2. CPU 版 - 就按照上一版的
  3. GPU 版 - 集成 GPU 相关的,容量也最大

太麻烦就算了吧 🤣

@tobycroft
Copy link

我有个想法,不知道会不会太麻烦,就是分几个版本:

  1. 完全轻量版 - 不集成 ffmpeg 和 whisper,全靠本地的命令,纯 UI,容量也最小
  2. CPU 版 - 就按照上一版的
  3. GPU 版 - 集成 GPU 相关的,容量也最大

太麻烦就算了吧 🤣
@buxuku
复议,不过我觉得大小不是问题啊,直接GPU版本就好了,大小真的不是问题,能下的也不差500M,不能下的,100M也是下不了对吧,不用考虑大小的

@buxuku
Copy link
Owner

buxuku commented Jun 16, 2024

我有个想法,不知道会不会太麻烦,就是分几个版本:

  1. 完全轻量版 - 不集成 ffmpeg 和 whisper,全靠本地的命令,纯 UI,容量也最小
  2. CPU 版 - 就按照上一版的
  3. GPU 版 - 集成 GPU 相关的,容量也最大

太麻烦就算了吧 🤣

是的,后续我也是考虑这样的,分不同的版本,用户根据情况下载对应的版本。whisper.cpp 对 cube 的支持也是单独提供的一个版本包。

@jd04063221
Copy link

可以先选择将支持CUDA的部分作为add-on,单独下载,需要的人再下载附加包自己解压进目录。

@Nzzz964
Copy link

Nzzz964 commented Sep 26, 2024

let runShell = `"${mainPath}" -m "${whisperPath}models/ggml-${whisperModel}.bin" -f "${audioFile}" -osrt -of "${srtFile}" -l ${sourceLanguage}`;
if (hasOpenAiWhisper) {
  runShell = `whisper "${audioFile}" --model ${whisperModel} --device cuda --output_format srt --output_dir ${directory} --language ${sourceLanguage}`;
}

hasOpenAiWhisper 这里 whisper 命令似乎没有 whisper.cpp-of 指定输出文件名选项

导致使用 whisper 在翻译字幕时找不到字幕文件

@0312birdzhang
Copy link

显卡0%,CPU 100%,难崩啊

跪求加入显卡支持

@buxuku
Copy link
Owner

buxuku commented Nov 28, 2024

目前 v1.3 尝试性地加入了对 cuda 的支持,欢迎大家帮测试一下,并可给予一些反馈。

@liuquanqing
Copy link

目前 v1.3 尝试性地加入了对 cuda 的支持,欢迎大家帮测试一下,并可给予一些反馈。

还是不行啊,可以参考memo , 这个CUDA是可以的 https://github.com/jianchang512/stt , 还有没有转写进度

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

8 participants
@0312birdzhang @liuquanqing @buxuku @jd04063221 @LJason77 @tobycroft @Nzzz964 and others