Luna AI

介绍

Luna AI 是一款结合了最先进技术的虚拟AI主播。它的核心是一系列高效的人工智能模型,包括 ChatterBot、GPT、Claude、langchain、chatglm、text-generation-webui、讯飞星火、智谱AI、谷歌Bard、文心一言、通义星尘、通义千问、千帆大模型、Gemini、Kimi Chat、QAnything、koboldcpp。这些模型既可以在本地运行,也可以通过云端服务提供支持。

Luna AI 的外观由 Live2D、Vtube Studio、xuniren、UE5 结合 Audio2Face、EasyAIVtuber 技术打造,为用户提供了一个生动、互动的虚拟形象。这使得 Luna AI 能够在各大直播平台,如 Bilibili、抖音、快手、微信视频号、斗鱼、YouTube、Twitch 和 TikTok,进行实时互动直播。当然,它也可以在本地环境中与您进行个性化对话。

为了使交流更加自然,Luna AI 使用了先进的自然语言处理技术,结合文本转语音系统,如 Edge-TTS、VITS-Fast、elevenlabs、bark-gui、VALL-E-X、睿声AI、genshinvoice.top、tts.ai-lab.top、OpenVoice、GPT_SoVITS、clone-voice、Azure TTS。这不仅让它能够生成流畅的回答,还可以通过 so-vits-svc 和 DDSP-SVC 实现声音的变化,以适应不同的场景和角色。

此外,Luna AI 还能够通过特定指令与 Stable Diffusion 协作,展示画作。用户还可以自定义文案,让 Luna AI 循环播放,以满足不同场合的需求。

License

这个项目采用 GNU通用公共许可证(GPL) 进行许可。有关详细信息,请参阅 LICENSE 文件。

This project is licensed under the GNU General Public License (GPL). Please see the LICENSE file for more details.

注意

严禁将此项目用于一切违反《中华人民共和国宪法》,《中华人民共和国刑法》,《中华人民共和国治安管理处罚法》和《中华人民共和国民法典》之用途。

严禁用于任何政治相关用途。

导航

 视频教程合集 |  在线文档 |  GitHub |  Gitee

mind-map

 项目结构

项目结构

  • config.json 配置文件
  • main.py GUI主程序。会根据配置调用各平台程序
  • utils 文件夹,存储聊天、音频、通用类相关功能的封装实现
  • data 文件夹,存储数据文件、违禁词、文案等
  • log 文件夹,存储运行日志、字幕日志等
  • out 文件夹,存储TTS、SVC输出的音频文件,文案输出的音频文件
  • Live2D 文件夹,存储Live2D源码及模型
  • song 文件夹,存储点歌模式的歌曲
  • docs 文件夹,存储项目相关文档
  • tests 文件夹,存储单一功能点的测试程序
  • cookie 文件夹,存储部分功能需要用到的cookie数据

 下载项目

首先你得装个 git(啥,没装?百度),当然也可以直接在页面切换分支后下载各版本 ZIP 压缩包
# 主线(推荐)
git clone https://github.com/Ikaros-521/AI-Vtuber.git

# owner分支
git clone -b owner https://github.com/Ikaros-521/AI-Vtuber.git

整合包

Windows整合包下载: - github  - 迅雷云盘  - 夸克网盘  - 阿里云盘 

 运行环境

操作系统
  • Windows 7 及以上
  • MacOS
  • Linux

Windows部署建议直接使用整合包

MacOS部署问题讨论:🙋 Mac部署问题讨论 · Issue #423 · Ikaros-521/AI-Vtuber · GitHub

Python 版本 3.10.11

依赖的库在 requirements.txt 中,请自行安装。

注意

安装目录请勿在 中文路径、带有空格的路径、带有特殊字符的路径 ,可能会导致程序无法运行或运行异常

依赖版本参考 requirements_common.txt

安装命令参考:

pip install -r requirements.txt

Note

部署视频教程 哔哩哔哩 

 配置

WebUI 程序运行后会自动加载配置文件,可以通过 WebUI 程序进行配置修改(清空配置项可以看到配置项的说明),也可以手动修改配置运行。

配置都在 config.json(此处只列举了大部分,因为实在是太多了,懒了)

config.json

 

 ChatGPT 代理

"openai": {
    // 代理地址,需要和官方接口一致的才行。例如:api2d
    "api": "https://oa.api2d.net/v1",
    // 代理站提供的密钥
    "api_key": [
        "fkxxxxxxxxxxx"
    ]
}
  • one-api

官方仓库:one-api

或者纯代理的镜像站

 chat_with_file 模式说明

模式简介

用户上传预先设定好的“人物设定”文件(pdf、txt等文本文件),让用户自定义配置角色背景信息、设定

  1. 当用户输入一个查询时,这个系统首先会在本地文档集合中进行相似性搜索,寻找与查询最相关的文档

  2. 然后,它会把这些相关文档以及用户的查询作为输入,传递给语言模型。这个语言模型会基于这些输入生成一个答案

  3. 如果系统在本地文档集合中找不到任何与用户查询相关的文档,或者如果语言模型无法基于给定的输入生成一个有意义的答案,那么这个系统可能就无法回答用户的查询

