category
tags
type
status
slug
date
summary
icon
password
前言
用python实现将视频的声音对白转换成文字,可有以下两种方案:
- 提取视频字幕
往往视频作者都会在视频底部加上字幕,以提升观看体验。我们可以利用这点,通过python的图像库截取视频画面,再通过文字OCR识别图像上字幕,转写成文字。
- 视频→音频→文字
有的视频是没有字幕的,我们可以利用python的媒体库,将视频源文件转成音频格式,再对音频格式进行语音识别文字。
功能实现
1.整体思路
- 读取媒体文件
- 根据媒体文件类型统一转成WAV格式的音频
- 将音频分割成30秒以内的短音频(有利于提高调用成功率,并支持多线程以提高效率)
- 调用语音转文字服务,将音频转为文字,存入txt文本中
- 将多个文本按照顺序合并
2.借助的工具
- python
speech_recognition
语音识别库;支持 google、ibm、bing等多家的语音转写开放接口,本文使用的 Google Web Speech API。
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F6b492988-bdc9-443c-9a04-7f5cb5b69804%2FUntitled.png?table=block&id=7db04f5a-04e4-442b-a65c-9139d8c74096)
SpeechRecognition 自身附带了 Google Web Speech API 的默认 API 密钥,可直接使用它。其他几个 API 都需要申请密钥或用户名/密码组合进行身份验证。
这几个库中只有
recognition_sphinx
与CMU Sphinx
支持引擎脱机工作,其他六个都要连接互联网。pydub
, 音频格式转换;
VideoFileClip
, 视频格式转换;
3.项目代码实现
以下是主方法代码片段:
详情请访问Github源码 https://github.com/tangly1024/Video2Text
4.已知缺陷
- 需要科学上网,否则无法使用谷歌音频转写接口
- 文字分段突兀,由于音频被按照30秒强行切开的,而不是按照断句分割,所以最好手动校对结果。
- 没有标点符号。
调用演示
具体可以下载开源代码,在自己的电脑上运行,这里简单演示运行正确的过程 :
安装启动步骤
- 下载安装社区版本即可
- 安装 一路Next即可
安装截图
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Ff41ef786-330b-41df-8bc8-ec19c91f1879%2FUntitled.png?table=block&id=678b3d13-f382-4186-8366-36e359c50c52)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F93fffd06-93fe-4c43-9556-b87df4c99e5a%2FUntitled.png?table=block&id=68710d43-47c1-4cbe-bca0-a86caf4685c8)
- 导入代码
导入截图,从Github下载代码导入
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F26f4f4df-0f0a-41c4-9f53-c777f0d76e78%2FUntitled.png?table=block&id=b5712069-6628-4a67-815a-c773df61671f)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F6def85e3-2e4a-4485-95f9-28bbe883934d%2FUntitled.png?table=block&id=ed841569-77bf-418a-8ab3-0cbd94fbc0e0)
3.设置编译环境 venv
venv 是一个虚拟环境,设置虚拟环境后,此项目的所有依赖都会独立地被安装在当前虚拟环境下;有助于将本项目依赖与电脑上的全局环境隔离,确保系统环境干净。
点击File->Setting,如图:
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Faefda0db-0f2e-451c-874c-4401ae8d9750%2FUntitled.png?table=block&id=b584a36b-f0ce-41e8-b0d0-2df89dcd08f9)
在Project Interpreter 中点击 Add Interpreter 并点击 Add Local Interpreter
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fd1f85496-dec4-4fb4-a16c-20c6b9bdfda7%2FUntitled.png?table=block&id=8488fd48-deb6-4351-baa8-475b293420ce)
在弹出框中,Pycharm会自动在当前项目下创建一个venv虚拟的python环境,如图:
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fc3aeebbf-dde2-4600-a81b-a44ef722bcba%2FUntitled.png?table=block&id=77fcca5d-1ecc-4ea0-be96-02f85f92ba95)
直接点击OK即可,我这里因为已经创建过了,所以OK按钮不能点击
点击下拉框,将当前环境设置为刚创建的虚拟环境,如图:
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fcc5c6376-0cd0-407c-8f58-9f57ec5d7b41%2FUntitled.png?table=block&id=5fef09a8-2bd7-44a0-adfd-a86cda13014d)
4.在虚拟环境中安装第三方依赖
上面切换环境后,重启一下Pycharm,不然会读取失败
在底部,terminal中 输入
安装过程截图:
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fef9a8116-7be3-4467-9f5d-ae5156d93823%2FUntitled.png?table=block&id=162b3e45-23be-4e42-9cac-37149c613014)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F5243700a-2d10-43b0-a60b-c9160c45d29e%2FUntitled.png?table=block&id=3d420c3a-7665-4e8a-94e6-cce717204fa5)
转换效果
- 将源文件的mp4,mp3等文件统一转wav音频
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F1c0a7da2-9509-464c-8278-467e244dd1d3%2FUntitled.png?table=block&id=f83fe79d-9d3c-4ae5-87e3-34dd2c3f096d)
- 将音频文件分割成多个
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fd05698e5-e0b0-4e37-9733-2187d5de6116%2FUntitled.png?table=block&id=b78bb644-3548-4238-a70b-c8d565c5ae90)
- 批量调用API转换文字
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fa982d602-04f9-4cae-8eab-c2444906f20e%2FUntitled.png?table=block&id=73f1c9ba-8a36-45dc-8a5e-dbaddc2030da)
- 输出结果
如图:在output目录下会生成一个与你的原视频同名的音频文件和文本文件。而在/output/split目录下是被分割后的文件。
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fa042025f-bbf7-425a-8985-79db854d89ed%2FUntitled.png?table=block&id=d20b614c-8d0d-43c1-aaba-e12d8eebd12a)
最后
这个python小程序的转换效果还有很大的优化空间,另外,网上有提供一些在线视频转文字的服务,使用体验都很不错:
剪映专业版
这是一个视频剪辑的神器,步骤很简单,将素材拖入轨道,然后点击文本-智能字幕-开始识别即可。
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F62f02037-1c19-426f-8736-34ca38a4220b%2FUntitled.png?table=block&id=b33d4eb6-5908-4d67-a0fe-60712ba6b601)
选择 文件 - 导出 - 然后仅勾选字幕导出即可。
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fec0e0bb5-a071-4151-8500-e21a22ba7b4d%2FUntitled.png?table=block&id=68fbc483-1cd0-4f88-8d74-e4d493947ecf)
微信小程序抖乐推小助手
微信轻抖小程序提取视频文案
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F869aeb8e-5130-4445-a6b3-731c5ed28aa2%2FUntitled.png?table=block&id=fd79e70a-e60b-4877-bc00-5a5af3aff527)
创作猫App支持粘贴视频链接直接转文字
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F311ab5c6-1d2b-478b-bb47-b7aa5e639b59%2FA246838F-4A39-4DC5-AD02-22642291D27E.png?table=block&id=c13536b6-c02a-4fc3-ac33-3000b0500b18)
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F0af8e02f-a386-4193-89b6-a16e50b7ba23%2FCFB4F274-E856-4DC9-A1F8-CEA5CDACF9C3.png?table=block&id=0c37fb43-b71a-4f4e-847f-a7acd4d9be32)
蜜蜂剪辑的在线视频转文字。
![蜜蜂剪辑](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F59cf2a06-539f-44f5-b8e7-5bb3e416d717%2FUntitled.png?table=block&id=3ace1e0a-10bc-484b-b981-b4f447422d6e)
![蜜蜂剪辑 视频提取文案](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F7e5da3fb-c2af-4daf-bde7-169a35d5405f%2FUntitled.png?table=block&id=e5826233-2dd9-43fe-8fef-901c7e7359c9)
PDF365在线视频转写文字
- 作者:NotionNext
- 链接:https://tangly1024.com/learning-python-video-to-text
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。