Go to file
killua4396 5975d4687f debug: 增加了讯飞语音识别接口的timeout机制,防止语音识别未完成时连接断开 2024-06-05 14:57:18 +08:00
app debug: 增加了讯飞语音识别接口的timeout机制,防止语音识别未完成时连接断开 2024-06-05 14:57:18 +08:00
config feat: 增加讯飞asr功能 2024-06-04 18:05:23 +08:00
tests feat: 增加修改speaker_id接口 2024-05-29 18:41:35 +08:00
utils debug: 增加了讯飞语音识别接口的timeout机制,防止语音识别未完成时连接断开 2024-06-05 14:57:18 +08:00
.gitignore debug: 增加了讯飞语音识别接口的timeout机制,防止语音识别未完成时连接断开 2024-06-05 14:57:18 +08:00
Dockerfile 仓库初始化 2024-05-01 17:18:30 +08:00
README.md update: 更新部署文档 2024-05-23 11:48:05 +08:00
main.py update: 将app启动位置至根目录下 2024-05-18 20:39:50 +08:00
requirements.txt uptdate: 更新部署文档和依赖文档 2024-05-23 10:44:14 +08:00

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
  1. 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

  1. huggingface配置

运行命令

pip install -U huggingface_hub
export HF_ENDPOINT=https://hf-mirror.com

最好把export HF_ENDPOINT=https://hf-mirror.com写入~/.bashrc不然每次重启控制台终端就会失效

  1. nltk_data下载

在/miniconda3/envs/takway/下创建nltk_data文件夹

在nltk_data文件夹下创建corpora和taggers文件夹

手动下载cmudict.zipaveraged_perceptron_tragger.zip

将cmudict.zip放入corpora文件夹下

将averaged_perceptron_tragger.zip放入taggers文件夹下

  1. 下载其他依赖
cd TakwayPlatform/
pip install -r requirements.txt
  1. 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) 修改配置

  1. 安装mysql在mysql中创建名为takway的数据库
  2. 安装redis将密码设置为takway
  3. 打开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