大家新年快乐,事业生活蒸蒸日上,解封的第一个年,想必大家都回家过年,好好陪陪家人了吧,这篇文章也是我在老家码的,还记得上篇我带大家基本了解了whisper,相信大家对whisper是什么,怎么安装whisper,以及使用都有了一个认识,这次作为新年第一篇文章,我将介绍一下自己开发的基于whisper+pyqt5做的一个字幕生成工具,还挺有意思的,中间也遇到各种问题,然后解决。每次尝试做什么,最爽莫过于遇到问题,然后一一解决,最后成功的实现自己想要的,就算是一个再简单的项目,相信大家只要有成长就会很满足开心吧。话不多说,直接进入今天的主题,让我们来看看这个工具。

  • 外观

首先让我们来看看工具样子如下图所示,自我吐槽一下,界面挺丑的,不得不感叹自己没有界面审美,不过我已经尽力了,哈哈,不过自我感觉看这个界面还是挺直观的就能知道这个工具的作用,以及使用也很直接方便。主要有两个模块,如图,1为选择模块,2为运行结果显示模块。

  • 功能介绍
  • 公共选择部分

如上图红色框所示,所有功能这几个选择框是公用的,文字应该写的也算清楚,简单介绍一下。

模型选择:必选项,选择一个whisper模型。

语言选择:必选项,选择一个要识别翻译成哪种语言。

计算引擎选择:非必选项,不选默认为cpu。

模型读取保存路径:非必选项,不选默认在应用目录下,如果事先下好模型,可以选择对应目录,避免应用第一次下载找不到模型从而下载模型。

输出文件保存路径:必选项,选择运行生成文件的保存路径。

结束按钮:需要停止正在执行的功能,可以点击此按钮。

  • 功能部分

1.生成字幕文件:音频文件或者视频文件根据选择的语言生成一个对应语言的srt字幕文件,文件内容为音频文件或者视频文件说的内容,效果如图所示

2.视频添加字幕:视频文件根据选择的语言自动为视频添加srt字幕,效果如图所示

3.监听声音翻译:监听window的喇叭发出的声音并且识别生成srt字幕文件,不过这个功能因为没时间弄,暂时没弄,后面有时间会加上,界面暂时如下图所示

  • 问题以及总结

软件已经介绍完了,在开发过程中其实遇到了很多坑,比如第一次使用pyqt5,跟主要功能模块的信息传递,以及使用pyinstaller打包成应用的时候会遇到很多坑,这里着重记录下。

使用pyinstaller -D 主程序文件打包的时候,运行会有一堆问题,然后仔细看打包过程会有很多警告,有些包没打进去,需要在打包的时候把这些包使用--copy-metadata添加指定包的元数据进来,最后打包成功后,发现python的whisper模块不在应用里,可以将python目录下的whisper复制到应用目录里,然后由于使用到了ffmpeg所以也需要把这个文件复制到应用目录中,才成功运行,本以为万事大吉,但是这个应用会自带cmd窗口,于是在打包命令中添加-w参数,但是又遇到到了挺多问题这里主要记录两个:

1.AttributeError: 'NoneType' object has no attribute 'flush'这个错误,根据提示找到对应python模块sitr-packages/transformers/utils/logging.py的如下代码段,修改如下图所示

2.最后运行应用的时候下载模型会一直卡住,这是由于关闭了窗口,有些代码使用了需要从cmd中获取打印消息或者显示到cmd的功能,所以这里排查到应该是whisper下载模型的时候使用了tqdm来显示进度条导致的,所以到whisper的__init__.py文件中找到这段代码将如下图所示两行代码注释掉即可。

最后再附上打包命令:

pyinstaller --upx-dir=C:\Users\xxx\Desktop\upx\upx-4.0.1-win64 -D -w pythoner_league_translate.py --copy-metadata tqdm --copy-metadata regex --copy-metadata tokenizers --copy-metadata numpy --copy-metadata regex --copy-metadata packaging --copy-metadata filelock --copy-metadata requests --copy-metadata whisper

其中upx地址,可以自己下载一个upx然后替换成你自己电脑路径即可

忘记说了whisper默认的中文是繁体字,这里本人已经把它转换成简体了。

如果大家有兴趣想玩玩,应用我已经帮大家打包好了,可以直接使用,代码也有,下面是各个下载地址:

应用模型下载地址(现在只打包了exe应用,如后续有需要可以打包mac应用):

链接:https://pan.baidu.com/s/1nj174s3tyHUAsazi4tHW0g

提取码:3ugi

代码gihub地址:https://github.com/PythonerLeague/PythonerLeague_translate

最后有问题可以留言或者关注PythonerLeague公众号进行沟通,这次分享就到这里了,最后再祝大家新年开开心心,有时间记得多陪陪家人。

