Python提取视频文案





1、背景描述


在多媒体应用中,视频是一个信息量巨大的载体。然而,有时我们需要从视频中提取语音并转换为文本,以用于文本分析和机器学习训练

其中主要涉及到两个过程:视频转音频和音频转文字,分别对应到两个第三方库。Python实现视频转音频和音频转文字的功能主要有两个库:

  • moviepy:用于将视频转为音频
  • SpeechRecognition:用于将音频转换为文字

安装:

pip install moviepy
pip install SpeechRecognition

综上所述,视频文案的提取分为两步:视频转音频、音频转文字

2、视频转音频


首先,我们将使用moviepy库将视频文件转换为音频文件

from moviepy.editor import VideoFileClip

# 选择视频文件
# 视频文件路径或文件名
video_path = r"C:\Users\cc\Desktop\test.mp4"

# 使用VideoFileClip函数创建一个VideoFileClip对象,用于处理视频文件
video = VideoFileClip(video_path)

# 使用audio方法从VideoFileClip对象中提取音频
audio = video.audio

# 使用write_audiofile方法将提取的音频保存到文件中
# 音频文件输出路径或文件名
audio_output_path = "audio.wav"
audio.write_audiofile(audio_output_path)

3、音频转文字


然后,我们再使用SpeechRecognition库将音频文件转换为文字

import speech_recognition as sr
import os

# 选择音频文件
# 音频文件路径或文件名
audio_path = "audio.wav"

# 创建Recognizer对象,用于处理音频文件
recognizer = sr.Recognizer()

# 使用Recognizer对象的record方法读取音频文件
with sr.AudioFile(audio_path) as source:
    audio = recognizer.record(source)

# 语音识别
text = recognizer.recognize_google(audio, language='zh-CN')
print(text)

# 清理临时文件
os.remove(audio_path)

上述过程中,我们使用Recognizer对象的recognize_google方法将音频转换为文字

recognize_google是谷歌提供的音频转文字API(Google Cloud Speech-to-Text API)

recognize_google函数可能不会在所有音频文件上工作,因为它依赖于云服务或本地语音识别引擎的准确性和性能。对于特定的应用,可能需要对音频进行预处理,例如降噪或调整录音条件以提高识别准确率

值得注意的是,视频转音频的效果非常好,但是音频转文字总是出现API请求失败:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

难道需要Api Key和Secret Key吗?


相关推荐

  1. python提取视频中的音频

    2024-07-12 19:36:04       42 阅读
  2. Python实战:文本内容提取

    2024-07-12 19:36:04       33 阅读
  3. python提取word文档内容的示例

    2024-07-12 19:36:04       49 阅读
  4. PDF解析--PyMuPDF (python 文档解析提取

    2024-07-12 19:36:04       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 19:36:04       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 19:36:04       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 19:36:04       62 阅读
  4. Python语言-面向对象

    2024-07-12 19:36:04       72 阅读

热门阅读

  1. ArcGIS Pro SDK (八)地理数据库 6 版本控制

    2024-07-12 19:36:04       23 阅读
  2. SpringBoot使用手册

    2024-07-12 19:36:04       21 阅读
  3. ROS2-humble学习

    2024-07-12 19:36:04       22 阅读
  4. 代码随想录打卡第二十一天

    2024-07-12 19:36:04       24 阅读
  5. Unity 之 抖音小游戏集成排行榜功能详解

    2024-07-12 19:36:04       22 阅读
  6. adb参数详解

    2024-07-12 19:36:04       22 阅读
  7. Git常用命令

    2024-07-12 19:36:04       25 阅读
  8. 力扣2211.统计道路上的碰撞次数

    2024-07-12 19:36:04       24 阅读
  9. js【详解】声明常量和变量 const let var

    2024-07-12 19:36:04       27 阅读
  10. CVE漏洞爬虫脚本

    2024-07-12 19:36:04       21 阅读
  11. 掌握Postman的API请求模板:一键生成,效率倍增

    2024-07-12 19:36:04       24 阅读
  12. Vue中的Mixins与钩子函数:理解合并与调用

    2024-07-12 19:36:04       26 阅读
  13. Todo List

    2024-07-12 19:36:04       21 阅读
  14. ARM/Linux嵌入式面经(十):极氪

    2024-07-12 19:36:04       19 阅读
  15. 【网络安全】一文带你了解什么是【sql注入】

    2024-07-12 19:36:04       19 阅读