python文字转音频文件,python 音频转文字处理
最近拿到很多教学视频,需要在一周后考核视频里的内容,时间紧,任务重,一个个看时间上不允许,不看吧,考核过不去,我就在想,能不能把视频里的语音转换成文字,看文字效率高一些,而且找到重点之后再去看视频,效果也应该会好,python大法好,这个也是可以用大蟒加百度智能云接口来实现的,百度智能云的语音识别技术识别率已经很高了,就避免了我们自己训练模型了,拿来用就行,而且官方提供的测试语音数量已经够我们用了,不需要购买服务,真是太赞了,人生苦短,我用大蟒
备注:代码是大神分享在g i t h u b上面的,我算是转载他的
接下来上代码,作为一个备份
从ffmpy3导入FFmpegfrom pydub.audio_segment导入pymediainfo中的音频段导入来自aip的媒体信息导入AipSpeechdef vedio _ to _ PCM(file):输入文件=文件文件类型=文件。拆分( . )[-1]输出文件=输入文件。replace(file _ type, PCM )ff=FFmpeg(executable= FFmpeg ,global_options=[-y],input={ input file:None },output file={ acodec PCM _ s16le-f s16le-AC 1-ar 16000 })ff。cmd ff。run()返回输出文件def vedio _ to _ wav(file):输入文件=文件file _ type=文件。拆分(。)[-1]输出文件=输入文件。replace(file _ type, wav )ff=FFmpeg(executable= FFmpeg ,global_options=[-y],inputs={inputfile: None},output={ output file:None })ff。cmd ff。run()返回输出文件def wav _ split(path):file=vedio _ to _ wav(path)main _ wav _ path=file path=OS。路径。dirname(file)/ sound _ len=int(mediainfoto _ data()[ tracks ][0][ duration ])sound=音频段。from _ MP3(main _ wav _ path)part _ file _ list=list()min _=sound _ len/1000 if min _ 60:n=int(min _//60)print(type(n))if n * 60min _:n=1 for I in range(n):start _ time=I * 60 * 1000 1 end _ time=(I 1)* 60 * 1000 if end _ in哇格式(一)字。export(零件文件名称,格式= wav )零件文件列表。append(part _ file _ name)return part _ file _ list def BAIDU _ ASR(wav file):PCM _ file=vedio _ to _ PCM(wav file)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 })返回结果def perfect _ path(path,list _):tmp _ path=[]for I in list _:TT=path \ \ I tmp _ path。追加(TT)返回tmp _ path要提取文稿的视频路径path=C:\\Users\\25801路西\ \桌面\ \视频 name _ list=OS。list dir(path)tmp _ path=perfect _ path(path,name _ list)在tmp _ path中为I打印(tmp _ path):print(I)waiting _ list=wav _ split(I)output=open(I . txt , w ,等待列表中我的encoding= gbk :tmp=BAIDU _ ASR(I)[ result ][0]输出。写(tmp)输出。close()remove _ PCM=[]waiting _ list中我的:remove_pcm.append(i.split( . ))[0] .PCM’)OS . remove(I)中的我这个是需要一个软件配合的,源文件我发在百度云上了,拿来就能用,传送门
链接:https://潘。百度一下。com/s/1 bezptdds 0 pnfufq 6 DH 1 CMG
提取码:wob8
文件里包含这些东西
识别效果也很不错,我就不上测试图了,祝大家用的愉快,希望能够帮到有需要的朋友,也能给我备份一下
历史中提交的图片或压缩文件
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。