文章目录

  • 前言
  • 流程
  • 安装ffmpeg
  • 安装python包
  • 测试模型——对视频使用语音模型生成srt字幕,拖入视频播放器中
  • 将srt拖入视频,输出

前言

最近打开百度网盘,看到播放视频有一个AI字幕功能,心情非常激动,看视频的同时可以看自动生成的字幕,防止听不清视频中人物的话语
然而不是SVIP,我试用过了之后就没有这个功能选项了
我在想,如果随便哪一个“免费”播放器,都可以一边播放视频,一边生成字幕,外文自动翻译,那不是牛哄哄?
看教程,看视频都可以方便很多,因为语音太杂了,听完后有时还要猜视频中的人物说的什么,尤其是倍速情况下,有了自动生成的字幕之后,都不再是问题
问题是如何达到这一点?当然喽,重点是免费,高效
当然,我已经实现了,Follow me!
文件都在这里,下载好文件一步步来就可以了
配置环境:

  • 系统: win10
  • ffmpeg:ffmpeg-5.1.2-essentials_build.zip
  • python:3.8.8
  • python包:vosk-0.3.45-py3-none-win_amd64.whl
  • 语音模型:vosk-model-cn-0.22

流程

设想这样一个情景,向视频播放器中塞进一个语音转文字模型,当它加载视频流的时候,一边提前读取视频流,用语音模型生成字幕,一遍播放已经生成字幕的视频,不就是如此吗?
先安装相关文件

安装ffmpeg

https://ffmpeg.org/download.html
这是官网


安装就是解压而已,然后在系统变量中添加文件中的bin路径

然后cmd输入命令,查看是否已经识别

ffmpeg –version

安装python包

自己从官网下再安装 https://pypi.org/
vosk-0.3.45-py3-none-win_amd64.whl放到目录下,

pip install  vosk-0.3.45-py3-none-win_amd64.whl

测试模型——对视频使用语音模型生成srt字幕,拖入视频播放器中

官网 模型文件下载地址https://alphacephei.com/vosk/models
先生成字幕文件
将想要识别语言类别的对应模型解压,想要识别中文语音就用中文模型,英文就用英文模型,日文就用日文模型等
需要注意的是先将视频文件,转成单通道wma语音文件,语音模型是对wma文件识别的,抛弃了对语音识别无用的图像信息
格式工厂yyds

将代码中的音频文件换一下位置,模型文件换个解压好的名字,等待输出就行了
如果报错wma非pcm开头等等,请确认一下wma文件是否是单通道,测试中发现格式工厂使用高质量输出可以,保持原采样率,如果降低质量则识别失败,使用中保持原始采样率即可,单改通道

import subprocess
import os
import sys
from vosk import Model, KaldiRecognizer, SetLogLevel
SAMPLE_RATE = 16000
SetLogLevel(-1)
# 解压的模型文件,英文,中文用对应model
model = Model(r"C:\Users\Administrator\MyFileLi\AIPrograms\model_cn")
rec = KaldiRecognizer(model, SAMPLE_RATE)
# 修改需要识别的语音文件路径
wavPath=r"D:\FFOutput\课时1.wma"
rec.SetWords(True)
result = []
with subprocess.Popen(["ffmpeg", "-loglevel", "quiet", "-i",wavPath,"-ar", str(SAMPLE_RATE) , "-ac", "1", "-f", "s16le", "-"],stdout=subprocess.PIPE).stdout as stream:result.append(rec.SrtResult(stream))
print(result)
# 生成srt文件
output = open(wavPath.split("\\")[-1].split(".")[:-1][0]+'.srt','w')
output.write("\n".join(result))
output.close()

将srt拖入视频,输出

