结合DeepSeek给出的第二种提取文字的方法代码如下:
from moviepy.editor import VideoFileClip
# 视频文件路径
video_path = '视频文件路径'
# 加载视频文件
video = VideoFileClip(video_path)
# 从视频中提取音频部分
audio = video.audio
# 保存音频为临时文件
audio_path = 'temp_audio.wav'
audio.write_audiofile(audio_path)
from pydub import AudioSegment
# 载入音频文件
audio = AudioSegment.from_wav(audio_path)
# 将音频转换为单声道并设置适当的采样率
audio = audio.set_channels(1)
audio = audio.set_frame_rate(16000)
# 存储转换后的音频文件
processed_audio_path = '保存音频文件路径/temp_audio.wav'
audio.export(processed_audio_path, format="wav")
import speech_recognition as sr
# 初始化识别器
recognizer = sr.Recognizer()
# 从转换后的音频文件中加载数据
with sr.AudioFile(processed_audio_path) as source:
audio_data = recognizer.record(source)
# 识别音频中的语音内容
try:
text = recognizer.recognize_google(audio_data, language='zh-CN') # 假设音频语言为中文
print(text)
# 将识别的文字保存到文本文件
txt_file_path = '保存文字结果路径/result.txt' # 设定保存文本的路径
with open(txt_file_path, 'w', encoding='utf-8') as f:
f.write(text)
print(f"识别结果已保存到 {txt_file_path}")
except sr.UnknownValueError:
print("Google Speech Recognition could not understand audio")
except sr.RequestError:
print("Could not request results from Google Speech Recognition service")
# 清理临时文件
import os
os.remove(audio_path)
os.remove(processed_audio_path)