模式配置

chat_type设置为 chat_with_file 方可使用。使用前必须先设置好 opeanai、claude 等模型的访问 token 相关的配置

chat_with_file 目前支持以下模式,在相关配置下的 chat_mode 进行配置

  • claude 使用claude作为聊天模型,需要同时设置好

  • local_vector_embedding_model 本地向量数据库。该模式会使用本地向量数据库存储数据

  • openai_vector_search 仅仅使用向量数据库作查询,不做gpt的调用,可以节省token,做个简单的本地数据搜索。目前使用OpenAIEmbedding进行向量化,所以需要配置好OpenAI信息

  • openai_gpt 从向量数据库中查询到相关信息后,将其传递给gpt模型,让模型作进一步处理

推荐使用 claude 模式,这样可以免费使用,无需消耗 openai 的 token

后续会支持更多免费模型,如 文心一言、讯飞星火 等

注意

  1. 所有模型都应该采用 HuggingFace 模型,暂未适配其他模型

  2. 本地模型存储目录是 data/text2vec_models ,将自己的模型存储到该位置,在 config.json 配置中填写该模型的 文件夹名字 即可

  3. 如果需要其他模型,可以从 HuggingFace 中下载下来,存放到对应位置即可

  4. 也可以直接输入 HuggingFace 的模型名字,如 GanymedeNil/text2vec-large-chinese  ,项目会自动从远程仓库下载。

    1. 请确保能够连接上 HuggingFace (可能需要科学上网)

    2. 远程仓库下载的模型,一般存储在系统cache中。win端一般是 C:\Users\用户\.cache\torch\sentence_transformers 。也可以将其移动到项目模型存储目录下使用

  5. openai_vector_search 和 openai_gpt 读取本地数据的内容默认以换行为分隔符,所以可能导致大标题数据丢失问题,需要注意你的数据内容在编辑时不要将核心的内容放在标题部分单独一行,导致丢失 核心数据,尽量将标题和正文写在一行,在真的需要分割的部分进行换行。

 使用

启动 GUI/手动 修改 config.json 的配置,配好哈,注意 JSON 数据格式

哔哩哔哩版

注意:如果使用方案2,需要手动克隆官方项目仓库的blivedmsite-packages

Note

运行 webui python webui.py

单独运行 方案1 python bilibili.py

单独运行 方案2 python bilibili2.py

抖音版

先安装第三方弹幕捕获软件,参考 补充-抖音

Note

运行 webui python webui.py

单独运行 python dy.py

抖音版 旧版

不稳定

运行前请重新生成一下protobuf文件,因为机器系统不一样同时protobuf版本也不一样所以不能拿来直接用~

protoc -I . --python_out=. dy.proto

Note

依赖 golang  环境,还没有的话,手动补一补 protobuf 

Note

运行 python main.py

快手版

新版本:

请在安装完依赖后,安装火狐浏览器内核。参考命令:playwright install firefox

如果你是整合包,项目路径打开cmd,然后使用 Miniconda3\python.exe Miniconda3\Scripts\playwright.exe install firefox 进行安装。

使用新版本时需要注意,请使用小号登录,然后在每次用完之后,把 cookie 文件夹下的 123.json 文件删掉!!!用过一次后 cookie 就异常了,所以需要删了重新登录!!!

旧版本:

运行前请重新生成一下 protobuf 文件,因为机器系统不一样同时 protobuf 版本也不一样所以不能拿来直接用~

protoc -I . --python_out=. ks.proto

Note

依赖 golang  环境,还没有的话,手动补一补 protobuf 

Note

运行 webui python webui.py

微信视频号版

Note

安装监听程序(不保证安全性,自行斟酌) wxlivespy,设置监听地址为http://127.0.0.1:8082/wxlive,开播!开始监听,扫描登录直播的微信号。webui修改平台为微信视频号,运行即可。

Note

运行 webui python webui.py

斗鱼版

Note

运行 webui python webui.py

打开您的浏览器,找到您需要监听的直播间,然后按F12打开开发者工具,点击Console(控制台),复制 douyu_ws_client.js 脚本中的内容,粘贴到控制台,回车运行,启动监听服务

douyu_ws_client.js

 

YouTube版

Note

运行 webui python webui.py

单独运行 python youtube.py

twitch版

Note

运行 webui python webui.py

单独运行 python twitch.py

聊天模式

Note

运行 webui python webui.py

单独运行 python talk.py

 效果图

WebUI 界面

动画

SD 接入

image

 常见问题

部署过程问题

image

 

 

image

 

image

image

image

image

image


 

 

API

API接口地址根据api.py程序配置决定,默认:http://127.0.0.1:8082

配置config

概述
  • 请求地址: /set_config
  • 请求类型: POST
  • 描述: 修改配置文件。
请求参数
参数名类型是否必需描述
config_pathstring配置文件路径,例如:config.json
dataobject配置文件内容(json),例如:{"platform": "bilibili"}
响应
参数名类型描述
codeint状态码,200为成功,小于0为错误代码,大于0为部分成功代码
msgstring响应消息,描述请求的处理结果

系统命令

概述
  • 请求地址: /sys_cmd
  • 请求类型: POST
  • 描述: 控制系统运行相关命令。
