当前位置:首页|资讯

使用PyCStruct读取C语言的结构体

作者:TSINGHUAJOKING卓晴发布时间:2024-10-23

一、前言

  在 TEASOFT 视频软件中,有一种被称为 图片选择播放状态的形式,能够将序列图片按照多种形式进行播放。但是,这些图片对应的解说词,都放置在 Picture 目录中的专门文件中,这些文件与主文件对应的 BSI 不再同一目录。下面编写一个 Python 程序,能够讲这些播放过程中的解说词提取出来,完成 AI 自动配音。

二、BSI的结构

  关于TEASOFT 记录控制播放动作的文件存储在自定义的二进制文件中。使用了 C 语言的结构体定义了文件的存储信息格式。其中 变量 Show Number 定义了每一画面解说词的数量。在BSI 文件存储函数中,定义了数据文件所包括的结构体以及存储的顺序。这些结构体大都使用了 C 语言的 Structure 语句进行定义。为了能够方便 Python 读取这些结构体中的数据,下面使用了 Py CStruct 软件包帮助进行解析。

三、获取函数

  根据 PyCStruct 的使用方法,定义了一个 Python 函数,可以扫描当前 DOP 文件下所有子目录下的 BSIA 文件,提取其中的解说词。并将解说词综合在一颗数组中,这样便于对自动配音软件中进行调用。经过测试,该程序工作正常,可以将 DOP 文件中所有语言信息提取,并汇总在原来配音软件中。

※ 总  结 ※

  本文记录了读取 BSI文件中语言文字的程序编写。使用 Python中的 Cstruct 软件包,方便了对于C语言结构体数据的读取。经过测试,这个软件工作正常,将来可以更加方便的应用 网络 AI 对于合成视频进行配音了。

三、获取函数

  根据 PyCStruct 的使用方法,定义了一个 Python 函数,可以扫描当前 DOP 文件下所有子目录下的 BSIA 文件,提取其中的解说词。并将解说词综合在一颗数组中,这样便于对自动配音软件中进行调用。经过测试,该程序工作正常,可以将 DOP 文件中所有语言信息提取,并汇总在原来配音软件中。

※ 总  结 ※

  本文记录了读取 BSI文件中语言文字的程序编写。使用 Python中的 Cstruct 软件包,方便了对于C语言结构体数据的读取。经过测试,这个软件工作正常,将来可以更加方便的应用 网络 AI 对于合成视频进行配音了。

参考资料[1]

pycstruct: https://pypi.org/project/pycstruct/

[2]

Python 使用ctypes包进行打包和解包(Structure <-> str): https://geek-docs.com/python/python-ask-answer/373_python_how_to_pack_and_unpack_using_ctypes_structure_str.html




Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1