Streamlit + FastAPI as GUI base
过去半年收到不少关于GUI的优化改进,针对之前PyQT5和简易web+flask框架上在扩展性和开发效率缺陷问题,近期进行了新的技术选型对比后,最终决定参考Opyrator,saved_models选定Streamlit + FastAPI进行全面替换(非常遗憾没有直接基于Opyrator,是因为其已经荒废半年)。本文用于简单介绍这次引入库和相关开发规范,基本信息如下:
FastAPI是非常轻量的 web现代主流框架,用于声明式高效开发、高性能的Mockingbird API,也希望进一步降低项目后续的维护成本。
配合上,GUI客户端部分我们则使用一个逐渐成为主流的开源库Streamlit,可以帮助我们在短时间内在做机器学习 (ML) 可视化开发,构建并部署强大的Web应用。其对于我们项目的核心优点是学起来很容易,无需要任何 Web 开发经验,只需对 Python 有基本的了解,就足以构建自定义、相对复杂的界面,内置了很多Tensorflow 和 Pytorch、Scikit-learn接口和可视化库。
本次Mockingbird项目引入以上库,初步效果如下:
这是替换了整个Toolbox目前语音转换部分的能力,运行与体验方式是拉取dev代码后,运行:
代码所在路径启用了新的文件夹/模块:mkgui,如下图所示