视频文字提取(方法一)

生活中很多时候需要提取视频中的文字,借助AI工具辅助编写python程序提取视频文字可以极大提高工作效率。

以下是利用ChatGPT编写的提取视频文件的代码供大家参考使用,该算法的基本思想是先将视频中的音频提取出来保存为wav文件,然后再从音频文件中提取文字。

import subprocess
import os
import speech_recognition as sr
import imageio_ffmpeg as ffmpeg

def extract_audio_with_ffmpeg(video_path, audio_output="替换为保存音频文件的路径/temp_audio.wav"):
    """使用imageio-ffmpeg从视频中提取音频并保存为wav格式"""
    ffmpeg_path = ffmpeg.get_ffmpeg_exe()  # 获取ffmpeg的路径
    command = [
        ffmpeg_path, "-i", video_path, "-vn", "-acodec", "pcm_s16le", "-ar", "44100", "-ac", "2", audio_output
    ]
    try:
        subprocess.run(command, check=True)
        print(f"音频成功提取到 {audio_output}")
    except subprocess.CalledProcessError as e:
        print(f"提取音频时出错: {e}")
        return None
    return audio_output

def audio_to_text(audio_path, language="zh-CN"):
    """使用SpeechRecognition将音频转换为文字(支持中文)"""
    r = sr.Recognizer()

    try:
        with sr.AudioFile(audio_path) as source:
            audio = r.record(source)  # 加载整个音频文件

        # 使用Google Web API进行语音识别
        text = r.recognize_google(audio, language=language)
        return text
    except sr.UnknownValueError:
        return "无法识别音频"
    except sr.RequestError as e:
        return f"API请求失败: {e}"

def save_text_to_file(text, file_path):
    """将识别的文字保存到指定的文本文件"""
    with open(file_path, 'w', encoding='utf-8') as file:
        file.write(text)
    print(f"文字已保存到 {file_path}")

def main(video_file):
    # 步骤1:提取音频
    audio_file = extract_audio_with_ffmpeg(video_file)
    if not audio_file:
        return

    # 步骤2:语音识别
    result = audio_to_text(audio_file)

    # 将识别的文字保存到文件
    save_text_to_file(result, "recognized_text.txt")

    # 可选:删除临时音频文件
    if os.path.exists(audio_file):
        os.remove(audio_file)

    print("识别结果:")
    print(result)

if __name__ == "__main__":
    video_file = "video.mp4"  # 替换为你的视频文件路径
    main(video_file)

### 抖音视频文案提取Python实现 要从抖音视频提取文案文本数据,可以按照以下方式操作。整个过程分为三个部分:获取视频链接、提取音频并将其转化为文字。 #### 1. 提取视频链接 通过爬虫技术可以从抖音页面中抓取到视频的相关信息。以下是基于正则表达式的代码片段,用于从HTML源码中提取JSON数据,并进步解析得到视频的具体URL: ```python import requests import re from urllib.parse import unquote import json def extract_video_info(link): headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" } url = link response = requests.get(url, headers=headers) raw_data = re.findall(r'<script id="RENDER_DATA" type="application/json">(.*?)</script>', response.text)[0] decoded_data = unquote(raw_data) video_details = json.loads(decoded_data)["app"]["videoDetail"] # 返回视频描述和其他元信息 return { "title": video_details["desc"], # 视频标题 "author": video_details["author"] # 用户名或其他作者信息 } # 调用函数测试 link = "https://www.douyin.com/video/..." # 替换为实际链接 info = extract_video_info(link) print(f"Video Title: {info['title']} by Author: {info['author']}") ``` 此代码利用正则表达式匹配`<script>`标签内的JSON字符串[^1],并通过解码和加载JSON对象获得视频详情。 --- #### 2. 将视频转换为音频 为了提取视频中的声音作为后续处理的基础,可借助FFmpeg工具将MP4文件转换成MP3格式。下面是个简单的脚本示例: ```python import os import subprocess import time def convert_to_audio(video_path, audio_output_dir="/path/to/output"): timestamp = int(time.time()) base_filename = f"audio_{timestamp}.mp4" mp3_filename = f"audio_{timestamp}.mp3" input_file = os.path.join("/tmp", base_filename) output_file = os.path.join(audio_output_dir, mp3_filename) # 使用 FFmpeg 进行转换 command = [ "ffmpeg", "-i", video_path, "-vn", "-acodec", "libmp3lame", output_file ] result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE) if result.returncode != 0: raise Exception("Audio conversion failed.") return output_file # 测试调用 converted_mp3 = convert_to_audio("/path/to/input_video.mp4") print(f"Converted MP3 saved at: {converted_mp3}") ``` 该模块负责把输入的视频文件转录为纯音频流以便于下步分析[^3]。 --- #### 3. 音频转文字 最后步是采用语音识别API(如百度AI开放平台、Google Speech-to-Text API 或者其他第三方服务),将音频信号映射至对应的书面语言表示形式。这里给出个通用框架实例化流程: ```python import speech_recognition as sr def transcribe_audio(file_path): recognizer = sr.Recognizer() with sr.AudioFile(file_path) as source: audio_content = recognizer.record(source) try: text_result = recognizer.recognize_google(audio_content, language='zh-CN') return text_result except sr.UnknownValueError: return "无法理解音频内容." except sr.RequestError as e: return f"请求错误;{e}" # 应用案例演示 transcribed_text = transcribe_audio(converted_mp3) print(transcribed_text) ``` 上述逻辑依赖`speechrecognition`库完成最终的声音解读工作。 --- ### 注意事项 由于涉及多个外部资源和服务提供商,在部署前需确认各环节配置无误,尤其是API密钥的有效性和网络连通状况。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值