当前位置:网站首页>剪映+json解析将视频中的声音转换成文本
剪映+json解析将视频中的声音转换成文本
2022-07-06 14:29:00 【fangye945a】
前言
有时候我们想将一段视频中的音频转换成文本,最简单最笨的方法就是通过人耳去听,然后通过打字打出来。但这种方法无疑是十分费劲的。机智的小伙伴肯定都知道我们可以借助语音识别工具来做这件事,但是比较现实的一点就是,很多识别软件不是要收费,就是识别准确率比较低。那么我们有什么办法可以既不花钱又准确的将视频中的音频转换成文本呢?
解决方法
有剪辑经验的小伙伴一定知道,剪映
这款软件的字幕识别功能,其背后有字节跳动的语音识别技术支撑,对普通话的识别准确率是杠杠的。但是有一点是,他识别的字幕是分段的,要将它们一条条复制出来组成完整的文本,其工作量也不少。
那么,下面介绍一个简单的办法:
具体操作步骤
- 1.下载windows版本的剪映
- 2.导入视频
- 3.识别字幕(导入视频后,点击文本->智能字幕->开始识别即可)
- 4.等待一段时间后(时间长短与视频文件大小有关),就会自动生成字幕了。
- 5.生成字幕后,关闭剪映,会自动保存为草稿。此时再打开剪映,右上角会出现草稿参数的方框,在方框中我们可以找到草稿保存的路径。
- 6.在windows资源管理器中打开保存位置,可以看到如下文件。
- 7.根据英文名称不难找出,draft_content.json 中就是我们草稿内容,刚刚生成的字幕文本也保存在这个json文件中。
- 8.既然是json文件,下一步自然就是json解析了,我们将字幕内容从这个文件中提取出来即可。
- 9.分析json文件,找出要解析的字段, 简化后的json结构如下:
{"materials":{"texts":[{"content":"<font id=\"\" path=\"D:/Program Files/JianyingPro/3.0.5.8542/Resources/Font/SystemFont/zh-hans.ttf\"><color=(1.000000, 1.000000, 1.000000, 1.000000)><size=5.000000>同学们好</size></color></font>"}]}}
而我们需要的字幕内容,被三个xml元素标签包裹。
- 10.我们先通过json解析获取到content字段的内容,然后通过字符串处理的方法剔除xml标签,获取最终文本字幕内容。
如下是我写的一个简单的python脚本,可以方便快捷的处理剪映这个包含字幕的json文件:
import json
if __name__ == '__main__':
with open("draft_content.json", "r", encoding='utf-8') as f:
json_str = f.read()
json_content = json.loads(json_str)
texts_data = json_content["materials"]["texts"]
for text_data in texts_data:
content = text_data["content"]
content = content[:-22]
result = content.split("><size=")[1].split(">")[1]
print(result)
- 11.直接将脚本与json文件放置在同一目录下,执行python脚本即可得到需要的字幕内容。
我们还可以通过重定向符号,直接将输出的内容生成文件
python3 parse_jianyin.py >> output.txt
边栏推荐
- Management background --3, modify classification
- Set status bar style demo
- NetXpert XG2帮您解决“布线安装与维护”难题
- The nearest common ancestor of binary (search) tree ●●
- PVL EDI 项目案例
- RESNET rs: Google takes the lead in tuning RESNET, and its performance comprehensively surpasses efficientnet series | 2021 arXiv
- lora同步字设置
- [linear algebra] determinant of order 1.3 n
- 十二、启动流程
- 网络基础入门理解
猜你喜欢
2021 geometry deep learning master Michael Bronstein long article analysis
GPS from getting started to giving up (XIII), receiver autonomous integrity monitoring (RAIM)
Attack and defense world miscall
Crawler obtains real estate data
Chapter 3: detailed explanation of class loading process (class life cycle)
PVL EDI 项目案例
2022年6月国产数据库大事记-墨天轮
第3章:类的加载过程(类的生命周期)详解
LeetCode刷题(十一)——顺序刷题51至55
3DMAX assign face map
随机推荐
What is the difference between animators and animators- What is the difference between an Animator and an Animation?
硬件開發筆記(十): 硬件開發基本流程,制作一個USB轉RS232的模塊(九):創建CH340G/MAX232封裝庫sop-16並關聯原理圖元器件
12、 Start process
Maximum product of three numbers in question 628 of Li Kou
[MySQL] online DDL details
经纪xx系统节点VIP案例介绍和深入分析异常
GPS from entry to abandonment (XVII), tropospheric delay
第4章:再谈类的加载器
i. Mx6ull build boa server details and some of the problems encountered
[sciter]: encapsulate the notification bar component based on sciter
Spatial domain and frequency domain image compression of images
GPS from getting started to giving up (16), satellite clock error and satellite ephemeris error
How does the uni admin basic framework close the creation of super administrator entries?
解决项目跨域问题
OpenCV VideoCapture. Get() parameter details
Wechat red envelope cover applet source code - background independent version - source code with evaluation points function
A Mexican airliner bound for the United States was struck by lightning after taking off and then returned safely
LeetCode刷题(十一)——顺序刷题51至55
GPS从入门到放弃(十二)、 多普勒定速
GPS from getting started to giving up (19), precise ephemeris (SP3 format)