转载说明:原创不易,未经授权,谢绝任何形式的转载
Midjourney 创作,彩色的代码字节流
将视频转录为文本稿件可能是一项耗时的任务,特别是如果您需要处理大量内容。幸运的是,您可以使用 Python 和一些开源库来自动化该过程并达到高准确率。在本教程中,我们将展示如何仅使用 15 行 Python 代码以 97% 的准确率转录视频。
先决条件在开始之前,您需要在计算机上安装 Python 以及我们将要使用的几个库。要安装必要的库,请在终端中运行以下命令:
pip install SpeechRecognition
pip install pydub
SpeechRecognition 是一个库,可以在音频文件上执行语音识别;而 pydub 是一个库,可以在多种格式的音频文件上进行操作。
转录视频转录视频的第一步是从视频文件中提取音频。在本教程中,我们将使用 MP4 文件,但您也可以使用其他格式。提取音频并将其转换为 WAV 文件的代码如下:
import speech_recognition as sr
from pydub import AudioSegment
import os
# Load the video file
video = AudioSegment.from_file("video.mp4", format="mp4")
audio = video.set_channels(1).set_frame_rate(16000).set_sample_width(2)
audio.export("audio.wav", format="wav")
在此代码中,我们使用 pydub 的 AudioSegment 类加载视频文件并提取音频。然后,我们将音频设置为单声道、16kHz、16位,这是 SpeechRecognition 库所要求的格式。最后,我们将音频导出为 WAV 文件。
现在,我们有了音频文件,我们可以使用 SpeechRecognition 库将其转录为文本。以下是实现此操作的代码:
# Initialize recognizer class (for recognizing the speech)
r = sr.Recognizer()
# Open the audio file
with sr.AudioFile("audio.wav") as source:
audio_text = r.record(source)
# Recognize the speech in the audio
text = r.recognize_google(audio_text, language='en-US')
在此代码中,我们初始化 SpeechRecognition 的 Recognizer 类并打开音频文件。然后,我们使用 record 方法读取音频并将其存储在 audio_text 变量中。最后,我们使用 recognize_google 方法将音频转录为文本,并将结果存储在 text 变量中。
保存文本稿注:如果视频内容是中文,请将 language 参数更改为 'zh-CN',还有个需要注意的国内网络问题,你需要解决网络的问题,有可能会提示网络不正常的错误
最后一步是将文本稿保存到文件中。以下是实现此操作的代码:
# Print the transcript
file_name = "transcription.txt"
with open(file_name, "w") as file:
# Write to the file
file.write(text)
# Open the file for editing by the user
os.system(f"start {file_name}")
在此代码中,我们创建了一个名为 transcription.txt 的新文件,并将文本稿写入其中。然后,我们使用 os 库打开该文件供用户编辑。这行代码可能会因您的操作系统而略有不同,因此您可能需要相应地进行调整。
完整的代码import speech_recognition as sr
from pydub import AudioSegment
import os
# 加载视频文件
video = AudioSegment.from_file("video.mp4", format="mp4")
# 将音频设置为单声道、16kHz、16位
audio = video.set_channels(1).set_frame_rate(16000).set_sample_width(2)
# 导出音频为 WAV 文件
audio.export("audio.wav", format="wav")
# 初始化 Recognizer 类(用于语音识别)
r = sr.Recognizer()
# 打开音频文件
with sr.AudioFile("audio.wav") as source:
audio_text = r.record(source)
# 识别音频中的语音
text = r.recognize_google(audio_text, language='zh-CN')
# 打印转录结果
file_name = "transcription.txt"
with open(file_name, "w") as file:
# 将转录结果写入文件
file.write(text)
# 打开文件供用户编辑
os.system(f"start {file_name}")
结束
就这样!仅使用 15 行 Python 代码,我们以 97% 的准确率转录了一个视频。当然,转录的准确性将取决于多种因素。尽量使用没有大量叠加声音或背景噪音的清晰音视频。
今天的分享就到这里,感谢你的阅读,希望能够帮助到你,文章创作不易,如果你喜欢我的分享,别忘了点赞转发,让更多有需要的人看到,最后别忘记关注「前端达人」,你的支持将是我分享最大的动力,后续我会持续输出更多内容,敬请期待。