请求参数
参数名类型是否必需描述
typestring命令类型(run/stop/restart/factory)。例如:run
dataobject数据文件内容(json),根据命令不同,数据内容也相应改变,具体参考源码中的实例。例如:{"config_path": "config.json"}
响应
参数名类型描述
codeint状态码,200为成功,小于0为错误代码,大于0为部分成功代码
msgstring响应消息,描述请求的处理结果

发送数据

概述
  • 请求地址: /send
  • 请求类型: POST
  • 描述: 发送平台弹幕、礼物、入场、复读等数据进行功能调用。
请求参数
参数名类型是否必需描述
typestring数据类型(comment/gift/entrance/reread)。例如:comment
dataobject数据文件内容(json),根据命令不同,数据内容也相应改变,具体参考源码中的实例。例如:{"platform":"哔哩哔哩","username":"用户名","content":"弹幕内容"}
响应
参数名类型描述
codeint状态码,200为成功,小于0为错误代码,大于0为部分成功代码
msgstring响应消息,描述请求的处理结果

 应用实例

PK、连麦玩法如何配置?

参考配置:🙋 PK、连麦如何配置 · Issue #579 · Ikaros-521/AI-Vtuber · GitHub

 补充

补充板块提供了对项目接入的第三方技术或应用的详细说明。如果您需要与第三方应用进行对接,您可以查阅此板块的内容,并访问第三方官方网站以了解其使用方法。

平台

b站直播监听

方案1 bilibili-api 

需要进行扫描登录或者配置 cookie 等信息,才能稳定监听弹幕。注意!!!请使用小号登录,有封号风险!!!

方案2 blivedm 

注意:如果使用方案2,需要手动克隆官方项目仓库的blivedmsite-packages

- cookie模式下,不配置cookie,获取不到完整用户名。自行选择配置。
- 开放平台模式下,请前往 开放平台: https://open-live.bilibili.com/ 注册成为开发者,“直播创作者服务中心” 创建项目,获取 项目ID 、 access_key_id 、 access_key_secred
抖音弹幕获取

dy.py 稳定 dy-barrage-grab 

请到此仓库的 releases 下载官方软件包,并仔细阅读官方的使用说明,运行后能在cmd看到弹幕消息的话,即为成功。

dy_old.py 不稳定 douyin-live 

快手弹幕获取

ks.py 新版本 kuaishou_websocket 

使用新版本时需要注意,请使用小号登录,然后在每次用完之后,把 cookie 文件夹下的 123.json 文件删掉!!!用过一次后cookie就异常了,所以需要删了重新登录!!!

另外如果你是自行安装环境,请在安装完依赖后,安装火狐浏览器内核。参考命令: playwright install firefox

如果你是整合包,项目路径打开cmd,然后使用 Miniconda3\python.exe Miniconda3\Scripts\playwright.exe install firefox 进行安装。

ks_old.py 旧版本 kuaishou-live 

微信视频号监听

监听程序(不保证安全性,自行斟酌):wxlivespy

设置监听地址为http://127.0.0.1:8082/wxlive,开播!开始监听,扫描登录直播的微信号。webui修改平台为微信视频号,运行即可。

如果希望看到运行日志,可以自己下载项目部署运行。

斗鱼直播监听

借鉴 Live-Barrage 

YouTube直播监听

依赖库:pytchat

修改平台后,配置直播间号即可,如https://www.youtube.com/watch?v=P5wlxQgYhMY的直播间号就是P5wlxQgYhMY

twitch直播监听

接口源自官方接口: irc.chat.twitch.tv

使用时需要配置token、用户名、http代理等

其中token获取方式,通过访问Twitch Chat Password Generator,登录twitch账号授权后即可获取返回的token:oauth:xxxxx

!!!注意:如果你的token和你监听的直播间是同一个账号,那会自动过滤你自己发送的弹幕!!!

TikTok

视频教程:BV1GU421o7Wq

聊天模式
百度

新用户+实名认证后有半年的免费额度可以使用。

申请地址:console.bce.baidu.com/ai/#/ai/speech/overview/index 

详细教程

image

image

image

image

image

FASTER_WHISPER

安装pytorch ,自行适配版本,参考安装命令:pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

录音完后,识别会自动下载模型,模型默认存放在models文件夹,可以自行手动下载补充。

如果在使用时出现下载过模型但第一次运行仍要连接huggingface的情况,可以指定模型路径为本地model.bin的路径,参考:./models/models--Systran--faster-whisper-large-v3/snapshots/edaa852ec7e145841d8ffdb056a99866b5f0a478 ,则这个相对路径下有对应的model.bin文件,你的临时文件名不一样,自己找一下。

LLM

ChatGPT

官网 chat.openai.com/chat 

openai 后台 platform.openai.com 

新建 API KEY platform.openai.com/account/api-keys 

查看账号额度 platform.openai.com/account/usage 

官方 API 文档 platform.openai.com/docs/api-reference 

常见报错:点击前往issue仓库查找,直接搜索报错内容,一次不要复制太多报错,不然搜不到,复制关键的报错点就行,比如最后一行

Claude

实现参考 claude-in-slack-api 

