【AI+教学】让课堂实时讲解语音知识库沉淀下来
今天给大家分享一个教学的 AI 使用场景,主要用来解决课堂老师实时讲解的内容如何让学生快速了解学习。
一、教学场景说明:
课堂上老师上完课后,课堂实时讲解的内容,部分与教材或者课件有偏差(临场发挥),希望通过AI小助手将这部分知识沉淀总结下来。方便学生了解回顾。
二、AI 流程设计说明:
该 AI 小助手同时被老师和学生使用,然后进入小助手之后先选择

三、使用的 AI 应用平台
MaxKB:强大易用的企业级 AI 助手(开源)
更多信息:https://maxkb.cn/
四、涉及模型及组件
4.1大语言模型:
本次使用的是阿里云百炼大语言模型,实现 AI 问答;对接说明参见:https://maxkb.cn/docs/user_manual/model/bailian_model/
4.2语音识别模型
阿里云百炼语音识别模型,实现语音转文本;
对接说明:https://maxkb.cn/docs/user_manual/model/bailian_model/
4.3文档内容提取
实现将文档内容提取文本信息,详细操作说明参见:https://maxkb.cn/docs/user_manual/app/workflow_app/#112
4.4语音转文本
将音频文件通过模型转换为文本文件。具体操作说明参见:https://maxkb.cn/docs/user_manual/app/workflow_app/#113
4.5文档生成函数:
负责将语音识别到的文本和文档内容提取到的文本信息转换成word 文档。
详细函数代码如下所示:
import requests
def convert_markdown_to_word(markdown_text):
"""
发送 Markdown 文本到指定的 API,并获取生成的 Word 文件的下载链接
:param markdown_text: Markdown 格式的文本
:param api_url: API 的 URL
:return: Word 文件的下载链接
"""
# pandoc-api 部署 pandoc-api 的服务器的URL地址
api_url = "http://ip:5000/convert"
# 构造请求数据
data = {
"markdown": markdown_text
}
# 发送 POST 请求
response = requests.post(api_url, json=data)
# 检查响应状态
if response.status_code == 200:
# 解析 JSON 响应
response_data = response.json()
if 'download_url' in response_data:
# 返回下载链接
return response_data['download_url']
else:
return "Error: 'download_url' not found in the response"
else:
# 返回错误信息
return f"Error: {response.status_code}, {response.text}"
其中将markdown_test设置成输入参数,具体参见如下:

4.6知识库导入 API 调用函数:
将文档生成函数生成word文档通过Python函数调用 API 接口导入到MaxKB的知识库中。
详细函数代码如下所示:
import requests
import json
def main(user_key,dataset_id,file_name,audio_name):
# 使用字符串的 split 方法截取 /download/ 后面的内容
file_name = file_name.split("/download/")[1]
# 定义下载链接(文档生产函数中的文档上传地址)和目标路径
url = "http://IP:5000/download/"+file_name
maxkb_filename = audio_name[0].get('name')+"-"+file_name;
# 从pan-doc下载的文件,重新命名为录音文件的原名
target_path = "/opt/maxkb/app/sandbox/python-packages/"+ maxkb_filename
try:
# 发送 GET 请求下载文件
response = requests.get(url)
response.raise_for_status() # 检查请求是否成功
# 将文件内容写入目标路径
with open(target_path, "wb") as file:
file.write(response.content)
print(f"文件已成功下载到 {target_path}")
except requests.exceptions.RequestException as e:
print(f"下载失败:{e}")
print("请检查链接的合法性或网络连接,并稍后重试。")
# 目标 MaxKB URL访问地址
url = "https://域名/api/dataset/document/split"
# 请求头
headers = {
"accept": "application/json",
"AUTHORIZATION": user_key
}
# 要上传的文件
files = {
"file": (maxkb_filename, open(target_path, "rb"), "text/plain")
}
# 发送 POST 请求
response = requests.post(url, headers=headers, files=files)
# 打印响应内容
print("Response Status Code:", response.status_code)
print("Response Content:", response.json())
#根据指定知识库id,开始创建分段
# 目标 MaxKB URL访问地址
url = "https://域名/api/dataset/"+dataset_id+"/document/_bach"
# 请求头
headers = {
"accept": "application/json",
"AUTHORIZATION": user_key,
"Content-Type": "application/json"
}
# 请求数据
data = response.json().get("data")
# 将第一个content重命名为paragraphs
data[0]["paragraphs"] = data[0].pop("content")
# 发送 POST 请求
response = requests.post(url, headers=headers, data=json.dumps(data))
# 打印响应内容
print("Response Status Code:", response.status_code)
print("Response Content:", response.text)
return response.text
添加函数输入参数,如下图所示:

