|
||
---|---|---|
app | ||
config | ||
tests | ||
utils | ||
.gitignore | ||
Dockerfile | ||
README.md | ||
main.py | ||
requirements.txt |
README.md
TakwayAI后端
项目架构
AI后端使用fastapi框架,采用分层架构
TakwayAI/
│
├── app/
│ ├── __init__.py # 应用初始化和配置
│ ├── main.py # 应用启动入口
│ ├── models/ # 数据模型定义
│ │ ├── __init__.py
│ │ ├── models.py # 数据库定义
│ ├── schemas/ # 请求和响应模型
│ │ ├── __init__.py
│ │ ├── user_schemas.py # 用户相关schema
│ │ └── ... # 其他schema
│ ├── controllers/ # 业务逻辑控制器
│ │ ├── __init__.py
│ │ ├── user_controllers.py # 用户相关控制器
│ │ └── ... # 其他控制器
│ ├── routes/ # 路由和视图函数
│ │ ├── __init__.py
│ │ ├── user_routes.py # 用户相关路由
│ │ └── ... # 其他路由
│ ├── dependencies/ # 依赖注入相关
│ │ ├── __init__.py
│ │ ├── database.py # 数据库依赖
│ │ └── ... # 其他依赖
│ └── exceptions/ # 自定义异常处理
│ ├── __init__.py
│ └── ... # 自定义异常类
│
├── tests/ # 测试代码
│ ├── __init__.py
| └── ...
│
├── config/ # 配置文件
│ ├── __init__.py
│ ├── production.py # 生产环境配置
│ ├── development.py # 开发环境配置
│ └── ... # 其他环境配置
│
├── utils/ # 工具函数和辅助类
│ ├── __init__.py
│ ├── stt # 语音转文本工具函数
│ ├── tts # 语音合成工具函数
│ └── ... # 其他工具函数
|
├── main.py #启动脚本
├── app.log # 日志文件
├── Dockerfile # 用于构建Docker镜像的Dockerfile
├── requirements.txt # 项目依赖列表
└── README.md # 项目说明文件
项目部署
(1) 将项目clone到本地:
git clone http://43.132.157.186:3000/killua/TakwayPlatform.git
(2) 创建虚拟环境
创建虚拟环境
conda create -n takway python=3.9
conda activate takway
(3) 安装依赖
如果你的本地环境可以科学上网,则直接运行下面两行指令
pip install git+https://github.com/myshell-ai/MeloTTS.git
python -m unidic download
如果不能科学上网
则先运行
pip install git+https://github.com/myshell-ai/MeloTTS.git
- unidic安装
然后手动下载unidic.zip,并手动改名为unidic.zip
这边以miniconda举例,如果用的是conda应该也是一样的
将unidic.zip拷贝入~/miniconda3/envs/takway/lib/python3.9/site-packages/unidic
cd进入~/miniconda3/envs/takway/lib/python3.9/site-packages/unidic
vim download.py
将函数download_version()中除了最后一行全部注释掉,并且把最后一行的download_and_clean()的两个参数任意修改,比如"hello","world"
再将download_and_clean()函数定义位置,注释掉该函数中的download_process()行
运行python -m unidic download
- huggingface配置
运行命令
pip install -U huggingface_hub
export HF_ENDPOINT=https://hf-mirror.com
最好把export HF_ENDPOINT=https://hf-mirror.com
写入~/.bashrc,不然每次重启控制台终端就会失效
- nltk_data下载
在/miniconda3/envs/takway/下创建nltk_data文件夹
在nltk_data文件夹下创建corpora和taggers文件夹
手动下载cmudict.zip和averaged_perceptron_tragger.zip
将cmudict.zip放入corpora文件夹下
将averaged_perceptron_tragger.zip放入taggers文件夹下
- 下载其他依赖
cd TakwayPlatform/
pip install -r requirements.txt
- debug 若出现AttributeError: module 'botocore.exceptions' has no attribute 'HTTPClientError'异常 则执行下述命令
pip uninstall botocore
pip install botocore==1.34.88
(4) 安装FunASR
本项目使用的FunASRE在github上的FunASR的基础上做了一些修改
git clone http://43.132.157.186:3000/gaohz/FunASR.git
cd FunASR/
pip install -v -e .
(5) 修改配置
- 安装mysql,在mysql中创建名为takway的数据库
- 安装redis,将密码设置为takway
- 打开config中的development.py文件修改mysql和redis连接字符串
(6) 导入vits模型
在utils/tts/目录下,创建vits_model文件夹
从链接下载 vits_model并放入该文件夹下,只需下载config.json和G_953000.pth即可
(7) 导入openvoice模型
在utils/tts/目录下,创建openvoice_model文件夹
从链接下载model文件,并放入该文件夹下
(8) 添加配置环境变量
vim ~/.bashrc
在最后添加
export MODE=development
(9) 启动程序
cd TakwayPlatform
python main.py