人工智能——离线情况下自动给视频添加字幕,支持中文,英文,日文等等相关推荐

  1. Python根据字幕文件自动给视频添加字幕(通用版)

    功能描述: 根据给定的字幕文件中的字幕信息,自动给视频添加字幕,运行程序后输入要添加字幕的视频文件和对应的字幕文件路径即可.实际使用时不需要对程序做任何修改,只需要根据实际的视频内容来修改字幕文件就可 ...

  2. 耗时一个月,开发了一款基于腾讯语音自动给视频添加字幕的软件

    字幕助手是一款免费利用语音识别技术的视频字幕添加软件,这款软件主打视频字幕剪辑和添加功能,能够一键快速添加字幕,同时能够快速导出srt字幕,该软件还具有一键去水印功能,软件可以将繁琐的视频字幕翻译制作 ...

  3. Windows下使用ffmpeg为视频添加字幕

    字幕分以下几种形式: 第一种是外挂字幕(软字幕),视频文件和字幕文件分离.当播放某视频文件时,会自动载入相同文件夹下同名的字幕文件,当然也可以用播放器(如:VLC media player)手动载入字 ...

  4. linux 谷歌浏览器debugger,解决谷歌浏览器在F12情况下自动断点问题(Paused in debugger)...

    解决谷歌浏览器在F12情况下自动断点问题(Paused in debugger) 最近在使用谷歌浏览器在调试js脚本的时候,每次按F12,再刷新页面,都会跳出如上图所示的图标,自动进入断点调试.如果不 ...

  5. ITK:在不复制内存的情况下为每个像素添加常量

    ITK:在不复制内存的情况下为每个像素添加常量 内容提要 输出结果 C++实现代码 内容提要 在每个像素上添加一个常量,而无需复制内存(访问器)中的图像. 输出结果 addPixelAccessor. ...

  6. Cesium使用技巧 - 离线情况下使用自定义地图服务(取消对Bing地图的访问)

    Cesium使用技巧 - 离线情况下使用自定义地图服务(取消对Bing地图的访问) 本人在做项目的时候,由于项目要求限制,必须在 完全断网的情况下 使用Cesium.因此根据Cesium的API文档, ...

  7. 在不重启Linux服务器的情况下在线识别新添加的磁盘

    前言  在我们使用 Linux系统的过程中,有时会因为初始时磁盘空间的分配不足,使用中途需要将挂载点扩容的情况,这时候就需要我们挂载新的磁盘到服务器上,但是如果我们在 Linux 运行过程中挂载新磁盘 ...

  8. python实现给视频添加字幕,并根据字幕添加语音

    文章目录 前言 一."pyttsx3"实现"文字到音频"的转换 二."pydub"处理音频 1.安装 2.测试 三."moviep ...

  9. mac自动给视频加字幕(ffmpeg,autosub)

    mac python3.8 自动给视频加字幕(ffmpeg,autosub实现) 安装ffmpeg 安装autosub 网课没字幕听起来不习惯,所以尝试给mp4视频文件加上字幕,内容参考了不同教程进行 ...

最新文章

  1. Gradle系列教程之依赖管理
  2. 坚实原则:Liskov替代原则
  3. C语言动态宽字符串,【分享】C语言动态长度字符串
  4. iOS开发之来自一线开发者的Swift学习资源推荐
  5. /usr/include/openssl/des.h:91:9: error: unknown type name ‘DES_LONG’ DES_LONG deslong[2];
  6. Atitit 软件开发中 瓦哈比派的核心含义以及修行方法以及对我们生活与工作中的指导意义
  7. 数据库—事务—并发控制技术
  8. 【外星眼halcon教程】机器视觉测量消费电子显示屏的颜色
  9. 微信小程序 计算导航高度、设置浮层位置
  10. 计算机组成原理中CPI、MIPS、CPU执行时间、主频等计算
  11. 钟表维修管理系统技术解析(六) 录入保修单
  12. python的for语句有几种写法_python的for循环写法
  13. [人生感悟]写在毕业前
  14. QueryList异步抓取网页数据
  15. 蚂蚁森林能量自动化收集
  16. Btree 数据结构
  17. 网页抓取及信息提取(一)
  18. js按钮绑定点击事件
  19. 铁道部新客票系统设计(一)
  20. war项目连接linux数据库,springboot项目war包部署到Linux

热门文章

  1. Mac Xcode opencv C++环境配置 保姆级教程 填坑记录 19年最新版本
  2. DEFCON 23|专门抓捕黑客的人
  3. java 格式化输出xml_Java格式化输出Xml
  4. VMware是什么?
  5. flareghost(闪烁和光晕测试)
  6. 腾讯华为签署《深圳市APP个人信息保护自律承诺书》举措新解读
  7. TeamViewer由商业用途改为个人用途
  8. 【Vscode】 Vscode常用插件
  9. Android手绘涂鸦PaintView
  10. Codeforces Round #439 (Div. 2) E. The Untended Antiquity (hash+数状数组)