我们有时候会对文字视频文字进行提取,网络上没有很好的方法。所有我用Python写了。

先把Mp4转换成Mp3   MP42MP3.py

# encoding:utf-8    #设置编码方式
import hashlib
import json
import os
import random
import time
import requests
from requests_toolbelt import MultipartEncoder
from moviepy.video.io.VideoFileClip import VideoFileClip# 分隔符,上传文件需要
boundary = '----WebKitFormBoundarydXKxqoF1Oi2HdYCd'header = {'accept': 'application/json, text/javascript, */*; q=0.01','user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36','content-type': 'application/x-www-form-urlencoded; charset=UTF-8','origin': 'http://voice.xunjiepdf.com','sec-fetch-site': 'cross-site','sec-fetch-mode': 'cors','sec-fetch-dest': 'empty','accept-language': 'zh-CN,zh;q=0.9'
}# 上传时用这个header,这个boundary要和请求中files的boundary保持一致,否则上传会报错
update_header = {'accept': 'application/json, text/javascript, */*; q=0.01','user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36','content-type': 'multipart/form-data; boundary=' + boundary,'accept-language': 'zh-CN,zh;q=0.9'
}# 用于请求的基地址BaseUrl
BASE_URL = 'https://user.api.hudunsoft.com'# md5转Text
MD5_TO_TEXT_URL = BASE_URL + '/v1/alivoice/md5Totext'# 查询任务进度
TASK_INFO = BASE_URL + '/v1/alivoice/getTaskInfo'# 上传相关的url
UPLOAD_AUDIO_FILE = BASE_URL + '/v1/alivoice/uploadaudiofile?r=' + str(random.uniform(0, 1))# 这里只用到了一个post请求,所以封装成一个方法
def post(url, body, header):requests.packages.urllib3.disable_warnings()return requests.post(url=url, data=body, headers=header, verify=False)# 任务开始、结束、删除,都使用这个方法,只需要传入file_info及action动作即可  action:'Begin'、'End'、'Delete'
def upload_operate(file_info, action):body = {'action': action,'fileName': file_info['fileName'],'md5': file_info['md5']}return post(UPLOAD_AUDIO_FILE, body, header)# 根据文件路径返回文件名称
def get_file_name(file_path):return os.path.basename(file_path)# 计算文件的MD5值
def get_file_md5(filename):m = hashlib.md5()  # 创建md5对象with open(filename, 'rb') as fp:while True:data = fp.read(4096)  # 每次读取4MBif not data:breakm.update(data)  # 更新md5对象fp.close()return m.hexdigest()# 获取文件大小  返回结果单位:byte字节
def get_file_size(filePath):fsize = os.path.getsize(filePath)return fsize# 获取当前任务进度
def get_task_info(file_info):body = {'client': 'web','source': '335','soft_version': 'v3.0.1.1','device_id': '33c5ba842f15511aa539830082a32500','taskId': file_info['md5']}res = post(TASK_INFO, body, header)if res.status_code == 200:info = json.loads(res.text)print(info)if info['code'] == 0:fileTextList = info['data']['file_text']s = ''for i in fileTextList:s = s + i['text']print('音频转义之后的文字结果为:')print(s)else:print('延时2s轮询查询')time.sleep(2)get_task_info(file_info)else:print(res)# 开始音频转语音任务
def md5_to_text(file_info):body = {'client': 'web','source': '335','soft_version': 'v3.0.1.1','device_id': '33c5ba842f15511aa539830082a32500','md5': file_info['md5'],'fileName': file_info['fileName'],'title': file_info['fileName']}res = post(MD5_TO_TEXT_URL, body, header)# 说明创建转义成文本的任务成功if res.status_code == 200:info = json.loads(res.text)print(info)# 开始查询转义的任务进度get_task_info(file_info)else:print(res)# 删除上传的mp3音频文件任务
def delete_mp3_file(file_info):res = upload_operate(file_info, 'Delete')if res.status_code == 200:print('删除成功')else:print(res)# 结束上传mp3音频文件任务
def stop_upload_mp3_file(file_info):res = upload_operate(file_info, 'End')if res.status_code == 200:info = json.loads(res.text)print(info)# 结束任务成功之后,开始做音频转文字的任务md5_to_text(file_info)else:print(res)# 上传mp3音频文件
def upload_mp3_file(file_info):url = BASE_URL + '/v1/alivoice/uploadaudiofile?r=' + str(random.uniform(0, 1))f = open(file=file_info['filePath'], mode='rb')data = f.read()multipart_encoder = MultipartEncoder(fields={'action': (None, 'Store'),'pos': (None, '0'),'size': (None, str(file_info['size'])),'md5': (None, file_info['md5']),'file': ('blob', data, 'application/octet-stream'),},boundary=boundary)res = post(url, multipart_encoder, update_header)# 说明上传成功if res.status_code == 200:info = json.loads(res.text)print(info)# 调用结束上传任务stop_upload_mp3_file(file_info)else:print(res)# 开始mp3音频文件任务
def start_mp3_file(file_info):res = upload_operate(file_info, 'Begin')if res.status_code == 200:info = json.loads(res.text)print(info)if info['pos'] >= 0:# 创建任务成功开始之后,开始上传音频文件upload_mp3_file(file_info)else:# 说明之前已上传成功过,那就直接去创建生成text的任务md5_to_text(file_info)else:print(res)# 将mp4文件转为mp3音频文件,生成路径仍在原路径中(需要先下载moviepy库)
def mp4_to_mp3(path):try:video = VideoFileClip(path)audio = video.audio# 设置生成的mp3文件路径newPath = path.replace('mp4', 'mp3')audio.write_audiofile(newPath)return newPathexcept Exception as e:print(e)return Noneif __name__ == '__main__':# *********MP4文件的路径地址,注意路径转义 每次修改这个路径*********mp4FilePath = '../mp4/九边劳动人口下跌就完全是坏事吗这可能拯救35岁以上的中年人_1080p.mp4'# 将 mp4文件路径,转成的mp3文件路径mp3FilePath = mp4_to_mp3(mp4FilePath)# 创建一个文件信息对象,方面后续读取音频文件信息# file_info = {}# file_info['md5'] = get_file_md5(mp3FilePath)  # mp3对应的md5值# file_info['fileName'] = get_file_name(mp3FilePath)  # MP3文件的文件名称# file_info['size'] = get_file_size(mp3FilePath)     # 文件大小# file_info['filePath'] = mp3FilePath  # 文件路径# # 创建上传MP3文件的任务# start_mp3_file(file_info)

