【Python音视频技术】Python音视频技术系列文章2---视频提取音频转换文字

接上一篇文章 【Python音视频技术】玩AI视频创作引发写Python音视频技术系列文章1---视频添加字幕

之前我想在视频中提取音频转换文字, 当时是用 PC剪映专业版搞定的, 详情见 【AI+应用】模仿爆款视频二次创作短视频操作步骤 。 这里我准备用python来实现类似功能。

先上自己简单写的示例代码:

这里的原视频用的【人工智能】AI视频二次创作演示

​​​​​​​

复制代码
import moviepy.editor as mpimport speech_recognition as sr

def video_to_text(filePath, fileName):    video = mp.VideoFileClip(filePath + fileName)
    audioPath = filePath + '/converted.wav'    video.audio.write_audiofile(audioPath)
    r = sr.Recognizer()    with sr.AudioFile(audioPath) as infile:        audio = r.record(infile)        print(r.recognize_sphinx(audio))

if __name__ == '__main__':    video_to_text("/Users/lwj", "/spring.mp4")

代码简单解释下, 先把视频转换成音频文件(这里转换成wav格式),然后SpeechRecognition离线识别文字。

需要注意的是SpeechRecognition支持语音文件类型:

复制代码
WAV: 必须是 PCM/LPCM 格式AIFFAIFF-CFLAC: 必须是初始 FLAC 格式;OGG-FLAC 格式不可用

recognize_sphinx()语音识别器,它既可以联网工作,也可以离线工作,离线必须安装pocketsphinx库。

这里采用离线方式。

pip3 install SpeechRecognition

pip3 install pocketsphinx

备注: moviePy安装可以参考上一篇文章,这里就不细写了。

python3 video_to_text.py

直接安装运行后会发现, 对应目录产生了音频文件, 生成的文字等待了很长时间,出来一堆牛头不对马嘴的英文。 这时候,我在想,应该是要找安装 中文声学模型、语言模型和字典文件。

参照网上的做法:先找中文包下载地址:

https://sourceforge.net/projects/cmusphinx/files/Acoustic and Language Models/Mandarin/

python安装目录下找到Lib\site-packages\speech_recognition:

如果你有很多python安装版本,不知道Python路径,可以通过命令

pip3 show speechRecognition 查找。

点击进入pocketsphinx-data文件夹,并新建文件夹zh-CN:在这个文件夹中添加进入刚刚解压的文件,需要注意:把解压出来的zh_cn.cd_cont_5000文件夹重命名为acoustic-model、zh_cn.lm.bin命名为language-model.lm.bin、zh_cn.dic中dic改为pronounciation-dictionary.dict格式。

修改了代码 print(r.recognize_sphinx(audio)) 为

print(r.recognize_sphinx(audio, language='zh-cn'))

重新运行 python3 video_to_text.py, 音译的什么玩意。 还是有点牛头不对马嘴。

个人猜想有2个原因,待确定。

1、pocketsphinx离线版中文音译并不理想

2、我这个原视频杂音太多,除了字幕的音频,还有音乐。影响具体的文字识别。后续找个其他视频试一下。

文章先到这里。主要是因为本周末下午天气很好,待会陪小孩玩足球,先不折腾了。 这个只是跑通了流程,并不是太满意实际效果。

未完待续

相关推荐
IpdataCloud11 分钟前
AI智能体调用工具怎么核验来源IP?归属地、网络类型与代理风险识别(含Python代码)
数据库·python·tcp/ip
2601_9669496535 分钟前
只拿到股票代码还不够:量化程序到底还需要哪些标的信息?——从数据建模开始理解股票元数据
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
蒸鱼Yuzheng39 分钟前
Python 游戏测试开发怎么准备:日志解析、接口校验、并发与可维护性
自动化测试·python·测试开发·面试题·游戏测试
m0_734571761 小时前
深入理解5g <十八>传输块tbsize的计算
开发语言·5g
Ivanqhz1 小时前
BM1688 双核架构
python·深度学习·神经网络·cnn·mlir
Java后端的Ai之路1 小时前
Python进阶探索17 - Python中的深拷贝与浅拷贝
人工智能·python·ai·浅拷贝·深拷贝
西柚研究生1234562 小时前
论文分析17:YOLOv11_UAVNet:无人机航拍图像专用目标检测算法
人工智能·python·深度学习·算法·目标检测
镭封2 小时前
短剧多人对白怎么配?一人完成多角色配音的办法
人工智能·音视频·语音识别·媒体
RAN11426760082 小时前
1.3第一个程序的介绍
开发语言·qt
沧海一笑-dj3 小时前
【Python】Python学习笔记-初识 Python
python·python安装·python解释器