TakwayPlatform/README.md

193 lines
5.5 KiB
Markdown
Raw Permalink Normal View History

2024-05-01 17:18:30 +08:00
# TakwayAI后端
### 项目架构
AI后端使用fastapi框架采用分层架构
```
TakwayAI/
├── app/
│ ├── __init__.py # 应用初始化和配置
│ ├── main.py # 应用启动入口
│ ├── models/ # 数据模型定义
│ │ ├── __init__.py
│ │ ├── models.py # 数据库定义
│ ├── schemas/ # 请求和响应模型
│ │ ├── __init__.py
2024-05-18 17:58:12 +08:00
│ │ ├── user_schemas.py # 用户相关schema
2024-05-01 17:18:30 +08:00
│ │ └── ... # 其他schema
│ ├── controllers/ # 业务逻辑控制器
│ │ ├── __init__.py
2024-05-18 17:58:12 +08:00
│ │ ├── user_controllers.py # 用户相关控制器
2024-05-01 17:18:30 +08:00
│ │ └── ... # 其他控制器
│ ├── routes/ # 路由和视图函数
│ │ ├── __init__.py
2024-05-18 17:58:12 +08:00
│ │ ├── user_routes.py # 用户相关路由
2024-05-01 17:18:30 +08:00
│ │ └── ... # 其他路由
│ ├── 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 # 项目说明文件
```
2024-05-01 18:20:56 +08:00
### 项目部署
#### (1) 将项目clone到本地:
``` shell
git clone http://43.132.157.186:3000/killua/TakwayPlatform.git
```
#### (2) 创建虚拟环境
2024-05-01 18:20:56 +08:00
2024-05-18 17:58:12 +08:00
创建虚拟环境
``` shell
conda create -n takway python=3.9
2024-05-18 17:58:12 +08:00
conda activate takway
```
#### (3) 安装依赖
如果你的本地环境可以科学上网,则直接运行下面两行指令
``` shell
pip install git+https://github.com/myshell-ai/MeloTTS.git
python -m unidic download
```
如果不能科学上网
则先运行
``` shell
pip install git+https://github.com/myshell-ai/MeloTTS.git
```
1. unidic安装
然后手动下载[unidic.zip](https://cotonoha-dic.s3-ap-northeast-1.amazonaws.com/unidic-3.1.0.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`
2. huggingface配置
运行命令
```shell
pip install -U huggingface_hub
export HF_ENDPOINT=https://hf-mirror.com
```
最好把`export HF_ENDPOINT=https://hf-mirror.com`写入~/.bashrc不然每次重启控制台终端就会失效
3. nltk_data下载
在/miniconda3/envs/takway/下创建nltk_data文件夹
在nltk_data文件夹下创建corpora和taggers文件夹
手动下载[cmudict.zip](https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/packages/corpora/cmudict.zip)和[averaged_perceptron_tragger.zip](https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/packages/taggers/averaged_perceptron_tagger.zip)
将cmudict.zip放入corpora文件夹下
将averaged_perceptron_tragger.zip放入taggers文件夹下
4. 下载其他依赖
``` shell
cd TakwayPlatform/
pip install -r requirements.txt
```
2024-05-23 11:48:05 +08:00
5. debug
若出现AttributeError: module 'botocore.exceptions' has no attribute 'HTTPClientError'异常
则执行下述命令
``` shell
pip uninstall botocore
pip install botocore==1.34.88
```
#### (4) 安装FunASR
2024-05-18 17:58:12 +08:00
本项目使用的FunASRE在github上的FunASR的基础上做了一些修改
``` shell
git clone http://43.132.157.186:3000/gaohz/FunASR.git
cd FunASR/
pip install -v -e .
```
#### (5) 修改配置
2024-05-01 18:20:56 +08:00
2024-05-01 18:27:51 +08:00
1. 安装mysql在mysql中创建名为takway的数据库
2. 安装redis将密码设置为takway
3. 打开config中的development.py文件修改mysql和redis连接字符串
2024-05-02 10:02:28 +08:00
#### (6) 导入vits模型
2024-05-02 10:02:28 +08:00
在utils/tts/目录下创建vits_model文件夹
从[链接](https://huggingface.co/spaces/zomehwh/vits-uma-genshin-honkai/tree/main/model)下载 vits_model并放入该文件夹下只需下载config.json和G_953000.pth即可
2024-05-22 17:31:33 +08:00
#### (7) 导入openvoice模型
在utils/tts/目录下创建openvoice_model文件夹
从[链接](https://myshell-public-repo-hosting.s3.amazonaws.com/openvoice/checkpoints_v2_0417.zip)下载model文件并放入该文件夹下
2024-05-23 11:48:05 +08:00
#### (8) 添加配置环境变量
``` shell
vim ~/.bashrc
在最后添加
export MODE=development
```
#### (9) 启动程序
``` shell
cd TakwayPlatform
python main.py
```