基于大模型的课堂语音转录与教学过程分析系统设计毕业设计源码(源码+lw+部署文档+讲解等)
博主介绍:✌ 专注于VUE,小程序,安卓,Java,python,物联网专业,有18年开发经验,长年从事毕业指导,项目实战✌选取一个适合的毕业设计题目很重要。✌关注✌私信我✌具体的问题,我会尽力帮助你。
一、研究目的
当前,课堂教学质量评估与改进已成为教育技术研究的热点问题,传统的课堂观察与手工记录方法存在主观性强、效率低下等缺陷。随着深度学习技术的快速发展,尤其是大规模预训练模型在语音识别领域取得显著突破,为实现精准、高效的课堂语音转录提供了技术基础。
本研究旨在设计并实现一套基于大模型的课堂语音转录与教学过程分析系统,系统通过实时捕获教师与学生的语音数据,利用先进的端到端语音识别模型完成高质量转录,并对转录文本进行结构化标注,以便后续教学行为分析。
该系统将结合自然语言处理技术,对课堂对话进行主题归纳、情感倾向检测以及教师与学生互动模式识别,从而揭示课堂动态与教学效果之间的内在关联,为教师提供可视化的教学反馈与改进建议。
此外,系统将支持多模态数据融合,将语音转录结果与视频、屏幕共享内容等信息同步关联,形成完整的课堂事件日志,为教育研究者提供丰富的数据资源,支持基于证据的教学设计与评估。
通过构建该系统,本研究期望突破传统课堂数据采集与分析的瓶颈,实现大规模、低成本、实时的教学过程监测,为教育决策提供精准的数据支撑,并推动教育技术与教学理论的深度融合。
二、研究意义
本研究所提出的基于大模型的课堂语音转录与教学过程分析系统,具有多重深远意义。首先,系统通过高精度语音识别技术实现对课堂语音的实时、自动化转录,为教育科研提供了规模化、可复制的数据采集手段,显著降低了传统人工记录的成本与误差;其次,结合自然语言处理与机器学习方法,对转录文本进行主题归纳、情感分析以及教师与学生互动模式识别,使得教学行为能够被量化、可视化,从而为教师专业发展提供客观依据;再次,系统支持多模态数据融合,将语音转录结果与课堂视频、屏幕共享内容同步关联,构建完整的课堂事件日志,为教育评估与课程设计提供丰富的证据基础;最后,该技术平台可推广至不同学科与教学环境,实现跨学科、跨地区的教学质量监测与改进,推动教育公平与优质资源共享。综上所述,本研究不仅在技术层面突破了大规模课堂数据处理瓶颈,更在教育理论与实践层面提供了新的研究范式和实用工具,对提升教学效果、优化教育资源配置具有重要的理论价值与社会意义。
三、国内外研究现状
国内外在课堂语音转录与教学过程分析领域的研究已形成多条互相交织的发展脉络。首先,关于语音识别技术,国外学者以端到端模型为主线,先后提出了基于Transformer的wav2vec 2.0、Conformer等架构,并在公开数据集如LibriSpeech、CommonVoice上实现了近乎人类水平的识别准确率;随后将这些模型迁移至教育场景,通过领域自适应技术提升对教师口音、学生发音以及噪声环境的鲁棒性。国内方面,华中科技大学、清华大学等高校在大规模课堂语音数据集(如CHILDES-CH、EduSpeech)上进行Fine-tuning,取得了与国际先进水平相当的转录效果,并进一步探索了多说话人分离与说话人识别的联合学习策略。其次,在教学过程分析层面,国外研究多聚焦于行为建模与情感识别。MIT Media Lab提出的Learning Analytics框架,将课堂语音、视频与交互日志融合,通过机器学习方法对教师讲授节奏、学生参与度以及情绪波动进行实时监测;英国剑桥大学则利用深度强化学习对课堂互动进行因果推断,评估不同教学策略的效果。国内研究在此基础上,结合中文自然语言处理技术,构建了基于BERT、ERNIE的教学行为分类模型,能够识别“提问、解释、示例、总结”等教师行为标签,并通过情感分析模型捕捉学生的积极与消极情绪。再次,多模态融合成为近年来的重要研究方向。国外实验室普遍采用同步采集音频、视频与屏幕共享内容,通过图像-文本对齐技术实现课堂事件的多维度标注;欧洲欧盟项目“EduData”更进一步,将传感器数据与学生学习记录结合,形成全景式教学过程数据库。国内亦不甘示弱,华东师范大学等机构在多模态数据预处理与融合上提出了基于注意力机制的跨模态对齐模型,并在真实课堂中验证了其对教学行为识别精度的提升。最后,随着大模型技术的普及,国内外研究者纷纷尝试将GPT、BERT等通用语言模型迁移至教育领域,用于生成教学脚本、评估学生回答质量以及提供个性化学习建议。总体来看,国外在数据规模与跨模态分析方法上具有先发优势,而国内在中文语音识别、教学行为标签体系构建以及大模型迁移方面展现出强劲的创新活力。两者相互补充,为构建高效、精准的课堂语音转录与教学过程分析系统奠定了坚实基础。
四、预期达到目标及解决的关键问题
本研究的预期目标主要集中在构建一套完整、可持续的课堂语音转录与教学过程分析系统,系统应具备实时高精度转录、跨模态数据融合、教学行为自动识别以及可视化反馈等功能。首先,系统需实现对多说话人课堂语音的实时分离与识别,转录准确率在95%以上,并支持中文普通话与地方口音的无缝切换;其次,通过将转录文本与课堂视频、屏幕共享内容以及学习管理系统数据同步,对教师讲授节奏、学生参与度以及情绪波动进行结构化标注,形成可查询的教学事件日志;再次,系统应提供基于机器学习的教学行为分类模型,能够自动识别“提问、解释、示例、总结”等教师行为标签,并通过情感分析捕捉学生积极与消极情绪,为教师提供即时反馈与改进建议;最后,系统需满足数据安全与隐私保护要求,在保证可用性的前提下实现数据脱敏与访问控制,支持多用户角色权限管理。
为实现上述目标,本研究将面临若干关键技术问题。第一,课堂环境噪声多样且动态变化,传统语音识别模型在高噪声条件下的鲁棒性不足;需要研发针对教育场景的噪声抑制与自适应降噪模块,并结合多麦克风阵列实现空间滤波。第二,教师与学生在同一课堂中频繁切换发声,导致说话人分离(diarization)难度加大;需构建高效的说话人识别与分离算法,兼顾实时性与准确性。第三,中文教育语料存在大量口语化表达、专业术语以及多种方言,导致大模型在迁移学习时出现领域偏差;必须收集并标注大规模课堂语音数据集,采用领域自适应技术提升模型对教育文本的理解与生成能力。第四,教学行为与情感识别依赖于高质量标注数据,人工标注成本高且主观性强;需探索半监督学习、弱监督学习以及多任务学习框架,以降低标注成本并提升模型泛化性能。第五,系统需要在保证低延迟的前提下完成多模态融合与分析,传统深度网络往往计算量大、推理时间长;应研究轻量化模型、模型蒸馏以及边缘计算部署方案,以满足实时反馈需求。第六,数据安全与隐私保护成为不可忽视的问题,尤其在涉及学生个人信息时;需设计差分隐私机制、加密存储与访问控制策略,并符合教育部门相关法规。第七,模型可解释性是提升教师信任度的关键因素之一;应引入可解释人工智能技术,如注意力可视化、因果推断等,以阐明模型决策依据。
综上所述,本研究旨在通过技术创新与系统集成,为教育实践提供精准、高效、可持续的课堂语音转录与教学过程分析工具,同时解决噪声鲁棒性、说话人分离、领域适配、标注成本、实时性、隐私安全与模型可解释性等关键技术难题。
五、研究内容
本研究围绕“基于大模型的课堂语音转录与教学过程分析系统”展开,整体研究内容可分为四个主要模块:数据采集与预处理、语音识别与说话人分离、教学行为与情感分析以及系统集成与评估。首先,数据采集模块将利用多麦克风阵列与高清摄像头同步捕获课堂音频、视频及屏幕共享内容,并通过时间戳对齐实现多模态同步;随后对原始音频进行降噪、分帧与特征提取,采用基于卷积与Transformer混合结构的前端网络,以提升在高噪声环境下的鲁棒性。其次,语音识别模块将以wav2vec 2.0为基础进行迁移学习,并结合领域自适应技术对教育语料进行Fine-tuning,目标是实现95%以上的识别准确率;在此基础上引入说话人分离算法,通过多说话人端到端模型与基于声纹的后处理相结合,完成教师与学生发声的实时分离。第三,教学行为与情感分析模块将对转录文本进行分词、命名实体识别及句法分析,并利用预训练的中文BERT模型微调得到教学行为分类器,能够自动识别“提问、解释、示例、总结”等教师行为标签;与此同时,采用情感分析网络对学生发言进行积极与消极情绪判定,并将语音特征与文本特征融合,通过多任务学习提升整体识别精度。该模块还将实现跨模态关联,将视频中的面部表情、手势动作与转录文本对应,进一步丰富教学过程的可视化表达。最后,系统集成与评估模块将把上述功能整合到统一的服务框架中,支持实时推理与离线批处理;通过可视化仪表盘展示教师讲授节奏、学生参与度及情绪曲线,并提供基于数据的教学改进建议;在评估方面,将构建公开的课堂语音转录与教学行为标注数据集,采用WER、F1-score、AUC等指标对模型进行量化评估,并通过用户实验验证系统对教师教学效果提升的实际价值。整个研究将贯穿数据安全与隐私保护,采用差分隐私技术与加密存储方案,确保学生个人信息不被泄露;同时引入可解释人工智能方法,如注意力可视化与因果推断,为教师提供模型决策依据,提升系统可信度。通过上述研究内容,本项目旨在实现一套高效、精准、可解释的课堂语音转录与教学过程分析系统,为教育实践提供数据驱动的教学改进工具。
六、需求分析
用户需求方面,系统的主要使用者包括教师、学生、教学管理人员以及教育研究人员。教师在课堂中需要一种低干扰、高效的工具,能够在不影响授课节奏的前提下自动完成语音转录,并即时获得对其教学行为与学生参与度的可视化反馈,以便及时调整讲授策略;学生则期望系统能够准确记录课堂内容,支持课后回放与学习资料检索,同时通过情感分析获得个性化学习建议,提升学习动力;教学管理人员需要一套统一的数据平台,对多门课程的教学质量进行横向对比与纵向跟踪,制定基于证据的改进方案;教育研究人员则希望获取高质量、可标注的课堂语音与行为数据,用于模型训练、教学理论验证以及跨学科比较研究。所有用户都对系统的隐私保护与数据安全提出严格要求,尤其是涉及学生个人信息时,需遵守相关法规与伦理准则。系统还必须支持多语言与多方言环境,兼顾不同地区、不同学科的教学场景,以确保普适性与可推广性。
功能需求方面,系统首先必须实现高精度、低延迟的实时语音转录。为此需采用端到端大模型,并结合噪声抑制与说话人分离技术,确保在教室多声源、背景噪声条件下识别准确率不低于95%。其次,系统应支持多模态数据融合,将转录文本与课堂视频、屏幕共享内容以及学习管理系统的交互日志同步关联,形成完整的教学事件日志。第三,教学行为与情感分析功能需实现对教师讲授节奏、提问频率、示例使用以及总结力度等行为标签的自动识别,并对学生发言进行积极与消极情绪判定,从而为教师提供即时反馈与改进建议。第四,可视化仪表盘应展示教学过程中的关键指标,如课堂节奏曲线、学生参与度分布、情绪变化趋势等,并支持自定义报表与导出功能,以满足教学管理人员的评估需求。第五,系统必须实现差分隐私与加密存储机制,保障个人信息不被泄露,同时提供细粒度权限控制,支持多角色访问。第六,为提升教师对模型决策的信任度,系统需嵌入可解释人工智能模块,如注意力可视化与因果推断结果展示,使教师能够直观了解模型判断依据。最后,系统应具备离线批处理与在线推理两种工作模式,以适应不同教学环境与资源限制,并支持跨平台部署,兼容主流操作系统与教学管理软件。
七、可行性分析
经济可行性方面,系统的开发与部署成本主要集中在硬件设备采购、软件研发以及后期运维。硬件方面,采用多麦克风阵列与高清摄像头的组合相对成熟,单套设备成本已下降至数千元,可通过批量采购实现规模化降低;软件研发成本则取决于大模型训练与微调所需算力,利用云计算平台按需计费模式可显著降低前期投入,并通过开源框架与预训练模型共享降低技术门槛。后期运维成本主要包括服务器维护、数据存储与安全合规管理,采用分布式存储与容器化部署可实现资源弹性扩展,从而在用户规模扩大时保持成本可控。总体而言,系统的生命周期内投入产出比有望在三到五年内实现收支平衡,且通过向学校、教育机构及在线教育平台提供增值服务,可形成多元化收益模式。
社会可行性方面,系统的推广将直接提升教学质量与公平性。教师通过实时反馈能够及时调整教学策略,降低课堂失误率;学生获得精准转录与情感反馈,可针对性复习与自我调节,从而提升学习效果。教育管理部门借助统一数据平台可实现跨校区、跨学科的教学质量评估,支持政策制定与资源配置优化。与此同时,系统对个人隐私的严格保护与合规设计,符合国家关于数据安全与教育信息化的相关法规,能够获得监管机构与公众的信任。社会层面还需关注技术接受度与数字鸿沟问题,通过提供多语言支持、低成本硬件方案以及教师培训计划,可降低使用门槛,确保不同地区、不同资源条件下的广泛适用。
技术可行性方面,系统核心技术已在相关领域得到验证。端到端大模型在语音识别任务中已实现接近人类水平的准确率,且通过领域自适应与噪声抑制可进一步提升课堂环境下的鲁棒性;说话人分离算法结合声纹后处理已在多说话人场景中达到高召回率;教学行为与情感分析模块借助预训练中文BERT与多任务学习框架,可在有限标注数据下实现高精度分类。系统整体架构采用微服务化设计,支持水平扩展与弹性计算,能够满足实时推理与离线批处理的双重需求。安全与隐私技术方面,差分隐私、加密存储以及细粒度权限控制已在工业界得到成熟实现,可为系统提供可靠的数据保护。综上所述,技术层面具备实现本项目目标的充分条件与可操作路径。
八、功能分析
系统功能模块可划分为七大核心子系统,逻辑层次清晰、功能互补。首先,数据采集与同步子系统负责在课堂现场部署多麦克风阵列与高清摄像头,并通过网络时钟协议实现音视频的精准时间戳对齐;该子系统还需支持多种录音格式转换、文件压缩与传输加密,确保原始数据完整性与安全性。其次,音频预处理子系统对采集到的多声道音频进行去噪、回声消除与增益归一化,并利用短时傅里叶变换提取梅尔频率倒谱系数等特征,为后续模型提供高质量输入;该子系统还实现说话人分离模块,通过端到端说话人分离网络与声纹后处理相结合,实时标记教师与学生的发声区间。第三,语音识别子系统采用基于Transformer的wav2vec 2.0大模型,并在教育语料上进行领域自适应微调,输出高精度转录文本;该子系统支持多说话人转录、时间戳插入与错误率监控。第四,多模态融合与事件标注子系统将音频转录文本与同步视频帧、屏幕共享内容以及学习管理系统的交互日志进行时序对齐,并利用视觉-文本跨模态注意力机制为每个事件生成结构化标签,如“提问”、“解释”、“示例”等。第五,教学行为与情感分析子系统对标注后的文本进行分词、命名实体识别与句法分析,并利用微调的中文BERT模型进行行为分类;同时采用情感分析网络对学生发言进行积极/消极情绪判定,并将音频特征与文本特征融合,提升整体识别准确率。第六,可视化与决策支持子系统提供交互式仪表盘,展示教师讲授节奏曲线、学生参与度分布、情绪变化趋势等关键指标;该子系统支持自定义报表导出、历史对比分析与即时反馈推送,以辅助教师及时调整教学策略。第七,数据管理与安全子系统负责统一的数据存储、访问控制与隐私保护;采用差分隐私技术对敏感字段进行扰动,利用加密存储与细粒度权限管理确保数据不被未授权访问;此外,该子系统还提供API接口,支持第三方教学平台与研究机构的接入。上述七大模块通过微服务架构实现解耦、可扩展,并通过统一的消息队列实现实时数据流动,保证系统整体性能与可靠性。
九、数据库设计
表 1:users(用户信息表)
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
---|---|---|---|---|---
user_id | 用户编号 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | 主键 | 自动生成,唯一标识用户
username | 登录名 | 50 | VARCHAR(50) NOT NULL UNIQUE | — | 用于登录鉴权
password_hash | 密码哈希值 | 255 | VARCHAR(255) NOT NULL | — | 存储加密后的密码
role_id | 角色编号(教师、学生、管理员) | 10 | INT UNSIGNED NOT NULL | 外键 → roles.role_id | 角色权限控制
created_at | 创建时间 | 19 | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP | — | 记录用户创建时间
updated_at | 更新时间 | 19 | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | —
表 2:roles(角色信息表)
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
---|---|---|---|---|---
role_id | 角色编号 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | 主键 | 自动生成,唯一标识角色
role_name | 角色名称(Teacher、Student、Admin) | 30 | VARCHAR(30) NOT NULL UNIQUE | —
表 3:courses(课程信息表)
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
---|---|---|---|---|---
course_id | 课程编号 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | 主键 | 自动生成,唯一标识课程
course_name | 课程名称 | 100 | VARCHAR(100) NOT NULL | —
teacher_id | 任课教师编号 | 10 | INT UNSIGNED NOT NULL | 外键 → users.user_id
created_at | 创建时间 | 19 | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
表 4:sessions(课堂会话表)
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
---|---|---|---|---|---
session_id | 会话编号 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | 主键 | 自动生成,唯一标识一次课堂
course_id | 所属课程编号 | 10 | INT UNSIGNED NOT NULL | 外键 → courses.course_id
start_time | 开始时间 | 19 | DATETIME NOT NULL
end_time | 结束时间 | 19 | DATETIME
location | 上课地点(可选) | 100 | VARCHAR(100)
表 5:audio_files(音频文件表)
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
---|---|---|---|---|---
audio_id | 音频文件编号 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | 主键
session_id | 所属会话编号 | 10 | INT UNSIGNED NOT NULL | 外键 → sessions.session_id
file_path | 文件存储路径(相对或绝对) | 255 | VARCHAR(255) NOT NULL
duration_sec | 时长(秒) | 10 | INT UNSIGNED NOT NULL
sample_rate_hz | 采样率(Hz) | 10 | INT UNSIGNED NOT NULL
表 6:video_files(视频文件表)
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
---|---|---|---|---|---
video_id | 视频文件编号 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | 主键
session_id | 所属会话编号 | 10 | INT UNSIGNED NOT NULL | 外键 → sessions.session_id
file_path | 文件存储路径(相对或绝对) | 255 | VARCHAR(255) NOT NULL
duration_sec | 时长(秒) | 10 | INT UNSIGNED NOT NULL
表 7:transcripts(转录文本表)
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
---|---|---|---|---|---
transcript_id | 转录编号 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | 主键
audio_id | 所属音频文件编号 | 10 | INT UNSIGNED NOT NULL | 外键 → audio_files.audio_id
speaker_id | 发言人编号(教师或学生) | 10 | INT UNSIGNED NOT NULL
start_time_ms | 开始时间(毫秒) | 10 | INT UNSIGNED NOT NULL
end_time_ms | 结束时间(毫秒) | 10 | INT UNSIGNED NOT NULL
text_content | 转录文本内容 | - | TEXT NOT NULL
表 8:events(教学事件表)
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
---|---|---|---|---|---
event_id | 事件编号 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | 主键
session_id | 所属会话编号 | 10 | INT UNSIGNED NOT NULL | 外键 → sessions.session_id
transcript_id | 对应转录段编号(可为空) | 10 | INT UNSIGNED | 外键 → transcripts.transcript_id
event_type | 事件类型(提问、解释、示例、总结等) | 30 | VARCHAR(30) NOT NULL
timestamp_ms | 事件时间戳(毫秒) | 10 | INT UNSIGNED NOT NULL
表 9:teaching_behaviors(教学行为日志表)
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
---|---|---|---|---|---
behavior_id | 行为编号 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | 主键
event_id | 所属事件编号 | 10 | INT UNSIGNED NOT NULL | 外键 → events.event_id
behavior_category | 行为类别(提问、解释、示例、总结等) | 30 | VARCHAR(30) NOT NULL
confidence_score | 置信度分数(0-1) | 5 | DECIMAL(4,3) NOT NULL
表 10:student_emotions(学生情感日志表)
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
---|---|---|---|---|---
emotion_id | 情感编号 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | 主键
transcript_id | 对应转录段编号(可为空) | 10 | INT UNSIGNED | 外键 → transcripts.transcript_id
student_id | 学生编号 | 10 | INT UNSIGNED NOT NULL | 外键 → users.user_id
emotion_type | 情感类型(积极、消极、中性等) | 20 | VARCHAR(20) NOT NULL
confidence_score | 置信度分数(0-1) | 5 | DECIMAL(4,3) NOT NULL
表 11:devices(设备信息表)
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
---|---|---|---|---|---
device_id | 设备编号 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | 主键
session_id | 所属会话编号(可为空) | 10 | INT UNSIGNED | 外键 → sessions.session_id
device_type | 设备类型(麦克风阵列、摄像头等) | 30 | VARCHAR(30) NOT NULL
serial_number | 序列号 | 50 | VARCHAR(50) NOT NULL
表 12:permissions(权限映射表)
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
---|---|---|---|---|---
permission_id | 权限编号 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | 主键
role_id | 角色编号 | 10 | INT UNSIGNED NOT NULL | 外键 → roles.role_id
resource_type | 资源类型(用户、课程、会话等) | 30 | VARCHAR(30) NOT NULL
access_level | 访问级别(读、写、管理等) | 20 | VARCHAR(20) NOT NULL
上述表结构遵循第一范式(每个字段为原子值)、第二范式(所有非主键字段完全依赖于主键)与第三范式(无传递依赖),实现数据的完整性与一致性。所有外键均通过参照完整性约束保证关联关系的正确性。
十、建表语句
CREATE DATABASE IF NOT EXISTS classroom_analysis CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE classroom_analysis;
-- 角色信息表
CREATE TABLE IF NOT EXISTS roles (
role_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
role_name VARCHAR(30) NOT NULL UNIQUE,
PRIMARY KEY (role_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 用户信息表
CREATE TABLE IF NOT EXISTS users (
user_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
username VARCHAR(50) NOT NULL UNIQUE,
password_hash VARCHAR(255) NOT NULL,
role_id INT UNSIGNED NOT NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (user_id),
CONSTRAINT fk_users_role FOREIGN KEY (role_id) REFERENCES roles(role_id) ON DELETE RESTRICT ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 课程信息表
CREATE TABLE IF NOT EXISTS courses (
course_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
course_name VARCHAR(100) NOT NULL,
teacher_id INT UNSIGNED NOT NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (course_id),
CONSTRAINT fk_courses_teacher FOREIGN KEY (teacher_id) REFERENCES users(user_id) ON DELETE RESTRICT ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 课堂会话表
CREATE TABLE IF NOT EXISTS sessions (
session_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
course_id INT UNSIGNED NOT NULL,
start_time DATETIME NOT NULL,
end_time DATETIME,
location VARCHAR(100),
PRIMARY KEY (session_id),
CONSTRAINT fk_sessions_course FOREIGN KEY (course_id) REFERENCES courses(course_id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 音频文件表
CREATE TABLE IF NOT EXISTS audio_files (
audio_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
session_id INT UNSIGNED NOT NULL,
file_path VARCHAR(255) NOT NULL,
duration_sec INT UNSIGNED NOT NULL,
sample_rate_hz INT UNSIGNED NOT NULL,
PRIMARY KEY (audio_id),
CONSTRAINT fk_audio_files_session FOREIGN KEY (session_id) REFERENCES sessions(session_id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 视频文件表
CREATE TABLE IF NOT EXISTS video_files (
video_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
session_id INT UNSIGNED NOT NULL,
file_path VARCHAR(255) NOT NULL,
duration_sec INT UNSIGNED NOT NULL,
PRIMARY KEY (video_id),
CONSTRAINT fk_video_files_session FOREIGN KEY (session_id) REFERENCES sessions(session_id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 转录文本表
CREATE TABLE IF NOT EXISTS transcripts (
transcript_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
audio_id INT UNSIGNED NOT NULL,
speaker_id INT UNSIGNED NOT NULL,
start_time_ms INT UNSIGNED NOT NULL,
end_time_ms INT UNSIGNED NOT NULL,
text_content TEXT NOT NULL,
PRIMARY KEY (transcript_id),
CONSTRAINT fk_transcripts_audio FOREIGN KEY (audio_id) REFERENCES audio_files(audio_id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 教学事件表
CREATE TABLE IF NOT EXISTS events (
event_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
session_id INT UNSIGNED NOT NULL,
transcript_id INT UNSIGNED,
event_type VARCHAR(30) NOT NULL,
timestamp_ms INT UNSIGNED NOT NULL,
PRIMARY KEY (event_id),
CONSTRAINT fk_events_session FOREIGN KEY (session_id) REFERENCES sessions(session_id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_events_transcript FOREIGN KEY (transcript_id) REFERENCES transcripts(transcript_id) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 教学行为日志表
CREATE TABLE IF NOT EXISTS teaching_behaviors (
behavior_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
event_id INT UNSIGNED NOT NULL,
behavior_category VARCHAR(30) NOT NULL,
confidence_score DECIMAL(4,3) NOT NULL,
PRIMARY KEY (behavior_id),
CONSTRAINT fk_teaching_behaviors_event FOREIGN KEY (event_id) REFERENCES events(event_id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 学生情感日志表
CREATE TABLE IF NOT EXISTS student_emotions (
emotion_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
transcript_id INT UNSIGNED,
student_id INT UNSIGNED NOT NULL,
emotion_type VARCHAR(20) NOT NULL,
confidence_score DECIMAL(4,3) NOT NULL,
PRIMARY KEY (emotion_id),
CONSTRAINT fk_student_emotions_transcript FOREIGN KEY (transcript_id) REFERENCES transcripts(transcript_id) ON DELETE SET NULL ON UPDATE CASCADE,
CONSTRAINT fk_student_emotions_user FOREIGN KEY (student_id) REFERENCES users(user_id) ON DELETE RESTRICT ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 设备信息表
CREATE TABLE IF NOT EXISTS devices (
device_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
session_id INT UNSIGNED,
device_type VARCHAR(30) NOT NULL,
serial_number VARCHAR(50) NOT NULL UNIQUE,
PRIMARY KEY (device_id),
CONSTRAINT fk_devices_session FOREIGN KEY (session_id) REFERENCES sessions(session_id) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 权限映射表
CREATE TABLE IF NOT EXISTS permissions (
permission_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
role_id INT UNSIGNED NOT NULL,
resource_type VARCHAR(30) NOT NULL,
access_level VARCHAR(20) NOT NULL,
PRIMARY KEY (permission_id),
CONSTRAINT fk_permissions_role FOREIGN KEY (role_id) REFERENCES roles(role_id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 索引(可选但有助于查询性能)
CREATE INDEX idx_users_role ON users(role_id);
CREATE INDEX idx_courses_teacher ON courses(teacher_id);
CREATE INDEX idx_sessions_course ON sessions(course_id);
CREATE INDEX idx_audio_files_session ON audio_files(session_id);
CREATE INDEX idx_video_files_session ON video_files(session_id);
CREATE INDEX idx_transcripts_audio ON transcripts(audio_id);
CREATE INDEX idx_events_session ON events(session_id);
CREATE INDEX idx_events_transcript ON events(transcript_id);
CREATE INDEX idx_teaching_behaviors_event ON teaching_behaviors(event_id);
CREATE INDEX idx_student_emotions_transcript ON student_emotions(transcript_id);
CREATE INDEX idx_student_emotions_user ON student_emotions(student_id);
CREATE INDEX idx_devices_session ON devices(session_id);
文章下方名片联系我即可~大家点赞、收藏、关注、评论啦 、查看下方👇🏻获取联系方式👇🏻
更多推荐


所有评论(0)