API申请方法(内含各个参数的获取方式) claude-api 

slack 官网 slack.com/intl/zh-cn 

添加 claude 到 slack www.anthropic.com/claude-in-slack 

视频教程

完美替代 chatGPT!保姆级 Claude 注册教程及使用上的优点和缺点 

解决现阶段 slack 新建工作区 Claude 不回复 

以下文档转自:claude-api 

授权以及获取USER-TOKEN

网页(登录)后, 进入api配置页面(点我跳转)。

〉》点击 【Create an app】

​ 〉》主页看见Your Apps并弹出窗口【Create an app】 〉》 点击【From scratch】

​ 〉》填写app名称以及选择工作空间(例:name: Bot, workspace: chat) 〉》 点击【Create App】

​ 〉》点击左侧边栏上的【OAuth & Permissions】 〉》 下拉至【Scopes】卡片,在 【User Token Scopes】 项下添加权限,如下:

​ channels:history, channels:read, channels:write, groups:history, groups:read, groups:write,

​ chat:write, im:history, im:write, mpim:history, mpim:write

​ 〉》回到顶部【OAuth Tokens for Your Workspace】栏,点击【Install to Workspace】,然后确认授权即可

至此,获得拥有一定权限的user-token

截屏2023-04-18 09.10.56

截屏2023-04-18 09.14.41

获取 CLAUDE APPID

截屏2023-04-18 08.49.20

Claude2

Claude2-PyAPI 

claude2 官网 claude.ai 

Cookie 获取方式

F12 抓包 XHR ,然后请求头获取 cookie`

ChatGLM

官方仓库:ChatGLM-6B

整合包:【ChatGLM】本地版ChatGPT?6G显存可用!ChatGLM-6B 清华开源模型一键包发布 可更新

视频教程:【AI主播-功能篇】ChatGLM如何接入?上下文记忆~ 不需魔法,本地跑,省钱了喵~

运行 api.py ,然后配置相关信息接入本项目。

参考

if __name__ == '__main__':
    tokenizer = AutoTokenizer.from_pretrained("THUDM\chatglm-6b-int4", trust_remote_code=True)
    model = AutoModel.from_pretrained("THUDM\chatglm-6b-int4", trust_remote_code=True).half().cuda()
    model.eval()
    uvicorn.run(app, host='0.0.0.0', port=8000, workers=1)
CHATGLM3

官方仓库:ChatGLM3

整合包:夸克网盘分享

视频教程:【AI主播-功能篇】接入ChatGLM3,含整合包,看看有没有提升(

运行 1.运行api.bat ,然后配置相关信息接入本项目(聊天类型:ChatGPT/闻达,API地址:http://localhost:8000/v1,模型:chatglm3-6b)。

!!! openai_api.py "参考"

```python
if __name__ == "__main__":
    tokenizer = AutoTokenizer.from_pretrained("THUDM\\chatglm3-6b-int4", trust_remote_code=True)
    model = AutoModel.from_pretrained("THUDM\\chatglm3-6b-int4", trust_remote_code=True).cuda()
    # 多显卡支持,使用下面两行代替上面一行,将num_gpus改为你实际的显卡数量
    # from utils import load_model_on_gpus
    # model = load_model_on_gpus("THUDM\\chatglm3-6b-int4", num_gpus=2)