【1】Python 视频文字识别提取 - Mp4转换成Mp3相关推荐

  1. 【2】Python 视频文字识别提取 - Mp3 文字识别

    网络上没有很好的库用来文字识别,并且文字识别效率很低,这里我用了剪映接口 jianying.py from datetime import dateimport requests import jso ...

  2. 怎么用视频转换器把mp4转换成mp3

    现今各大企业对版权越来越重视,很多播放器的版权越来越少,但是当遇到自己喜欢的背景音乐或者MV时有没有想拷贝到自己手机或者电脑的冲动呢?但是当你发现mp4是视频格式,mp3是音频格式时有没有为如何把mp ...

  3. php文件怎么改为mp3,[视频转音频软件]怎么把mp4转换成mp3音乐格式

    把mp4转换成mp3格式,很明显,mp4是视频格式,mp3是音频格式,视频转音频!还可以说成是提取视频中的音频或声音,其实这种需求在用户当中还是有一些的,比如需要提取某部电脑里面某段声音,去掉视频的画 ...

  4. 怎么把英语视频转为音频怎么把MP4转换成mp3

    什么是音频文件呢?比如我们经常会听的音乐,现在生活节奏越来越快了,渐渐地我们都没有时间去看视频了,更多的人还是比较喜欢听音乐,这样无论是在走路,还是在地铁上,都可以享受音乐了,还有转载备考四六级的同学 ...

  5. 怎么把英语视频转为音频 怎么把MP4转换成mp3

    什么是音频文件呢?比如我们经常会听的音乐,现在生活节奏越来越快了,渐渐地我们都没有时间去看视频了,更多的人还是比较喜欢听音乐,这样无论是在走路,还是在地铁上,都可以享受音乐了,还有转载备考四六级的同学 ...

  6. 视频里的音乐怎么转换成mp3格式?

    视频里的音乐怎么转换成mp3格式?视频里的音乐转换为mp3的原因有很多,主要是因为mp3格式是一种音频格式,文件大小较小,更易于存储和传输.相比之下,视频格式则是一种视频文件格式,虽然包含音频,但我们 ...

  7. 抖音上传视频显示转成mp4怎么设置_详细的mp4转换成mp3格式的方法,不看后悔系列!...

    详细的mp4转换成mp3格式的方法,不看后悔系列! 安利安利安利安利 话说,视频格式转换你们会,音频格式转换你们也会,你们就没有不会的吗? 对了,视频转音频你们会吗?知道怎么将MP4转成MP3吗?不会 ...

  8. 如何批量将mp4转换成mp3?

    mp4是最常见的视频格式,mp3是最常见的音频格式,相信大家都应该清楚,在电脑使用的过程中有时候需要向mp4转换成mp3.不懂的小伙伴认为两者似乎没有什么关系,应该不能转换,其实视频是可以转换成音频的 ...

  9. x3m文件怎么转换成mp3_视频中的音频怎么单独提取出来转换成mp3格式

    视频格式中通常是包含着音频格式的,而在看视频时看见有喜欢的bgm或者片头曲片尾曲时想把其中的音频单独的提取出来怎么办呢?此时通常可以用一些音频转换器把你喜欢的这些音频片段单独的提取出来,接下来就教你怎 ...

  10. 怎么把mp4转换成mp3音频

    什么是音频文件呢?我们印象中,全部那些可以听进耳朵里的其实都可以说是音频哦!包括其实我们平常在听的音乐文件格式也是,只能听,没办法看.主要是MP3文件,也有其他的类似AAC.WAV等等!有时候需要将一 ...

