网站首页 > 技术文章 正文
转载说明:原创不易,未经授权,谢绝任何形式的转载
将视频转录为文本稿件可能是一项耗时的任务,特别是如果您需要处理大量内容。幸运的是,您可以使用 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-07-27 python中必须掌握的20个核心函数—split()详解
- 2025-07-27 数据处理基石:DeepSeeK总结 50 个常用函数指南!(第一集)
- 2025-07-27 Python文本处理进阶:unicodedata模块完全解析
- 2025-07-27 15、职场人必看!VBA文本处理的N个实用技巧大放送(零基础入门)
- 2025-05-03 数字化的意义到底是什么?(数字化意味着什么)
- 2025-05-03 Excel常用技能分享与探讨(5-宏与VBA简介之VBA的函数与过程)
- 2025-05-03 Python:print()函数使用指南(python print的用法)
- 2025-05-03 ArkUI-Text/Span 详解(argparse.argumentparser)
- 2025-05-03 数据库SQL语句学习笔记(6)-使用函数处理数据
- 2025-05-03 Python 文件操作魔法手册:open函数的终极艺术
- 1518℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 597℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 521℃MySQL service启动脚本浅析(r12笔记第59天)
- 489℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 489℃启用MySQL查询缓存(mysql8.0查询缓存)
- 477℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 456℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 454℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- windowsscripthost (69)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)