```
智谱AI

官方:open.bigmodel.cn

api key申请地址:open.bigmodel.cn/usercenter/apikeys

注意,需要在"设置"->"账号设置"中完成实名认证后,才能使用API。新账号默认赠送了18元的免费额度。

langchain-ChatGLM

官方仓库:langchain-ChatGLM

个人提供的整合包:pan.quark.cn/s/8d8904fd4b30

chatglm-6b-int4模型下载(其实这个官方就行,有会员的话网盘快点):pan.quark.cn/s/a483e0c3e5fa

官方模型仓库:huggingface.co/THUDM

配置相关信息,编辑 configs 文件夹下的 model_config.py ,模型路径需要是绝对路径,win的用户路径参考:E:\\langchain-ChatGLM\\THUDM\\chatglm-6b-int4

修改部分参考:

embedding_model_dict = {
    "ernie-tiny": "nghuyong/ernie-3.0-nano-zh",
    "ernie-base": "nghuyong/ernie-3.0-base-zh",
    "text2vec-base": "shibing624/text2vec-base-chinese",
    # 下一行是改的地方
    "text2vec": "E:\\langchain-ChatGLM\\GanymedeNil\\text2vec-large-chinese",
    "text2vec-base-multilingual": "shibing624/text2vec-base-multilingual",
    "text2vec-base-chinese-sentence": "shibing624/text2vec-base-chinese-sentence",
    "text2vec-base-chinese-paraphrase": "shibing624/text2vec-base-chinese-paraphrase",
    "m3e-small": "moka-ai/m3e-small",
    "m3e-base": "moka-ai/m3e-base",
}


llm_model_dict = {
    "chatglm-6b-int4-qe": {
        "name": "chatglm-6b-int4-qe",
        "pretrained_model_name": "THUDM/chatglm-6b-int4-qe",
        "local_model_path": None,
        "provides": "ChatGLMLLMChain"
    },
    "chatglm-6b-int4": {
        "name": "chatglm-6b-int4",
        "pretrained_model_name": "THUDM/chatglm-6b-int4",
        # 下一行是改的地方
        "local_model_path": "E:\\langchain-ChatGLM\\THUDM\\chatglm-6b-int4",
        "provides": "ChatGLMLLMChain"
    },


# LLM 名称 改成你要用的模型name,没有的话会自动下载
LLM_MODEL = "chatglm-6b-int4"

运行 api.py ,然后接入本项目。

chat_with_file

参考:LangChainSummarize

构建本地向量数据库时,如果本地电脑的配置太低,可以使用 faiss_text2vec.ipynb 云端解析向量数据库,拷贝回本地后再使用即可

text-generation-webui

官方仓库:text-generation-webui

懒人包:b站:coyude AI对话 懒人包v1发布 图形化启动界面(oobabooga/text-generation-webui)可用chatglm/rwkv/vicuna

API调用demo:api-examples

讯飞星火

官网:xinghuo.xfyun.cn

api库(HildaM开发):sparkdesk-api

web配置获取方法:sparkdesk-api/tree/main/docs

api申请:提交工单申请,工单提交页 console.xfyun.cn/services/cbm

闻达

官方仓库:github.com/wenda-LLM/wenda

整合包下载:pan.quark.cn/s/c4cb08de666e 提取码:4b4R

接入说明:

启动 RWKV-Runner ,配置配配好,模型搞搞好,然后启动。

如果遇到midi2audio等库缺失的报错,你可以选中整合包的python环境下的python.exe,进行库补装,参考命令 python.exe -m pip midi2audio mido lm_dataformat GPUtil sse_starlette

image

闻达-接入说明

ChatterBot

官方仓库

ChatterBot 是一个开源的 Python 聊天机器人框架,使用机器学习算法(尤其是自然语言处理、文本语义分析等)来实现基于规则和语境的自动聊天系统。它可以让开发者通过简单的配置和训练,构建出各种类型的聊天机器人,包括问答机器人、任务型机器人、闲聊机器人等。

ChatterBot 的核心思想是:基于历史对话数据,使用机器学习和自然语言处理技术来分析和预测用户输入,然后生成响应。基于这种方法,聊天机器人的反应会更加智能、灵活、接近人类对话的方式。此外,ChatterBot 支持多种存储方式,如 JSON、SQLAlchemy、MongoDB 等,以及多种接口调用方式,如 RESTful API、WebSocket 等,方便开发者在不同场景中进行集成。

总的来说,ChatterBot 是一个非常强大、灵活、易用的聊天机器人框架,帮助开发者快速搭建出个性化、定制化的聊天机器人,从而提升用户体验和服务质量。

Bard

官方:bard.google.com

token获取方式:

访问 bard.google.com,登录账号

键盘F12 打开开发者工具

应用程序 → Cookie → 复制 Cookie 中 __Secure-1PSID 对应的值。

ps:cookie有效期较短

文心一言

官网:yiyan.baidu.com

  • api

    百度智能云千帆大模型平台:百度智能云

    API文档:ERNIE-Bot - 千帆大模型平台 | 百度智能云文档

    在线服务,购买ERNIE-Bot大模型公有云在线调用服务应用接入 创建应用,获取API KeySecret Key,配置即可。

  • web

    服务端:yiyan-api

    下载yiyan-api源码,根据官方教程部署搭建运行即可。简述过程就是安装Node.js >= 18,然后再源码项目文件夹内运行npm install,最后运行npm start即可。

    cookie 获取方式:

    访问 yiyan.baidu.com,登录账号

    键盘F12 打开开发者工具

    找到源代码或者Sources页,右键debugger左侧行号, 选择 never pause here 或者叫做 永不在此处暂停, 然后再刷新页面

    此时就可以跳过debugger和重定向,然后找到网络或者Network

    再随便发送一个提问,随便找个XHR请求中,查看请求头内的cookie对应的一长串的值,复制粘贴回GUI中保存即可。

通义星尘

官网:xingchen.aliyun.com

进入官网,注册账号,登录,打开接口管理页面,点击API-KEY管理创建密钥,复制密钥,配置对应配置项。

角色ID如何获取? 首页点击创建角色,自己创建去!创建完成后,进入角色聊天页,角色头像边上有个信息,点进去可以看见ID,复制配置即可。

当然,还没完,现在官方还在内测,所以你创建了密钥还不能用,需要联系官方开通调用权限。联系方式见 使用文档-服务支持

千帆大模型
第三方库

接入库,我对原库做了修改:WenxinWorkshop-Python-SDK

百度智能云千帆大模型平台:百度智能云

官方API文档:ERNIE-Bot - 千帆大模型平台 | 百度智能云文档

在线服务,购买ERNIE-Bot大模型公有云在线调用服务等服务,应用接入 创建应用,获取API KeySecret Key,配置即可。

官方库(有版本冲突,暂不启用)

接入库:bce-qianfan-sdk

使用文档:bce-qianfan-sdk#readme

在使用千帆 SDK 之前,用户需要 百度智能云控制台 - 安全认证 页面获取 Access Key 与 Secret Key,并在 千帆控制台 中创建应用,选择需要启用的服务,具体流程参见平台 说明文档。在获得了 Access Key 与 Secret Key 后,配置好即可开始使用。

Gemini

官方平台:makersuite.google.com/app

前往 makersuite.google.com/app/apikey 创建一个API KEY,配置到项目中即可使用啦~(记得开魔法配置代理!)

Kimi Chat

Kimi官网:Kimi.ai - 帮你看更大的世界

API申请:Moonshot AI - 开放平台

使用:
1. 大语言模型选择:ChatGPT 2. 配置 API地址:https://api.moonshot.cn/v1
API密钥:上面申请的密钥
模型:moonshot-v1-8k

QAnything

官方仓库:GitHub - netease-youdao/QAnything: Question and Answer based on Anything.

在线

在线官网:QAnything

登录官方平台,完成实名认证获得免费额度,创建应用,获取应用ID和密钥:有道智云控制台

本地

部署:Windows部署配合CUDA驱动、WSL2、docker,完成。主要坑点在docker加载cuda相关库上。根据官方仓库的run.sh脚本运行即可,具体报错参考issue。

参考教程:
【2023最新版】Win11: WSL(Ubuntu22.04)使用docker远程容器教程(Windows的Docker Desktop下载安装、迁移到非系统盘、配置国内镜像源、设置 WSL2)
Windows安装网易开源QAnything打造智能客服系统

通义千问

官网:qianwen.aliyun.com

API类型

API文档:如何快速开始通义千问_模型服务灵积(DashScope)-阿里云帮助中心
申请API KEY 文档(文档教程详细,我就不再赘述了):如何开通DashScope并创建API-KEY_模型服务灵积(DashScope)-阿里云帮助中心

WEB类型

依赖库:revTongYi

cookie 获取方式:
1. 安装 ChromeEdge 或 Firefox 上的Cookies Editor插件 2. 前往 https://tongyi.aliyun.com/chat 并登录 3. 打开此插件,点击 Export -> Export as JSON,将复制的Cookies内容保存到文件cookie文件夹下的tongyi.json

ps:cookie有效期估计在6小时左右。

TTS

elevenlabs

elevenlabs官网

官方文档

不注册账号也可以使用,不过应该是有限制的(具体多少未知)。免费账号拥有每月1万字的额度。

genshinvoice.top

在线体验官网

官方GitHub仓库,内含api使用说明

官方视频讲解:【在线合成&效果优化】基于VITS的米哈游全角色语音合成现已发布

tts.ai-lab.top

在线体验官网: 原神/星穹铁道语音合成 - AI-Hobbyist

注册账号,登录,然后在在线合成页面,按下键盘F12打开开发者工具,在选择Network网络,随便合成一个音频,然后找到vits的一个请求,点进去,点击负载,找到appidtoken,配置即可。

VITS(vits-simple-api)

emotional-vits官方仓库:emotional-vits

接入API:vits-simple-api

vits-simple-api整合包下载:github.com/Artrajz/vits-simple-api/releases

个人提供的已训练好的模型:github , 迅雷云盘

视频教程:【AI主播-TTS篇】新增 纯 VITS 接入,配合vits-simple-api,支持情感控制,语速调控 , 【AI主播-TTS篇】新增 bert-vits2 的接入,配合vits-simple-api食用,强有力的中文TTS让你到达新高度~

如何白嫖huggingface上的vits-simple-api? 只需要开启魔法,将API地址修改为项目提示的接口地址即可,例如:https://artrajz-vits-simple-api.hf.space

vits-simple-api配置,修改 config.py ,参考配置如下,路径为追加的相对模型路径和配置文件路径(注意,新版本的变动,配置改到config.yml了,所以你需要直接改yml或者删除yml,修改py,然后重启):

# Fill in the model path here
MODEL_LIST = [
    # VITS
    [ABS_PATH + "/Model/ikaros/G_95500.pth", ABS_PATH + "/Model/ikaros/config.json"],
    # Bert-VITS2
    [ABS_PATH + "/bert_vits2/G_0.pth", ABS_PATH + "/bert_vits2/config.json"],

如果使用 bert_vits2 ,需要注意 vits-simple-api\bert_vits2\bert\chinese-roberta-wwm-ext-large 路径下 flax_model.msgpack 等模型文件是否缺失,如果缺失,可以从隔壁 bert_vits2 整合包中拷贝进来 或者 从huggingface下载:hfl/chinese-roberta-wwm-ext-large 。另外模型需要存放在 bert_vits2 目录里面。

相关模型备份:夸克网盘

另外如果运行闪退、报错

Traceback (most recent call last):
  File "E:\vits-simple-api\app.py", line 49, in <module>
    tts = merge_model(app.config["MODEL_LIST"])
  File "E:\vits-simple-api\utils\merge.py", line 117, in merge_model
    for id, name in enumerate(obj.get_speakers()):
  File "E:\vits-simple-api\utils\utils.py", line 29, in __getitem__
    return getattr(self, key)
TypeError: getattr(): attribute name must be string

需要修改 utils\merge.py 116行左右。

for id, (key, name) in enumerate(obj.get_speakers().items()):
# for id, name in enumerate(obj.get_speakers()):

如果在使用bert-vits2时,报错:

error, ref_enc.convs.0.bias is not in the checkpoint
error, ref_enc.convs.0.weight_g is not in the checkpoint
......

解决方案参考:issues/311

改 bert_vits2/models.py 中第646行 if n_speakers > 1: 修改为 if n_speakers >= 1:

VITS-fast-fine-tuning

官方仓库:VITS-fast-fine-tuning

官方推理包:inference-webui-v1.1

个人提供的已训练好的模型:点我跳转

视频教程:【AI语音合成-数据集篇#00】模型使用简单讲解,手把手演示 ,【AI主播-功能篇】TTS语音合成 VITS-Fast怎么使用?为什么没有合成语音?VITS不行吗?模型兼容吗?

训练用整合包(原作者整合包备份):pan.quark.cn/s/da52e78983da

整合包视频教程:AI声音克隆又进化了,10分钟学会声音克隆!一键启动包发布!

整合包视频教程2:【VITS一键包】本地训练独属于你的AI嘴替?训练部署AI语音合成教程

VALL-E-X

官方仓库:VALL-E-X

个人提供的已训练好的preset预设:点我跳转

官方视频讲解:仅需3秒音频实现声音克隆!我开源了微软的最新语音合成模型VALL-E X

视频教程:【AI主播-功能篇】接入 VALL-E-X(整合包附赠),进行TTS,3秒声音克隆,“好用”喵hhh

整合包下载:pan.quark.cn/s/b817e285ab41

OpenVoice

官方仓库:OpenVoice

视频教程:OpenVoice 整合包 | 一句话快速克隆?英文可调语气?效果实测【TTS】

整合包下载:迅雷云盘夸克网盘

启动webui后就可以对接了,适配gradio监听端口即可。

GPT-SoVITS

官方仓库:GPT-SoVITS

整合包下载:夸克网盘分享迅雷云盘

视频教程:BV1CJ4m1b7pR

天降之物模型分享:Releases · Ikaros-521/GPT-SoVITS · GitHub

运行webui后,启动TTS推理,然后适配配置项即可,注意参考音频路径还有ws的端口即可,别的配置问题不大。

clone-voice

官方仓库:clone-voice

整合包下载:夸克网盘分享 ,迅雷云盘

视频教程:BV17z421d7T9

变声

DDSP-SVC

官方仓库:DDSP-SVC

个人提供的已训练好的模型:点我跳转

羽毛佬视频教程:【AI翻唱/变声/整合包】有张N卡就能跑!媲美So-VITS却不吃配置,全新的DDSP-SVC 3.0训练/推理教程

视频教程:【AI主播-功能篇】新增 DDSP-SVC 接入。变声选项再加一,多种选择总有一个是适合你的(

修改 flask_api.py 最后几行中的模型路径,其他配置自行调整,另外需要注意! enable_spk_id_cover 改为 False ,即可接入。

# config和模型得同一目录。 这是我自己训练的DDSP模型,新鲜出炉
checkpoint_path = "exp/combsub-test/model_68000.pt"
# 是否使用预训练的基于声码器的增强器增强输出,但对硬件要求更高。
use_vocoder_based_enhancer = True
# 结合增强器使用,0为正常音域范围(最高G5)内的高音频质量,大于0则可以防止超高音破音
enhancer_adaptive_key = 0
# f0提取器,有parselmouth, dio, harvest, crepe
select_pitch_extractor = 'crepe'
# f0范围限制(Hz)
limit_f0_min = 50
limit_f0_max = 1100
# 音量响应阈值(dB)
threhold = -60
# 默认说话人。
spk_id = 1
# 是否优先使用默认说话人覆盖vst传入的参数,改为False,不要覆盖!!!
enable_spk_id_cover = False
so-vits-svc

官方仓库:so-vits-svc

个人提供的已训练好的模型:点我跳转

视频教程:【AI歌姬】so-vits-svc 简单使用讲解 + 伊卡洛斯 模型开源 , 【AI主播-功能篇】如何接入so-vits-svc?用什么版本?4.1版为什么会报错?运行哪个程序?在哪下载?

修改 flask_api_full_song.py 最后几行中的模型路径,运行,配置相关信息即可接入。

if __name__ == '__main__':
    model_name = "logs/44k/ikaros_G_54600.pth" # 你的模型地址
    config_name = "configs/ikaros_v1.json"  # 你的config地址
    svc_model = infer_tool.Svc(model_name, config_name)
    app.run(port=1145, host="0.0.0.0", debug=False, threaded=False)

注意!!!如果你是 4.1 版本的整合包,还需要修改 flask_api_full_song.py 的38行左右:

out_audio, out_sr = svc_model.infer(spk, tran, raw_path)

out_audio, out_sr, n_frames = svc_model.infer(spk, tran, raw_path)

模型皮套

Live2D

源自:CyberWaifu

官方免费模型下载:releases/tag/live2d

官网:www.live2d.com/zh-CHS

第三方软件 Vtube Studio ,配置教程:【AI主播】虚拟人部分方案#1 基于Vtube Studio的口型驱动

配合VB虚拟声卡时,如果想要让扬声器也可以听到输出的音频,可以通过 侦听 来实现,配置方法如下:

image

NVIDIA Omniverse Audio2Face

NVIDIA Omniverse下载:www.nvidia.com/en-us/omniverse/download/

Character Creator 4下载:www.reallusion.com/character-creator/download.html

Epic下载:store.epicgames.com/zh-CN/

参考教程:

【AI主播】Audio2Face + UE5,轻松实现 数字人 口型同步,主打一个简单,就是配置要求高了点

【Omniverse教程】【Audio2Face】1-仅需一个音频来源即可生成表情丰富的面部动画,也支持实时录音

玩转Omniverse | Reallusion Character Creator:生成角色

玩转Omniverse | Reallusion Character Creator:将角色 USD 文件导入NVIDIA Omniverse

零代码让UE Metahuman说话的方法(使用omniverse audio2face串流至UE)

P6-UE5角色资产导入与说明!

xuniren

xuniren官方仓库:GitHub - waityousea/xuniren

项目对接推荐使用我的改版:GitHub - Ikaros-521/xuniren: 虚拟人说话头生成(NeRF虚拟人实时驱动) 含API

半整合包(需要自行补充环境):夸克网盘分享, 需要注意的是这个项目环境十分难搭建,而且很多都需要自行编译,所以我编译的版本不一定适用于你的系统,那么你就需要自己重新编译安装了,那就是一件非常痛苦的事情,注意我的说明自行闭坑吧。

使用:整合包用户启动我提供的http_api运行.bat脚本,普通用户自行启动http_api.py即可,看到服务正常监听即可。那么此时我们的AI Vtuber也需要配置对应的虚拟身体配置,然后运行即可。

视频教程:BV1uB4y1d7o6

EasyAIVtuber

EasyAIVtuber官方仓库:https://github.com/Ksuriuri/EasyAIVtuber

参考官方文档完成部署后启动,虚拟身体选择“EasyAIVtuber”,保存运行即可对接使用。

翻译

百度翻译

官方文档:百度翻译开放平台

根据文档提示,注册开发者并完整认证后,申请“通用文本翻译”服务,然后在百度翻译开放平台,获取APP ID密钥,配置上即可使用。

其他

Stable Diffusion

官方仓库:stable-diffusion-webui

整合包:【AI绘画】Stable Diffusion整合包v4.2发布!全新加速 解压即用 防爆显存 三分钟入门AI绘画 ☆可更新 ☆训练 ☆汉化

启动API模式,填写相关配置即可接入。

视频教程:BV1tV411u79T

web字幕打印机

项目地址:captions_printer

具体使用参考项目文档即可。

视频教程:BV13h4y1e7z8

按键映射

pyautogui官方文档:传送门,官方对按键名的定义

audio player(音频播放器)

项目地址:audio_player

具体使用参考项目文档即可。

🀅开发&项目相关

简易流程图

image

测试

  • GUI运行配置完后,运行,监听无人直播间半天,时间到后发送命令尝试触发应用(复读机),正常监听并合成音频。
  • 监听1秒2弹幕的直播间,复读机配合vits-fast做语音合成,持续工作30分钟,正常监听并合成音频。

🖹待办事项

  • chatglm拥有记忆功能
  • 抖音关注事件可以触发关注感谢话术
  • 本地问答文本库支持动态变量功能
  • 兼容bert vits2
  • LLM输出后,后置的过滤(双重过滤)
  • bark-gui的接入
  • 快手平台的重新兼容
  • 用户入场、投食感谢(自定义 文案)
  • 弹幕跳过机制(时间段内丢弃)
  • 点歌后的弹幕触发问题(如:只取最新的几个)—— 使用弹幕丢弃机制
  • 弹幕丢失bug修复(很可能是线程sleep造成的)& b站弹幕库版本更新
  • 文案页支持动态加载文案
  • 支持关闭聊天(LLM等)
  • langchain-chatglm的接入
  • chat_with_file在匹配不到结果时继续使用LLM进行回答——通过prompt实现
  • 文案字幕显示
  • 礼物答谢combo情况下的重复答谢问题
  • 懒人包优化
  • 接入更多的LLM(new bing等)
  • 接入更多的TTS方案
  • RVC的接入
  • 其他直播平台的适配(拼多多等)
  • live2d的嘴型、动作匹配
  • 接入更多的2/3D模型软件(Unity、UE5等)
  • 屏蔽词升级。如:可以根据屏蔽词库转拼音的二重屏蔽;接入第三方屏蔽词API等
  • 本机语音直接交流模式(本地版本whisper,其他方式)
  • 本地的用户拉黑机制
  • 礼物互动机制(跳舞,唱歌)
  • wav2lip方案尝试(带货方面)
  • 直播中可以由弹幕进行动态换装
  • TTS合成时,语句切分算法有待优化
  • 压力测试
  • 文案拒绝打断机制
  • Edge-TTS在合成音频时会出现合成成功但是系统找不到文件的bug
  • 支持礼物或者其他形式的键盘映射
  • webui开发
  • 闲时任务功能(适用于自言自语)
  • 输出音频自定义输出设备
  • 独立TTS功能
  • 独立文案合成功能

转自:Luna AI

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值