whisper实践--基于whisper+pyqt5开发的语音识别翻译生成字幕工具
大家新年快乐,事业生活蒸蒸日上,解封的第一个年,想必大家都回家过年,好好陪陪家人了吧,这篇文章也是我在老家码的,还记得上篇我带大家基本了解了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开发的语音识别翻译生成字幕工具相关推荐
- 【人工智能】基于YOLOv5+PyQt5开发的可视化人数检测系统【附项目报告+演示视频+完整代码】
文章目录 一.环境介绍 二.前言及效果演示 三.前期准备与数据训练 四.文档内容一览 五.完整代码链接 一.环境介绍 系统:Windows 10 64位 显卡:RTX3060 + cuda11.3 + ...
- 基于Python3+PyQt5开发的GUI精美框架界面:导航定位与测量综合系统-GNSSAMS Offcial 1.2.0
GanAHE&DGZC的小创元世纪 https://dgzc.ganahe.top 一·软件概要 1.1 开发背景 1.2 开发目标与应用场景 1.3 版本功能与特性 新增了三维建模功能,由手 ...
- 手把手教你写一个基于python+pyqt5的股票盯盘软件
今天教大家基于Python+pyqt5开发一款股票盯盘小软件,里面含有微信推送.策略分析.回测.实时统计持仓盈亏等功能,其实我们也可以把它叫做股票量化小软件.开发这么一款小软件首先得具备Python的 ...
- C#实战:基于ItextSharp技术标签生成小工具
目录 1.运行主界面 2.标签生成界面 3.需要引入的依赖包 4.解决方案目录 5.主要代码 1.新建PdfUtils工具类 2.Form1.cs 窗体主要代码 IT技术分享社区 / Itext Sh ...
- 英文视频添加中英双语字幕(基于Whisper语音识别和Google翻译)
第一步:安装配置环境,这一步重要介绍安装的环境依赖,可以看完第二章再来看一遍 (1)Whisper环境配置 可以参考以下博客的内容讲显卡驱动,CUDA和cudnn的安装比较详细,我建议能用GPU加速就 ...
- 如何一键生成字幕,如何快速处理生肉资源?借助whisper语音识别系统生成.srt字幕文件 手把手教学在Windows、CPU版本下whisper的安装与使用,快速上手!
目录 一.前言 二.本机环境 三.安装步骤: 步骤1:下载Git并添加环境变量 步骤2:下载ffmpeg并添加环境变量 步骤3:安装pytorch 步骤4:安装whisper 四.whisper的应用 ...
- 为什么您应该使用基于标准的开发实践
为什么您应该使用基于标准的开发实践 Why you should use standards-based development practices (even if you don't have t ...
- 前端基于vue企业微信JS-SDK语音识别功能开发(同公众号)
前端基于vue企业微信JS-SDK语音识别功能开发(同公众号) 微信JS-SDK 1.前期准备 前端代码撰写 微信JS-SDK 前端需要实现一个功能,如录音,拍照,分享,地理位置等,前端想要实现这些功 ...
- 大数据早报:三星Kakao联手开发AI语音识别技术 百度视频8月大数据报告出炉(9.19)
数据早知道,上36dsj看早报! 来源36大数据,作者:奥兰多 『AI』三星和Kakao达成合作 联手开发AI语音识别技术 现如今,越来越多的科技公司选择进入人工智能领域,为了突破人工智能技术上的限制 ...
最新文章
- Flash将在2年内死亡 市场份额已经降至6%
- 超酷的超级DataGrid
- VB访问SQL Server数据库技术全揭密
- pytorch 变对角矩阵_Pytorch-Tensor基本操作
- Oracle入门(十四.23)之管理触发器
- [html] 使用canvas制作一个印章
- java线程变量值_JAVA线程中对变量值的修改
- android在xml中加载大图,android – 如何在布局xml中添加循环视图
- mysql词法分析antlr4_sharding-jdbc之ANTLR4 SQL解析
- Android源码设计模式解析与实战(四)
- mysql数据库调优知识复习
- 用latex画化学结构式
- 人工智能的现状与未来(附PPT)
- 无法ping通别的计算机名,解决主机无法ping通问题
- 百度地图API详解之自定义地图类型
- hdu6608 Fansblog(威尔逊定理)
- 人脸识别之FaceNet
- 【九度】题目1415:不一样的循环队列
- UDP打洞(UDP Hole Punching)原理
- CAD填充图案面积测量