其中user_id和dataset_id的含义以及获取方式如下所示:
1、user_key 为调用 MaxKB 的key,参见如下截图到MaxKB中获取:
- 第一步:进入 api key 管理

- 第二步:创建专属于自己的user_key

2、dataset_id 是语音知识库需要上传的指定 MaxKB 知识库,参照以下步骤完成。
- 第一步:基于 MaxKB 创建一个通用型知识库,里面内容为空即可。参见如下截图:

- 第二步:进入 MaxKB 的 Swagger API 文档,如下图获取访问地址以及user_key

第三步:进入 Swagger API 文档,进入授权输入user_key。

第四步:找到知识库查询的API接口,/api/dataset/ (获取知识库列表)
参照以下截图获取到 dataset_id 即可。

四、AI 工作流编排
本次涉及两个工作流编排,其中一个 AI 工作流实现知识库入库,另一个 AI 工作流实现问答,两者相互引用满足不通角色的小助手使用。
AI 工作流一:音频知识库入库小助手
如下图所示将相关节点创建完成即可。

AI 工作流二:TCIP-T-AIGK
根据以下流程图编排相关 AI 工作流

其中 AI 工作流的基本信息中需要打开文件上传和设置用户输入参数,如下图所示:

- 1、基本信息中需要打开文件上传,并同时支持文档和音频文件上传

- 2、用户输入点击添加用户角色参数,如下图所示:

同时需要将用户输入的名称信息改为请选择你的身份。

五、AI 教学助手演示
选择角色:进入 AI 教学助手页面,选择角色。

角色一:我是老师,点击上传文档或者音频文件,输入开始,点击发送,如下图所示知识库创建。

角色二:我是学生,提出问题,然后点击发送。