最新文章

  1. unity3d v5.1.1 ugui 带垂直滚动条的文本框
  2. 神策数据与 UCloud 达成战略合作,开启高效企业服务新模式
  3. java swing总结,Java 实用经验总结 Swing 篇
  4. 如何利用Excel计算有多少种组合?
  5. 十一全国电影票房近8亿元 创春节档以来单日大盘新高
  6. NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver
  7. 关于免费域名和空间搭建个人网站——服务器篇
  8. 智能DNS解析过程详解
  9. android+apk编译器,APK编辑器
  10. TFT显示屏参数设置
  11. SODA Foundation中国区启动仪式在联通沃云峰会(WCS)2019成功举行
  12. 根据心电信号计算心率的matlab代码
  13. 电脑系统(U盘安装) win7 win8 win10XP
  14. 新手选车系列之(五): 手动挡还是自动挡
  15. mysql report-port_mysql性能优化工具mysqlreport
  16. 洛谷——P6409 [COCI2008-2009#3] KEMIJA(java实现)
  17. 快速配置Let's encrypt通配符证书
  18. 7-2 计算职工工资 (20 分)
  19. ZBrush:开启右键导航并关闭右键弹出菜单
  20. 超级计算机与生命科学,游戏做生命科学研究:玩家强过超级计算机

热门文章

  1. 计算机操作系统(第四版)课后习题答案西电版
  2. 【转】Jenkins 构建触发器操作详解
  3. 【重点】计算机二级公共基础重点
  4. 2022最新Java面试宝典(史上最全,BAT大厂面试必备,用心看完该篇就够了,建议先关注点赞加收藏)
  5. django+xadmin在线教育平台慕学网(一)
  6. nodejs实现定时爬取微博热搜
  7. Java、JSP网上零食销售系统的设计与实现毕业设计
  8. 大学计算机作业互评评语简短,学生作业互评表的填写方法
  9. 字体的基础知识:中文字体区分练习
  10. 计算机内存体系与Java 内存模型