Compare commits

...

15 Commits

Author SHA1 Message Date
0bc2d565a3 更新 quickstart.md
Some checks failed
部署到腾讯云 / build-and-push (push) Has been cancelled
2025-06-06 13:10:57 +00:00
9be19041ec 更新部分教程 修改下快速上手
All checks were successful
部署到腾讯云 / build-and-push (push) Successful in 8s
2025-05-27 10:29:13 +08:00
b6f7d380d7 v1.7版本更新
All checks were successful
部署到腾讯云 / build-and-push (push) Successful in 8s
2025-05-21 17:08:03 +00:00
3c76ee6eac v1.6更新
Some checks failed
部署到腾讯云 / build-and-push (push) Has been cancelled
2025-05-17 16:30:59 +00:00
99a333ab4e js和css本地放置
All checks were successful
部署到腾讯云 / build-and-push (push) Successful in 6s
2025-05-12 08:24:31 +08:00
10d36094fe 更新 changelog.md
All checks were successful
部署到腾讯云 / build-and-push (push) Successful in 6s
2025-05-10 07:29:21 +00:00
db85241e86 v1.4.1版本更新
Some checks are pending
部署到腾讯云 / build-and-push (push) Waiting to run
Signed-off-by: heibai2006 <heibai2006@noreply.localhost>
2025-05-10 07:22:16 +00:00
1c2fe7b20a 添加联系方式
All checks were successful
部署到腾讯云 / build-and-push (push) Successful in 6s
2025-05-02 01:54:36 +08:00
d35e012585 1.4更新
All checks were successful
部署到腾讯云 / build-and-push (push) Successful in 6s
2025-05-02 01:51:51 +08:00
6c49aac78f 脚本下载地址
All checks were successful
部署到腾讯云 / build-and-push (push) Successful in 5s
2025-04-28 15:22:15 +08:00
58eb54a3e3 修改油猴脚本
All checks were successful
部署到腾讯云 / build-and-push (push) Successful in 6s
2025-04-28 15:15:46 +08:00
c053c80ac1 修改油猴脚本
All checks were successful
部署到腾讯云 / build-and-push (push) Successful in 5s
2025-04-28 15:14:27 +08:00
22bd995053 修改侧边栏排序
All checks were successful
部署到腾讯云 / build-and-push (push) Successful in 5s
2025-04-28 15:04:57 +08:00
33b43ba39c 修改快速开始页添加下载链接
All checks were successful
部署到腾讯云 / build-and-push (push) Successful in 6s
2025-04-28 15:03:36 +08:00
6325e9a0c9 v1.3版本更新日志
All checks were successful
部署到腾讯云 / build-and-push (push) Successful in 5s
2025-04-27 15:40:16 +00:00
22 changed files with 1171 additions and 29 deletions

View File

