python实现提取视频里的语音转换为文字
最近拿到很多教学视频,需要在一周后考核视频里的内容,时间紧,任务重,一个个看时间上不允许,不看吧,考核过不去,我就在想,能不能把视频里的语音转换成文字,看文字效率高一些,而且找到重点之后再去看视频,效果也应该会好,python大法好,这个也是可以用python加百度智能云接口来实现的,百度智能云的语音识别技术识别率已经很高了,就避免了我们自己训练模型了,拿来用就行,而且官方提供的测试语音数量已经够我们用了,不需要购买服务,真是太赞了,人生苦短,我用python
备注:代码是大神分享在g i t h u b上面的,我算是转载他的
接下来上代码,作为一个备份
import os
from ffmpy3 import FFmpeg
from pydub.audio_segment import AudioSegment
from pymediainfo import MediaInfo
from aip import AipSpeechdef vedio_to_pcm(file):inputfile = filefile_type = file.split('.')[-1]outputfile = inputfile.replace(file_type, 'pcm')ff = FFmpeg(executable='ffmpeg',global_options=['-y'],inputs={inputfile: None},outputs={outputfile: '-acodec pcm_s16le -f s16le -ac 1 -ar 16000'})ff.cmdff.run()return outputfiledef vedio_to_wav(file):inputfile = filefile_type = file.split('.')[-1]outputfile = inputfile.replace(file_type, 'wav')ff = FFmpeg(executable='ffmpeg',global_options=['-y'],inputs={inputfile: None},outputs={outputfile: None})ff.cmdff.run()return outputfiledef wav_split(path):file = vedio_to_wav(path)main_wav_path=filepath=os.path.dirname(file)+'/'sound_len=int(MediaInfo.parse(main_wav_path).to_data()['tracks'][0]['duration'])sound=AudioSegment.from_mp3(main_wav_path)part_file_list=list()min_ = sound_len/1000if min_ > 60:n=int(min_//60)print(type(n))if n*60<min_:n+=1for i in range(n):start_time=i*60*1000+1end_time=(i+1)*60*1000if end_time>sound_len*1000:end_time=sound_len*1000word=sound[start_time:end_time]part_file_name='part_sound_{}.wav'.format(i)word.export(part_file_name,format="wav")part_file_list.append(part_file_name)return part_file_listdef BAIDU_ASR(wavfile):pcm_file = vedio_to_pcm(wavfile)def get_file_content(file):with open(file,'rb') as fp:return fp.read()""" 你的 APPID AK SK """APP_ID = ''API_KEY = ''SECRET_KEY = ''client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)result = client.asr(get_file_content(pcm_file),'wav',16000,{'dev_pid':1537})return resultdef perfect_path(path,list_):tmp_path = []for i in list_:tt = path+'\\'+ itmp_path.append(tt)return tmp_pathif __name__ == "__main__":tmp = []#要提取文稿的视频路径path = 'C:\\Users\\25801路西\\Desktop\\video'name_list = os.listdir(path)tmp_path = perfect_path(path,name_list)print(tmp_path)for i in tmp_path:print(i)waiting_list = wav_split(i)output = open(i+'.txt','w',encoding='gbk')for i in waiting_list:tmp = BAIDU_ASR(i)['result'][0]output.write(tmp)output.close()remove_pcm = []for i in waiting_list:remove_pcm.append(i.split('.')[0]+'.pcm')os.remove(i)for i in remove_pcm:os.remove(i)
这个是需要一个软件配合的,源文件我发在百度云上了,拿来就能用,传送门
链接:https://pan.baidu.com/s/1BeZptdds0PNfUfQ6dh1CMg
提取码:wob8
文件里包含这些东西
识别效果也很不错,我就不上测试图了,祝大家用的愉快,希望能够帮到有需要的朋友,也能给我备份一下
python实现提取视频里的语音转换为文字相关推荐
- Python 如何将视频文件的语音转换为文字,良心之作!
如何将视频文件的语音转换为文字,这里先大致介绍一下本文会用到的知识点: python3. moviepy.multipart/form-data请求.requests_toolbelt.md5. 1. ...
- python 如何将视频文件的语音转换为文字
文章目录 :rose: python 如何提取视频/音频中的文字 :four_leaf_clover: 讯飞认证 :four_leaf_clover: 视频转换为音频 :four_leaf_clove ...
- 视频转文字怎么转,3个办法教你将视频里的语音转文字
我在刷短视频时,总有那么几个心灵鸡汤的视频,让我热血沸腾,当场就想要把视频里那段让我热血沸腾的话写下来,贴在床头,以此激励自己.在场的小伙伴有没有跟我做同样的事情呢?有这样干的小伙伴们知道视频里的语音 ...
- python 替换array中的值_利用Python提取视频中的字幕(文字识别)
我的CSDN博客id:qq_39783601,昵称是糖潮丽子~辣丽 从今天开始我会陆续将数据分析师相关的知识点分享在这里,包括Python.机器学习.数据库等等. 今天来分享一个Python小项目! ...
- python从视频中提取音频信号_三行Python代码提取视频中的音频
作者:小舟逝江海 http://suo.im/5yOtbx 写在开头 身处数据爆炸增长的时代,各种各样的数据都飞速增长,视频数据也不例外.我们可以使用 python 来提取视频中的音频,而这仅仅需要安 ...
- access数据放到list中_利用Python提取视频中的字幕(文字识别)
我的CSDN博客id:qq_39783601,昵称是糖潮丽子~辣丽 从今天开始我会陆续将数据分析师相关的知识点分享在这里,包括Python.机器学习.数据库等等. 今天来分享一个Python小项目! ...
- 如何提取视频中的语音转换成文字?分享一个超好用的方法
在现代的数字化时代,视频和音频的使用越来越广泛.但是,当你需要从视频中获取有用的信息时,最好的方法是将视频中的语音转换成文字.这不仅使信息更容易理解,还可以通过搜索引擎和文本编辑器对其进行搜索.在本文 ...
- python txt提取特定数据_Python提取列表中的内容 用“python”怎么提取文件里的指定内容?...
用"python"怎么提取文件里的指定内容? python读取文件内容的方法: 一.最方便的方法是一次性读取文件中的所有内容并放置到一个大字符串中: all_the_text = ...
- python批量提取视频帧
python批量提取视频帧 python批量提取视频帧,两种提取方式: 按帧数提取,每个视频提取固定帧数,若所取帧数超过视频总帧数,则截取视频所有帧 按时间间隔提取,每个time提取一帧 1. 使用示 ...
最新文章
- hdu 4751(dfs染色)
- Django学习笔记之Django ORM Aggregation聚合详解
- ***S 2012 交互式报表 -- 钻取式报表
- SoapUI 请求 https 报 javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
- centos6.5和centos7.5统一字符集为zh_CN.UTF-8解决系统和MySQL数据库乱码问题
- mac笔记本修改 mysql 的密码
- python qt5 数据改变 触发信号_pyqt5自定义信号实例解析
- select * 与 count(*)数量不一致_技术分享 | MySQL:count(*)、count(字段) 实现上区别
- php rsa加密demo,php实现RSA加密类实例_PHP
- 数据库防火墙、数据库加密、数据库脱敏真的可用吗?
- 真正“自学”入门编程/程序员是一种怎样的体验?
- ads pspice 导入_ADS中使用pspice模型
- MongoDB的局域网连接问题
- yarn install出现异常 error An unexpected error occurred: “EIO: i/o error
- JAVA中的ZoneId常用值备注
- USB组合设备——带鼠标功能的键盘
- 3D目标检测之数据集
- mysql在windows安装和卸载步骤,以及相关问题的解决记录
- 【模糊综合评价的运用】——《电子舌技术在食用盐模糊感官评价中的应用》论文笔记(内附MATLAB程序)
- 从蒙牛到小度,跨年晚会中的国民品牌变迁
热门文章
- Oracle Clob大于4000字节报错,那是你不懂Clob,XML类型的Clob在过程中就是取不到,我帮你
- 用C语言编写PC与三菱PLC串口通讯,PC与三菱FX系列PLC通信的实现
- 兔子繁殖问题(斐波那契数)
- idea 修改项目名称的方法
- 从零开始做一款Unity3D游戏<一>——亲自上手使用Unity
- vscode报错Failed to save ***,The content of the file is newer.
- 用户邀请码的生成方法
- 矩阵方程的计算求解(Matlab实现)
- 咕咕王小谢的C语言之路————第一章 初遇C语言 第三集 变量与常量
- 写在给自己入个耳机之前