whisper实践--基于whisper+pyqt5开发的语音识别翻译生成字幕工具相关推荐

  1. 【人工智能】基于YOLOv5+PyQt5开发的可视化人数检测系统【附项目报告+演示视频+完整代码】

    文章目录 一.环境介绍 二.前言及效果演示 三.前期准备与数据训练 四.文档内容一览 五.完整代码链接 一.环境介绍 系统:Windows 10 64位 显卡:RTX3060 + cuda11.3 + ...

  2. 基于Python3+PyQt5开发的GUI精美框架界面:导航定位与测量综合系统-GNSSAMS Offcial 1.2.0

    GanAHE&DGZC的小创元世纪 https://dgzc.ganahe.top 一·软件概要 1.1 开发背景 1.2 开发目标与应用场景 1.3 版本功能与特性 新增了三维建模功能,由手 ...

  3. 手把手教你写一个基于python+pyqt5的股票盯盘软件

    今天教大家基于Python+pyqt5开发一款股票盯盘小软件,里面含有微信推送.策略分析.回测.实时统计持仓盈亏等功能,其实我们也可以把它叫做股票量化小软件.开发这么一款小软件首先得具备Python的 ...

  4. C#实战:基于ItextSharp技术标签生成小工具

    目录 1.运行主界面 2.标签生成界面 3.需要引入的依赖包 4.解决方案目录 5.主要代码 1.新建PdfUtils工具类 2.Form1.cs 窗体主要代码 IT技术分享社区 / Itext Sh ...

  5. 英文视频添加中英双语字幕(基于Whisper语音识别和Google翻译)

    第一步:安装配置环境,这一步重要介绍安装的环境依赖,可以看完第二章再来看一遍 (1)Whisper环境配置 可以参考以下博客的内容讲显卡驱动,CUDA和cudnn的安装比较详细,我建议能用GPU加速就 ...

  6. 如何一键生成字幕,如何快速处理生肉资源?借助whisper语音识别系统生成.srt字幕文件 手把手教学在Windows、CPU版本下whisper的安装与使用,快速上手!

    目录 一.前言 二.本机环境 三.安装步骤: 步骤1:下载Git并添加环境变量 步骤2:下载ffmpeg并添加环境变量 步骤3:安装pytorch 步骤4:安装whisper 四.whisper的应用 ...

  7. 为什么您应该使用基于标准的开发实践

    为什么您应该使用基于标准的开发实践 Why you should use standards-based development practices (even if you don't have t ...

  8. 前端基于vue企业微信JS-SDK语音识别功能开发(同公众号)

    前端基于vue企业微信JS-SDK语音识别功能开发(同公众号) 微信JS-SDK 1.前期准备 前端代码撰写 微信JS-SDK 前端需要实现一个功能,如录音,拍照,分享,地理位置等,前端想要实现这些功 ...

  9. 大数据早报:三星Kakao联手开发AI语音识别技术 百度视频8月大数据报告出炉(9.19)

    数据早知道,上36dsj看早报! 来源36大数据,作者:奥兰多 『AI』三星和Kakao达成合作 联手开发AI语音识别技术 现如今,越来越多的科技公司选择进入人工智能领域,为了突破人工智能技术上的限制 ...

最新文章

  1. Flash将在2年内死亡 市场份额已经降至6%
  2. 超酷的超级DataGrid
  3. VB访问SQL Server数据库技术全揭密
  4. pytorch 变对角矩阵_Pytorch-Tensor基本操作
  5. Oracle入门(十四.23)之管理触发器
  6. [html] 使用canvas制作一个印章
  7. java线程变量值_JAVA线程中对变量值的修改
  8. android在xml中加载大图,android – 如何在布局xml中添加循环视图
  9. mysql词法分析antlr4_sharding-jdbc之ANTLR4 SQL解析
  10. Android源码设计模式解析与实战(四)
  11. mysql数据库调优知识复习
  12. 用latex画化学结构式
  13. 人工智能的现状与未来(附PPT)
  14. 无法ping通别的计算机名,解决主机无法ping通问题
  15. 百度地图API详解之自定义地图类型
  16. hdu6608 Fansblog(威尔逊定理)
  17. 人脸识别之FaceNet
  18. 【九度】题目1415:不一样的循环队列
  19. UDP打洞(UDP Hole Punching)原理
  20. CAD填充图案面积测量

热门文章

  1. VB网络编程(webbrowser+Inet+抓包封包+经验)
  2. 【译】将 Android 项目迁移到 Kotlin 语言
  3. VIM学习笔记 缩进 (Indent)
  4. VGA显示器工作原理之同步信号
  5. Verilog中inout的用法(二)
  6. TransparentBlt
  7. 青海大学计算机考研清华大学,青海大学这所大学学科评估最高只有B-,为什么能获得保送清华研究生的资格...
  8. HDUOJ 2004
  9. 导弹防御系统[导弹拦截系统]
  10. PTA - 按层次遍历二叉树