网站首页 > 技术文章 正文
转载说明:原创不易,未经授权,谢绝任何形式的转载
将视频转录为文本稿件可能是一项耗时的任务,特别是如果您需要处理大量内容。幸运的是,您可以使用 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% 的准确率转录了一个视频。当然,转录的准确性将取决于多种因素。尽量使用没有大量叠加声音或背景噪音的清晰音视频。
今天的分享就到这里,感谢你的阅读,希望能够帮助到你,文章创作不易,如果你喜欢我的分享,别忘了点赞转发,让更多有需要的人看到,最后别忘记关注「前端达人」,你的支持将是我分享最大的动力,后续我会持续输出更多内容,敬请期待。
猜你喜欢
- 2025-09-18 webapi 全流程_webapi一般干什么用的
- 2025-09-18 Vue 3 模板编译器_vue的模板引擎
- 2025-09-18 深入解析 Spring Boot3 中 RestFul 接口参数校验
- 2025-09-18 SpringBoot 自研运行时 SQL 调用树,3 分钟定位慢 SQL!
- 2025-09-18 切片上传的完整实现流程(前端 + 后端)
- 2024-12-12 一款一站式、开源、高质量的数据提取工具(支持PDF/网页/多格式电子书提取)
- 2024-12-12 福岛核电站核残渣试提取工作启动
- 2024-12-12 如何自动识别CAD图中所有表格数据并导出
- 2024-12-12 日本福岛核电站核残渣试提取工作重启
- 2024-12-12 如何在网页中使用 web 字体?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- oracle面试 (55)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)