文 | 派森酱

来源:Python 技术「ID: pythonall」

最近在懂车帝收藏了一些感兴趣的视频,希望能整理出文字稿

观看视频,做笔记时遇到一个问题,需要反复一段一段的去看视频,再手敲整理笔记。想着有没有可以免费的转换工具或者软件,结果很多在线网站都需要登录注册,甚至收费。

这些网站或免费工具都没听过,如果是病毒或不靠谱,就显得浪费时间。

借助api的方式可以尝试,我们画图,先讲一讲该方法的实现思路吧!

流程图

从视频中提取音频可以使用moviepy模块。

由于百度API最多只支持60秒长度的音频,所以还需要使用pydub对音频文件进行切割,然后分段进行文字转换。

所以从视频到文字的大概流程应该是这样的:

在音频提取过程中还要对音频的采样率、声道数、码率进行设置,同时指定输出音频格式。语法格式:ffmpeg -y  -i voice.mp3  -acodec pcm_s16le -f s16le -ac 1 -ar 16000 voice.pcm

关于语音转文字

在一段视频中真正包含文字信息的其实不是视频文件而是音频文件,这样就需要先把视频转换成音频,再从音频提取文字也就是语音识别。

关于语音转换文字,腾讯/百度/讯飞都提供有自己的API。前几天分享过一篇用python做一个漂亮女生词云舞蹈视频 用到百度的“人体分析”,这次继续沿用百度。

百度API的普通话语音识别,有15万次免费赠送,够用了

接下来就要去查百度的语音识别API文档,看看它对待提取的音频文件有什么要求,下图就是百度的python SDK文档页面

在这些文档中,对百度语音识别API所支持的音频格式进行了明确,概括起来主要有三点要求:

  • 参数:16k 采样率、16bit 位深、单声道;

  • 格式:pcm(不压缩)、wav(不压缩,pcm编码)、amr(压缩格式);

  • 其他:完整语音文件,时长不超过60s。

下载视频

收藏的视频数据都在这里面

you-get下载它,或者用爬虫批量下载

视频转音频

视频剪辑软件可以做这些事情,例如剪映、必剪、Pr等等。

但是当任务量增加的时候,操作就显得非常浪费时间,而用Python的话3行代码就可以提取出来,就算任务量增加使用循环即可

代码如下

from moviepy.editor import AudioFileClipmy=AudioFileClip("艾瑞泽8.mp4") # 你的视频文件
my.write_audiofile("my.mp3") # 设置生成的音频

音频比较长的话,百度短语音识别接口支持1分钟以内的音频,这时候需要对音频进行分割处理,安装pydub模块

pip install pydub

pydub支持音频的各种格式之间进行相互转换,缺点是依赖ffmpeg等文件比较严重,我在这里被坑到了,所以接下来认真安装一遍ffmpeg

Window系统安装FFmpeg

官网下载

https://ffmpeg.org/download.html

找到windows版本

下载这个

无需安装,只需解压后将ffmpeg下的bin目录路径添加到path的环境变量中即可。如下图所示:

注意:修改环境变量后需要重启Python IDE ,如未配置ffmpeg,即便是正确的MP3路径,也会在读取Mp3文件时,错误显示无法找到MP3文件。如下所示:FileNotFoundError: [Errno 2] No such file or directory: 'C:\Lobby.mp3'

使用python分割音频

from pydub import AudioSegment
from pydub.utils import make_chunks#blues文件30s
audio = AudioSegment.from_mp3('my.mp3')size = 30000  #切割的毫秒数chunks = make_chunks(audio, size)  ##将文件切割为59s一块for i, chunk in enumerate(chunks):##枚举,i是索引,chunk是切割好的文件chunk_name = "voice{0}.mp3".format(i)print(chunk_name)##保存文件chunk.export(chunk_name, format="mp3")

4分钟的音频,被分割成8个30秒的文件:

百度接口使用

1.领取免费资源

登录进去后,进入“语音技术”页面,领取免费资源

总量15万次赠送,够用了

2.安装百度AI

pip install baidu-aip

3.创建应用

创建一个语音分析的应用,记住你的AppID、API Key、Secret Key,后面会用到。

4.脚本

我们试一下,对前面分割好的其中一个音频文件,调用百度API接口就可以完成语音转文字了~

from aip import AipSpeech
import os""" 你的 APPID AK SK """
APP_ID = 'xx'
API_KEY = 'xx'
SECRET_KEY = 'xx'client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)# 读取文件
def get_file_content(file_path):# ffmpeg 用于将语音文件转换为pcm格式os.system(f"ffmpeg -y  -i %s  -acodec pcm_s16le -f s16le -ac 1 -ar 16000 %s.pcm" % (file_path,file_path))with open(f"%s.pcm" % file_path, 'rb') as fp:return fp.read()# 识别本地文件
result = client.asr(get_file_content('voice1.mp3'), 'pcm', 16000, {'dev_pid': 1537  # 默认1537(普通话 输入法模型),dev_pid参数见本节开头的表格
})print(result['result'][0])

输出如下

哈哈,我是合肥小熊说的小熊啊,这个视频开始之前呢,简单的两句……

从输出结果来看,提取的内容不只有文字还有标点符号,应该是语音识别API根据说话的语气和停顿时间自己判断的。总体来说效果还不错。

本文是由 Python技术 公众号粉丝 ssw 投稿,欢迎大家继续踊跃投稿!

