基于Whisper语音识别的实时视频字幕生成 (一): 流式显示视频帧和音频帧

2024-04-10 10:44

本文主要是介绍基于Whisper语音识别的实时视频字幕生成 (一): 流式显示视频帧和音频帧,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Whishow

img1

Whistream(微流)是基于Whisper语音识别的的在线字幕生成工具,支持rtsp/rtmp/mp4等视频流在线语音识别

1. whishow介绍

whishow(微秀)是在线音视频流播放python实现,支持rtsp/rtmp/mp4等输入,也是whistream的前端。python实现原理如下:
if __name__ == "__main__":stm = STREAM()spc = SPROCESS()ply = PLAY()# url = sys.argv[1]url = "test.mp4"# 线程1:esc退出播放def engine():global plyimport keyboardwhile 1:if keyboard.is_pressed('esc'):breaktime.sleep(0.01)stm.running = Falsespc.running = Falseply.running = False# 线程2:读取视频流和音频流 (保存一级cache)def process1():global stmstm.read(url = "test.mp4",video_dst_frame_size=[-1,-1],cache_size=10*60)# 线程2:处理帧(保存二级cache)def process2():global spcwhile not check_stream():time.sleep(1)spc.run(cache_size=2*60,asr=False,step=1)# 播放视频 (播放二级cache)def process3():global plywhile not check_stream():time.sleep(1)ply.init_state(start=0,step=1)ply.run()p0 = threading.Thread(target=engine,args=())p1 = threading.Thread(target=process1,args=())p2 = threading.Thread(target=process2,args=())p3 = threading.Thread(target=process3,args=())p0.start()p1.start()p2.start()p3.start()

exe下载地址:https://github.com/coolEphemeroptera/Whishow/releases

whistream将在whishow基础上引入whisper进行在线语音识别生成视频字幕

2. 使用

python:

python whishow.py <视频路径>
例1:python whishow.py ./test.mp4
例2:python whishow.py rtmp://mobliestream.c3tv.com:554/live/goodtv.sdp

命令行:

./whishow.exe <视频路径>

显示如下:
img2

3. 联系我们

605686962@qq.com
coolEphemeroptera@gmail.com

这篇关于基于Whisper语音识别的实时视频字幕生成 (一): 流式显示视频帧和音频帧的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/890840

相关文章

Java中流式并行操作parallelStream的原理和使用方法

《Java中流式并行操作parallelStream的原理和使用方法》本文详细介绍了Java中的并行流(parallelStream)的原理、正确使用方法以及在实际业务中的应用案例,并指出在使用并行流... 目录Java中流式并行操作parallelStream0. 问题的产生1. 什么是parallelS

Vue3视频播放组件 vue3-video-play使用方式

《Vue3视频播放组件vue3-video-play使用方式》vue3-video-play是Vue3的视频播放组件,基于原生video标签开发,支持MP4和HLS流,提供全局/局部引入方式,可监听... 目录一、安装二、全局引入三、局部引入四、基本使用五、事件监听六、播放 HLS 流七、更多功能总结在 v

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

k8s admin用户生成token方式

《k8sadmin用户生成token方式》用户使用Kubernetes1.28创建admin命名空间并部署,通过ClusterRoleBinding为jenkins用户授权集群级权限,生成并获取其t... 目录k8s admin用户生成token创建一个admin的命名空间查看k8s namespace 的

C#实现SHP文件读取与地图显示的完整教程

《C#实现SHP文件读取与地图显示的完整教程》在地理信息系统(GIS)开发中,SHP文件是一种常见的矢量数据格式,本文将详细介绍如何使用C#读取SHP文件并实现地图显示功能,包括坐标转换、图形渲染、平... 目录概述功能特点核心代码解析1. 文件读取与初始化2. 坐标转换3. 图形绘制4. 地图交互功能缩放

如何正确识别一台POE交换机的好坏? 选购可靠的POE交换机注意事项

《如何正确识别一台POE交换机的好坏?选购可靠的POE交换机注意事项》POE技术已经历多年发展,广泛应用于安防监控和无线覆盖等领域,需求量大,但质量参差不齐,市场上POE交换机的品牌繁多,如何正确识... 目录生产标识1. 必须包含的信息2. 劣质设备的常见问题供电标准1. 正规的 POE 标准2. 劣质设

Vue3 如何通过json配置生成查询表单

《Vue3如何通过json配置生成查询表单》本文给大家介绍Vue3如何通过json配置生成查询表单,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录功能实现背景项目代码案例功能实现背景通过vue3实现后台管理项目一定含有表格功能,通常离不开表单

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W