@ -2,26 +2,34 @@
> 专业简洁的无人直播场控系统
以小而精,更少占用系统资源为核心。没有臃肿的功能,只有最实用的效果!
# 联系我们
客服微信junbujian0505
维护微信heibai2006
![技术联系微信](images/45b06dda4c5fa0313df81c132b23b06.png ':size=300x420')
加好友备注"微果AI",工作人员会拉入群。
# 🔊 声明
1. 本软件适用直播带货领域,电商团购皆可。
2. 为方便管控自己直播间等行为而研发。
3. 请用户自行约束使用行为,不得将本产品用于任何非法用途。
4. 本软件不涉及任何隐私内容,如有侵权请联系作者。
# 支持功能
- 支持自定义接入常见本地和服务商LLM大模型
- 支持自定义本地知识库和提示词
- 支持接入Dify工作流和聊天助手
- 支持利用大模型+知识库、Dify回复弹幕问题
- 支持大模型或Dify进行文案优化少量话术文案即可长时播放不重复
- 支持自定义接入本地或服务商TTS模型兼容openai生成接口、兼容类硅基流动的语音克隆接口
- 话术支持变量、随机多选一、助理音色、强制优化
# 功能
- 自定义接入常见本地和服务商LLM大模型
- 自定义本地知识库和提示词
- 接入Dify工作流和聊天助手
- 利用大模型+知识库、Dify回复弹幕问题
- 大模型或Dify进行文案优化(泛化)少量话术文案即可长时播放不重复
- 自定义接入本地或服务商TTS模型兼容openai生成接口、兼容类硅基流动的语音克隆接口
- 话术支持变量、随机多选一、助理音色、强制优化(泛化)、多音色随机
- 支持开播中手工插入优先话术
- 支持背景音乐
- 支持助理回复弹幕、助理实时插入(助理和主播同时说话)
- 支持接入抖音弹幕助手、油猴弹幕抓取脚本
- 支持独立实时调整主音量、背景音乐、主播、助理音量
- 支持背景音乐、环境音
- 支持随机语速、随机增益
- 助理回复弹幕、助理实时插入(助理和主播同时说话)
- 全平台弹幕助手接入弹幕
- 独立实时调整主音量、背景音乐、主播、助理音量
- 支持选择音频输出接口不影响系统默认音频输出接口
- 支持进入直播间欢迎和报时
@ -30,6 +38,8 @@
![场控](./images/cangkong1.png)
![TTS](./images/ttsdemo.png)
![导入话术](./images/daoruhuasu.png)
![AI大模型配置](./images/llmsetpic.png)

View File

@ -1,11 +1,11 @@
<!-- docs/_sidebar.md -->
* [微果AI无人直播场控](/)
* [场控操作](controls.md)
* [快速上手](quickstart.md)
* [话术文案](moderator.md)
* [AI模型接入](llm.md)
* [话术优化](optimize.md)
* [TTS引擎](tts.md)
* [弹幕处理](barrage.md)
* [场控操作](controls.md)
* [更新日志](changelog.md)

View File