【AI+教学】让课堂实时讲解语音知识库沉淀下来的更多相关文章
- 实时中文语音克隆——开源项目MockingBird体验
[引子] 在今年大型网络攻防演练前不久,笔者接到一个公司的座机号码来电,上来就问防守准备得怎么样了,哪里还有不足等.等等,这声音不认识,笔者第一反应就是蓝军(Red Team)来进行社会工程攻击,于是 ...
- 实时Android语音对讲系统架构
本文属于Android局域网内的语音对讲项目系列,<通过UDP广播实现Android局域网Peer Discovering>实现了局域网内的广播及多播通信,本文将重点说明系统架构,音频信号 ...
- [初识]使用百度AI接口,图灵机器人实现简单语音对话
一.准备 1.百度ai开放平台提供了优质的接口资源https://ai.baidu.com/ (基本免费) 2.在语音识别的接口中, 对中文来说, 讯飞的接口是很好的选择https://www.xf ...
- 基于flask和百度AI接口实现前后端的语音交互
话不多说,直接怼代码,有不懂的,可以留言 简单的实现,前后端的语音交互. import os from uuid import uuid4 from aip import AipSpeech from ...
- 矩池云助力科研算力免费上"云",让 AI 教学简单起来
矩池云是一个专业的国内深度学习云平台,拥有着良好的深度学习云端训练体验,和高性价比的GPU集群资源.而且对同学们比较友好,会经常做一些大折扣的活动,最近双十一,全场所有的RTX 2070.Platin ...
- Nature重磅:华裔科学家成功解码脑电波,AI直接从大脑中合成语音
[导读]Nature发表华裔作者论文:通过解码大脑活动提升语音的清晰度,使用深度学习方法直接从大脑信号中产生口语句子,达到150个单词,接近正常人水平. 大脑活动能够解码成语音了. 说话似乎是一项毫不 ...
- 转载 | Python AI 教学│k-means聚类算法及应用
关注我们的公众号哦!获取更多精彩哦! 1.问题导入 假如有这样一种情况,在一天你想去某个城市旅游,这个城市里你想去的有70个地方,现在你只有每一个地方的地址,这个地址列表很长,有70个位置.事先肯定要 ...
- 深度 | AI芯片之智能边缘计算的崛起——实时语言翻译、图像识别、AI视频监控、无人车这些都需要终端具有较强的计算能力,从而AI芯片发展起来是必然,同时5G网络也是必然
from:https://36kr.com/p/5103044.html 到2020年,大多数先进的ML袖珍电脑(你仍称之为手机)将有能力执行一整套任务.个人助理将变的更加智能,它是打造这种功能的切入 ...
- AliCloudDenoise 语音增强算法:助力实时会议系统进入超清音质时代
近些年,随着实时通信技术的发展,在线会议逐渐成为人们工作中不可或缺的重要办公工具,据不完全统计,线上会议中约有 75% 为纯语音会议,即无需开启摄像头和屏幕共享功能,此时会议中的语音质量和清晰度对线上 ...
- 2019 计蒜之道 初赛 第二场 B. 百度AI小课堂-上升子序列(简单) ( 实现)
题目背景 91029102 年 99 月 22 日,百度在 X 市 XX 中学举办的第一场 AI 知识小课堂大获好评!同学们对矩阵的掌握非常棒. 今天的 AI 知识小课堂的第二场开讲啦.本场 AI ...
随机推荐
- 如何构建多模态AI知识库?
转载:如何构建多模态AI知识库? 摘要 在科技飞速发展的当下,人工智能(AI)已成为推动各行业变革的关键力量.其中,多模态 AI 知识库作为 AI 领域的重要创新,正引领我们迈向一个全新的智能时代.它 ...
- Trae AI 工具使用记录--0手写代码创建桌面代办事项软件
使用的AI工具是最近字节跳动出品的Trae工具. 第一步 下载IDE,Trae(官网链接 https://www.trae.ai) 安装完成后注册.登录,可以直接使用github账号.第一个坑就是目前 ...
- Ubuntu20.04搭建k8s v1.23.3版本集群
前言 服务器统一版本 Ubuntu 20.04 搭建集群最少要两台服务器 每台服务器都需要 docker.环境配置.安装 kubeadm.kubelet 和 kubectl docker 安装 doc ...
- 云服务器下如何部署Django项目详细操作步骤
前期本人完成了"编写你的第一个 Django 应用程序",有了一个简单的项目代码,在本地window系统自测没问题了,接下来就想办法部署到服务器上,可以通过公网访问我们的Djang ...
- 【SqlServer】datetime存储精度问题探究
最近使用sqlserver 2012的时候注意到datetime类型的毫秒的精度是存在问题的,好奇是怎么回事,特意来研究一下 问题复现 如下的sql执行 UPDATE AlarmItem SET cr ...
- Cursor 老改坏代码?六哥这几招超管用!
大家好,我是六哥!最近不少小伙伴和我吐槽,在使用Cursor时,AI老是把代码改坏,让人头疼不已.我自己也用了大几十个小时Cursor,今天就来给大家分享一些实用小窍门,教大家如何巧妙规避这类问题. ...
- Sql语句:数据操作
数据操作,核心是:增删改查. 其中查与增删改不同,要返回数据集,其他的只要知道是否修改成功即可,所以一般调用时,返回值不同,这点要注意. 一.查询: select sname,sdept,sage f ...
- zk基础—1.一致性原理和算法
大纲 1.分布式系统特点 2.分布式系统的理论 3.两阶段提交Two-Phase Commit(2PC) 4.三阶段提交Three-Phase Commit(3PC) 5.Paxos岛的故事来对应Zo ...
- Dify开发必备:分享8个官方文档不曾解释的关键技巧
Dify 是一个帮助你快速搭建 AI 应用的工具,其定位类似Coze.但相比Coze--Dify是免费的.开源的,人人都可以用.哪怕你不懂编程,也能用它参与到 AI 应用的设计和使用中.总之,如果你是 ...
- devops 2024
What is DevOps? DevOps is a mindset, a culture, and a set of technical practices. It provides commun ...