PS:Python技术交流群(技术交流、摸鱼、白嫖课程为主)又不定时开放了,感兴趣的朋友,可以在下方公号内回复:666,即可进入,一起 100 天计划!

老规矩,酱友们还记得么,右下角的 “在看” 点一下,如果感觉文章内容不错的话,记得分享朋友圈让更多的人知道!

获取神秘礼包

识别二维码,回复:1024


用 Python 轻松将懂车帝视频转换为文本相关推荐

  1. python后端工程师简历_【社招】字节跳动 - 后端开发工程师( Python Golang)-懂车帝...

    [字节跳动-懂车帝-后端开发工程师] 想加入最有梦想最年轻有活力的团队么,懂车帝研发团队呼唤你!懂车帝今年 3 岁,已经成为发展最快的汽车类资讯平台. 如果你热爱编程,热爱汽车,那么动动手指投出简历吧 ...

  2. js逆向破解 —— 懂车帝视频链接

    背景 话说下午有一朋友发我一链接懂车帝某视频,让我帮忙看一下这个网页中视频链接是怎么获取的.我断断续续地花了两三个小时,最后终于把它给拿下了.在整个分析的过程中,我觉得还算是有点意思,所以写下这便博客 ...

  3. 懂车帝视频连接--JS逆向

    这个项目,适合JS逆向学习初学者. 懂车帝:https://zjbyte.cn/i6615388842591518733/ 把谷歌开发者工具调处来-network-手机模式,把加载的东西清空,刷新一下 ...

  4. Python 爬取懂车帝详情页“全部车型模块信息”!懂车帝就火起来了吗?

    需要爬取的内容:汽车具体型号,指导价,经销商报价,车主参考价 import requests import pymysql # 车型库 def Dongchedi(offset): url = 'ht ...

  5. python 爬取懂车帝详情页“全部车型模块信息”

    需要爬取的内容:汽车具体型号,指导价,经销商报价,车主参考价 import requests import pymysql# 车型库 def Dongchedi(offset):url = 'http ...

  6. Python 懂车帝全车系销量排行榜

    本文所有教程及源码.软件仅为技术研究.不涉及计算机信息系统功能的删除.修改.增加.干扰,更不会影响计算机信息系统的正常运行.不得将代码用于非法用途,如侵立删! Python 懂车帝全车系销量排行榜 需 ...

  7. 【原创】Python 懂车帝口碑分爬虫

    本文所有教程及源码.软件仅为技术研究.不涉及计算机信息系统功能的删除.修改.增加.干扰,更不会影响计算机信息系统的正常运行.不得将代码用于非法用途,如侵立删! 懂车帝口碑分爬虫 需求 懂车帝全系车型懂 ...

  8. 产品经理之路:懂车帝APP产品体验报告

    0.体验环境 体验产品:懂车帝APP V7.4.8 设备型号:vivo S15 系统环境:Android 13.0 体验时间:2023.3.23 1.战略层 1.1产品定位 懂车帝官方在软件商店里的介 ...

  9. 汽车营销如何破局?看懂车帝全域营销助品牌“破浪”

    消费者在变!当下消费者喜欢什么呢?据媒体调查显示:娱乐.旅游成为了首选.娱乐中,各种<破浪>类娱乐节目热播可见一斑,而在旅游中,走进大自然的自驾游"破浪"也成为了新趋势 ...

最新文章

  1. 怎么UI数组惊醒初始化 c语言,C语言教案7-数组.ppt
  2. 工具坐标6点法_轻松学机器人系列之各坐标系关系
  3. java 文件提前结束_java – org.xml.sax.SAXParseException:过早结束文件
  4. linux通讯录软件带头像,小程序新技能 Get!保存微信好友头像到手机通讯录
  5. 显示部分x_i5 9400F+GTX 1030+23.8英寸,攀升迁跃者X上手简评
  6. python和c语言的区别-python和c语言的区别是什么
  7. swift实例教程_Swift示例教程基础
  8. 使用 Azure CLI 创建 Windows 虚拟机
  9. 微信小程序引用阿里巴巴iconfont
  10. python生成器推导式_python之推导式and生成器表达器笔记及面试坑
  11. Voleon Group:一家『纯』用机器学习策略的对冲基金
  12. Linux socket程序演示
  13. 陶哲轩实分析 命题7.4.3 (级数的重排) 证明
  14. 投票男神女神公众号投票系统_男神女神投票 v5.5.21版本
  15. 将网页中的文字和图片转换成WORD文档
  16. 期刊类文章左下角添加横线的方法
  17. 小程序转uni-app——onLoad语法转换
  18. 提升树(Boosting tree)算法总结
  19. # 北京市职业技能提升管理平台#大数据#
  20. Linux I2C总线详解

热门文章

  1. arduino双按钮同时点灯
  2. 学习方法--找书,背书,利器
  3. 植树节种树-第12届蓝桥杯Scratch选拔赛真题精选
  4. Keil MDK又来了一个小升级
  5. windows技巧--win7修改锁屏壁纸(不用软件)
  6. 历届试题 Excel地址(Excel单元格的地址表示很有趣,它使用字母来表示列号。   比如,   A表示第1列,   B表示第2列,   Z表示第26列,   AA表示第27列,)
  7. python如何求每一行的均值_计算每X行数的平均值
  8. 本周总结:为图片标签<img>加上 alt属性的好处
  9. 【matplotlib】饼图+legend()、loc、color位置颜色图例中文显示(一个饼图的例子)
  10. bash: setenv: command not found