@ -1,3 +1,64 @@
## v1.7
1. 添加主播和助理的多音色随机
2. 添加主播和助理的随机语速
3. 添加主播和助理的随机增益
### 下载
[微果AI直播场控v1.7.zip](https://git.des8.com/weixiu/ai-live/releases/download/v1.7/%E5%BE%AE%E6%9E%9CAI%E7%9B%B4%E6%92%AD%E5%9C%BA%E6%8E%A7v1.7.zip)
## v1.6
1. 更换音频播放控制方法更稳定
2. 添加报时、欢迎进入直播间更安全
3. 去除音频列表、日志列表、弹幕列表更简洁
4. 添加在线更新程序后续可以直接一键更新更方便
### 下载
[微果AI直播场控v1.6.zip](https://git.des8.com/weixiu/ai-live/releases/download/v1.6/%E5%BE%AE%E6%9E%9CAI%E7%9B%B4%E6%92%AD%E5%9C%BA%E6%8E%A7v1.6.zip)
## v1.5
1. 修复不能解绑设备问题
2. 修复更新会覆盖配置文件问题
### 下载
[微果AI直播场控v1.5.zip](https://git.des8.com/weixiu/ai-live/releases/download/v1.4.1/%E5%BE%AE%E6%9E%9CAI%E7%9B%B4%E6%92%AD%E5%9C%BA%E6%8E%A7v1.5.zip)
## v1.4
修复一些小问题,开始使用版本系统更新。
### Bug Fixes
1. 修复弹幕回答逻辑错误
2. 优化提示词作用
3. 弹幕过多闪退问题
### 下载
[微果AI直播场控v1.4.zip](https://git.des8.com/weixiu/ai-live/releases/download/v1.4/%E5%BE%AE%E6%9E%9CAI%E7%9B%B4%E6%92%AD%E5%9C%BA%E6%8E%A7v1.4.zip)
## v1.3
确认弹幕格式为:
```
[阿狸]发送消息:175身高能穿吗
[卡卡路]发送消息:你好主播
[光头强]发送消息:能机洗吗
```
### Features
- 优化弹幕记录处理改为时钟线程不在WebSocket处理减少阻塞。
- 优化提示词处理逻辑,请配合新的提示词进行测试。
## v1.3 Beta
1.3Beta版本预发布 接入卡密系统
> 申请测试的朋友请联系客服索取专业大模型提示词可以达到最好的效果
### Features
- 接入卡密系统
## v1.2
修改知识库和提示词处理部分。
### Features
- 取消弹幕的网名部分防止网名到TTS生成语音后违规。
- 兼容Dify变量使用方法在提示词里使用{{#dataset#}}来引用知识库。
- 修改Dify处理逻辑支持本地知识库接入Dify。具体使用方法参考`dify电商话术优化.yml`
## v1.1
修复一些bug主要是使用bass库新增的bug

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

BIN
images/LLM.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 312 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

After

Width:  |  Height:  |  Size: 362 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 KiB

BIN
images/kaibola.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 312 KiB

BIN
images/qidongyuyin.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

BIN
images/ttsdemo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

BIN
images/yuyinkelong.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

View File

@ -6,7 +6,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="description" content="Description">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0">
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify@4/lib/themes/vue.css">
<link rel="stylesheet" href="./lib/vue.css">
</head>
<body>
<div id="app"></div>
@ -22,7 +22,7 @@
return time;
},
coverpage: true,
logo: '/images/logo.png',
logo: './images/logo.png',
}
</script>
<script>
@ -31,8 +31,8 @@
}
</script>
<!-- Docsify v4 -->
<script src="//cdn.jsdelivr.net/npm/docsify@4"></script>
<script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/emoji.min.js"></script>
<script src="//cdn.jsdelivr.net/npm/docsify-copy-code/dist/docsify-copy-code.min.js"></script>
<script src="./lib/docsify@4.js"></script>
<script src="./lib/emoji.min.js"></script>
<script src="./lib/docsify-copy-code.min.js"></script>
</body>
</html>

9
lib/docsify-copy-code.min.js vendored Normal file
View File

@ -0,0 +1,9 @@
/*!
* docsify-copy-code
* v3.0.0
* https://github.com/jperasmus/docsify-copy-code
* (c) 2017-2023 JP Erasmus <jperasmus11@gmail.com>
* MIT license
*/
!function(){"use strict";function e(o){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(o)}!function(e,o){void 0===o&&(o={});var t=o.insertAt;if(e&&"undefined"!=typeof document){var n=document.head||document.getElementsByTagName("head")[0],c=document.createElement("style");c.type="text/css","top"===t&&n.firstChild?n.insertBefore(c,n.firstChild):n.appendChild(c),c.styleSheet?c.styleSheet.cssText=e:c.appendChild(document.createTextNode(e))}}(".docsify-copy-code-button,.docsify-copy-code-button>span{cursor:pointer;transition:all .25s ease}.docsify-copy-code-button{background:grey;background:var(--theme-color,grey);border:0;border-radius:0;color:#fff;font-size:1em;opacity:0;outline:0;overflow:visible;padding:.65em .8em;position:absolute;right:0;top:0;z-index:1}.docsify-copy-code-button>span{background:inherit;border-radius:3px;pointer-events:none}.docsify-copy-code-button>.error,.docsify-copy-code-button>.success{font-size:.825em;opacity:0;padding:.5em .65em;position:absolute;right:0;top:50%;transform:translateY(-50%);z-index:-100}.docsify-copy-code-button.error>.error,.docsify-copy-code-button.success>.success{opacity:1;right:100%;transform:translate(-25%,-50%)}.docsify-copy-code-button:focus,pre:hover .docsify-copy-code-button{opacity:1}.docsify-copy-code-button>[aria-live]{height:1px;left:-10000px;overflow:hidden;position:absolute;top:auto;width:1px}"),document.querySelector('link[href*="docsify-copy-code"]')&&console.warn("[Deprecation] Link to external docsify-copy-code stylesheet is no longer necessary."),window.DocsifyCopyCodePlugin={init:function(){return function(e,o){e.ready((function(){console.warn("[Deprecation] Manually initializing docsify-copy-code using window.DocsifyCopyCodePlugin.init() is no longer necessary.")}))}}},window.$docsify=window.$docsify||{},window.$docsify.plugins=[function(o,t){var n={buttonText:"Copy to clipboard",errorText:"Error",successText:"Copied"};o.doneEach((function(){var o=Array.from(document.querySelectorAll("pre[data-lang]"));t.config.copyCode&&Object.keys(n).forEach((function(o){var c=t.config.copyCode[o];"string"==typeof c?n[o]=c:"object"===e(c)&&Object.keys(c).some((function(e){var t=location.href.indexOf(e)>-1;return n[o]=t?c[e]:n[o],t}))}));var c=['<button class="docsify-copy-code-button">','<span class="label">'.concat(n.buttonText,"</span>"),'<span class="error" aria-hidden="hidden">'.concat(n.errorText,"</span>"),'<span class="success" aria-hidden="hidden">'.concat(n.successText,"</span>"),'<span aria-live="polite"></span>',"</button>"].join("");o.forEach((function(e){e.insertAdjacentHTML("beforeend",c)}))})),o.mounted((function(){var e=document.querySelector(".content");e&&e.addEventListener("click",(function(e){if(e.target.classList.contains("docsify-copy-code-button")){var o="BUTTON"===e.target.tagName?e.target:e.target.parentNode,t=document.createRange(),c=o.parentNode.querySelector("code"),i=o.querySelector("[aria-live]"),r=window.getSelection();t.selectNode(c),r&&(r.removeAllRanges(),r.addRange(t));try{document.execCommand("copy")&&(o.classList.add("success"),i.innerText=n.successText,setTimeout((function(){o.classList.remove("success"),i.innerText=""}),1e3))}catch(e){console.error("docsify-copy-code: ".concat(e)),o.classList.add("error"),i.innerText=n.errorText,setTimeout((function(){o.classList.remove("error"),i.innerText=""}),1e3)}(r=window.getSelection())&&("function"==typeof r.removeRange?r.removeRange(t):"function"==typeof r.removeAllRanges&&r.removeAllRanges())}}))}))}].concat(window.$docsify.plugins||[])}();
//# sourceMappingURL=docsify-copy-code.min.js.map

1
lib/docsify@4.js Normal file

File diff suppressed because one or more lines are too long

1
lib/emoji.min.js vendored Normal file

File diff suppressed because one or more lines are too long

1
lib/vue.css Normal file

File diff suppressed because one or more lines are too long

46
llm.md
View File

@ -1,8 +1,50 @@
# AI模型介绍
![AI模型](images/llm.png)
AI模型页面主要为弹幕回复时的相关设置。
# 基础配置
1. 接入类型支持openai兼容接口(大部分服务商如硅基流动、豆包、deepseek等支持的模式)、Dify工作流、Dify对话助手(当你需要更专业的处理时建议使用Dify工作流来处理具体请参考dify官网)。
2. API地址和API Key请查看大模型服务商的文档或联系服务商客服一般服务商在调用模型的示例部分查看openai sdk模式里都会写明。
3. 提示词支持`{{#dataset#}}`变量此变量在输入大模型时会被替换为产品知识库里的内容。接入Dify时不用输入提示词(提示词在Dify侧)产品知识库会提交给Dify具体变量名和返回值请在Dify里导入目录下的`dify电商话术优化.yml`来参考。
4. `产品知识库`里可以输入产品的参数、介绍、详情、发货方式、直播间介绍等。
# 提示词和知识库
# 提示词示例
## 提示词1(适用于Doubao)
```
# Role : 电商带货主播
现在你是一位有5年经验的直播金牌带货主播你的名字叫可乐你的说话方式是熟练使用各种网络热门梗造句擅长用鲜活口语制造互动氛围称呼客户为[家人们、宝宝们]。你能够根据产品信息讲解产品并且结合商品信息解答用户提出的疑问。
## Background :
下面是你正在带货的产品资料
{{#dataset#}}
## Workflows :
1. 信息过滤:
- 非产品咨询/无实质内容消息 → 不要输出任何回应
- 咨询产品问题/表达购买意向 → 必须输出回应
2. 行为分类处理:
- 产品咨询 → 回答咨询
- 催促上架 → 制造紧迫感
- 产品好评 → 强化口碑
- 重复刷屏 → 提炼诉求
3. 每次选择1-2个问题
4. 对选择的问题根据产品资料做出回答
5. 对于参考产品资料里没有的信息不知道的不要不懂装懂
6. 没有产品相关的问题直接输出"无",不要解释直接输出回复。
7. 回复时不要提及客户的名称,可以用客户名前两个字+宝宝、有家人问来、有宝宝问来代替
## Examples :
输入:[小路]发送消息:黑色卫衣会不会起球
输出有宝宝问卫衣会不会起球咱家卫衣采用冰丝晶磨工艺洗衣机滚10次都不起球。
输入:主播好美
输出:无
输入:
[小明]发送消息:灰色半裙,昨天就馋它了
[小红]发送消息:裙子上链接
[小强]发送消息:我来了
输出:灰色半裙马上展示,有需要的宝宝们抓紧啦!
```
# 平台对接

View File

@ -1,13 +1,19 @@
# 下载
1. 程序主体:
微果AI无人直播场控:[点击下载](http://localhost)
[夸克网盘](https://pan.quark.cn/s/dcf1d2f885fc)
[备用下载](https://git.des8.com/weixiu/ai-live/releases/download/v1.4/%E5%BE%AE%E6%9E%9CAI%E7%9B%B4%E6%92%AD%E5%9C%BA%E6%8E%A7v1.4.zip)
2. 可选功能插件:
抖音弹幕助手:[点击下载](http://localhost)
油猴浏览器扩展:[点击下载](http://localhost)
弹幕油猴脚本:[点击下载](http://localhost)
专用indexTTS一键包:[点击下载](http://localhost)
- 抖音弹幕助手
[gitee下载](https://gitee.com/apebyte/dy-barrage-grab/releases/download/v2.7.9/Release_V2.7.9.zip)
[夸克网盘](https://pan.quark.cn/s/da404caf036b)
- 专用indexTTS一键包
[夸克网盘](https://pan.quark.cn/s/0f9b4ccb3810)
# 交流联系
维护微信heibai2006
![技术联系微信](images/45b06dda4c5fa0313df81c132b23b06.png ':size=300x420')
加好友备注"微果AI",工作人员会拉入群。
# 安装
下载主体压缩包直接解压到D盘即可。获得目录如下:
@ -18,5 +24,15 @@
2. 点击`导入话术`跳转到导入话术页面
3. 点击`导入`在打开的对话框里选择`示例话术.txt`
4. 点击导入话术页面的保存按钮
5. 点击`场控`跳转到场控页面,选择输入设备
6. 点击`场控`页面下方的开始
5. 去火山方舟申请api key:[火山引擎-API Key管理](https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey?apikey=%7B%7D)
6. 把申请的key填写到`AI模型`页面的对应输入框,然后点击`保存`
![AI模型输入key](images/aimoxingshuruapikey.png)
7. 把申请的key填写到`话术优化`页面的对应输入框,然后点击`保存`
![话术优化输入key](images/huasuyouhuashurukey.png)
5. 点击`场控`跳转到场控页面,点击`启动语音系统`来启动index-TTS语音克隆和合成引擎。
![启动语音合成](images/qidongyuyin.png)
6. 点击`TTS语音`跳转到语音克隆页面,请准备一段主播的语音文件(mp3或wav格式)作为参考音频上传进行克隆。
![启动语音合成](images/yuyinkelong.png)
7. 点击`场控`跳转到场控页面,点击`启动弹幕助手`待弹幕助手启动成功设置好直播间地址和要处理的弹幕类型,再点击`开始处理弹幕`。
![开播](images/kaibola.png)
8. 选择音色、输出设备等点击`开始`就开始直播了。

1001
tools/barrage_monkey.user.js Normal file

File diff suppressed because it is too large Load Diff