当前位置: 首页 > news >正文

文澜知微项目实训小组报告记录(三)

成员:蔺涵霖、秦玮悦、陈秋华

时间:4.17-4.30


一、项目概述

本项目为“文澜知微”古文沉浸式智慧阅读平台,核心目标是打造一款集古籍阅读、历史人物对话、古文智能翻译、时空地图可视化为一体的综合性平台。在实训第一阶段完成项目基础框架搭建与古籍阅读模块开发的基础上,第二阶段围绕功能深化与技术增强展开,重点完成了DeepSeek AI大模型接入、历史人物对话语音朗读模块开发、历史人物轨迹数据采集与清洗三大核心任务,进一步提升了平台的智能化水平与用户沉浸式体验。


二、小组分工及成员完成情况

小组共3名成员,结合项目需求与成员技术特长,明确分工、协同推进,各成员具体分工及完成情况如下,所有已分配任务均按要求完成,无延期情况。
成员 负责模块 具体职责 完成情况
陈秋华 历史人物轨迹数据采集与清洗、基础框架优化 1. 利用DeepSeek AI接口批量采集191位历史人物生平轨迹数据;2. 开发增强版Node.js数据清洗脚本;3. 实现CHGIS地名匹配与坐标补充;4. 优化基础框架权限管控功能 ✅ 全部完成
采集191位人物1691条有效轨迹,匹配率超70%;AI对话接口稳定,前端交互流畅;清洗脚本可复用

秦玮悦 古籍阅读模块、古文智能翻译 1. 古籍阅读模块添加搜索功能(按书名/作者);2. 完善收藏功能对接后端数据库;3. 添加阅读历史记录功能;4. 对接大模型实现古文智能翻译功能 ✅ 全部完成,搜索精准,收藏与历史记录正常存储展示,翻译功能流畅
蔺涵霖 历史人物对话语音朗读模块 1. 设计语音朗读服务架构(prepare + synthesize双接口);2. 对接Edge TTS实现文本转语音;3. 开发文本清洗、音色策略、异常处理机制;4. 完成前后端联调与兼容性测试 ✅ 全部完成,语音朗读最小闭环打通,支持在线mp3返回,功能稳定可交付


三、各模块完成效果

(一)DeepSeek AI大模型接入

1. 核心功能

本阶段完成了DeepSeek AI大模型的完整接入,同时预留了通古AI和文心一言的接入框架。后端采用Spring Boot架构,通过AIService统一封装多模型调用逻辑,使用策略模式实现模型路由分发。前端开发了独立的AI智读页面(AIChat.vue),支持DeepSeek/通古AI/文心一言三种模型切换,AI回复支持Markdown格式渲染(使用marked库解析),并实现了一键复制和浏览器TTS语音朗读功能。

2. 效果表现

对话接口`/api/ai/chat`运行稳定,支持多轮对话上下文关联,系统提示词预设为古籍智慧问答助手角色,确保AI回答的专业性。多模型配置通过`application.yml`集中管理,`AIConfig.java`使用`@ConfigurationProperties`读取配置,模型切换灵活。前端AI智读页面交互流畅,Markdown渲染正常,语音朗读功能基于Web Speech API实现,支持中文朗读(语速0.9,语言zh-CN)。

(二)历史人物对话语音朗读模块

1. 核心功能

本阶段定位为语音模块的“基础语音链路打通与工程化落地(可用版本)”,核心目标是打通“文本→语音”完整闭环,实现稳定可用的朗读功能。服务设计采用“两步式”架构:`prepareTts`负责文本预处理与模式判定,`synthesizeAudio`负责音色选择与音频合成。

2. 技术实现

语音合成引擎选用Edge TTS,对比浏览器原生speechSynthesis在音色一致性和可控性上更稳定,能在服务端固定男声/女声,避免同一角色在不同设备发音不一致的问题。后端围绕`HistoryTtsService`封装核心能力,包括:文本净化(去除中括号、圆括号注释、冗余空格)、模式标准化(仅接受ancient/modern,非法值回落到modern)、音色策略(按性别与speakerKey做音色选择)、命令调用与超时控制(ProcessBuilder调用edge-tts,设置超时与重试)。

异常处理方面,针对模块缺失(No module named edge_tts)、无音频返回、超时、空文本等场景分类处理,语音模块从“能跑”提升为“可维护、可排障”。

3. 效果表现

完成前后端联调,现代语音朗读功能稳定可用,点击历史人物消息“朗读”按钮可正常返回音频流,不同性别、不同角色切换时音色稳定,长文本可完整合成播放,异常场景提示清晰。实现了对话场景下“文字+声音”双通道输出,用户沉浸感明显提升。

(三)历史人物轨迹数据采集与清洗

1. 核心功能

本阶段基于CHGIS(中国历史地理信息系统)地名数据,采集191位历史人物(先秦至清朝,覆盖政治、文化、军事等多领域)的生平轨迹数据,并开发增强版Node.js数据清洗脚本,实现轨迹数据格式标准化、复合地名拆分、多模式地名匹配、坐标补充与可信度分级。

2. 数据采集

利用DeepSeek AI接口批量采集191位历史人物的生平轨迹数据,优化AI提示词,要求返回标准JSON格式,包含人物名称、轨迹节点(时间、地点、事件、史料出处),禁止多余注释与格式混乱问题,地点必须使用古代地名原称,按“路/道—府—州—郡—县”层级书写。最终生成原始轨迹数据文件(newperson.geojson),共包含191位人物、1694条轨迹节点,经初步筛选后有效原始轨迹1691条。

3. 增强版数据清洗脚本

基于原有清洗逻辑,开发增强版Node.js清洗脚本(personTrackCleanAndMatch.js),新增以下功能:复合地名拆分(支持多种分隔符:;、,、+、&、和、与、以及)、范围格式处理(如“XX—YY”拆分为两个独立地点)、多模式地名匹配(精确匹配、今地名匹配、模糊匹配、反向包含匹配)。匹配过程中统计匹配率,按exact/pres_loc/fuzzy/reverse四类匹配类型分类统计,最终有效轨迹匹配率超过70%的目标要求。

4. 数据校验与可信度分级

最终输出的轨迹数据每条节点均包含坐标可信度分级(high/medium/low)和坐标来源标注(historical_places/special_map),坐标匹配准确,脚本可复用、易维护。以秦始皇轨迹数据为例,共包含23条轨迹节点,覆盖其从出生到病逝的完整生平,所有节点均匹配了CHGIS坐标,可信度均为high。


四、项目现存问题与改进方向

(一)现存问题

语音朗读模块:目前仅完成现代语音朗读的基础版本,古风古音的韵律还原尚未实现,距离“历史沉浸感”的预期仍有差距;部分长文本合成耗时较长,需优化异步处理机制。

AI大模型接入:通古AI和文心一言目前仅完成接口框架搭建,尚未进行深度适配与效果优化;AI智读页面目前为独立测试页面,尚未与古籍阅读页面深度集成。

轨迹数据处理:部分古代地名(尤其是已消失或变更的地名)在CHGIS中匹配率偏低,需进一步扩展地名数据库;复合地名的拆分逻辑仍有边界情况未覆盖。

(二)可优化方向

语音模块:引入朝代相关的古音映射逻辑,细化古音可读化转换,增加“古音/今音”前端切换与对照播放功能,提升实际听感。

AI接入:完成通古AI的古文专精能力深度适配,将AI功能集成到阅读页侧边栏,支持阅读页选中文字后一键发送给AI提问。

轨迹清洗:补充非CHGIS覆盖区域的地名坐标库,优化复合地名拆分逻辑,增加人工校验环节,进一步提升匹配准确率。


五、小组总结

本阶段在项目基础框架搭建完成的基础上,重点推进了AI大模型接入、语音朗读、轨迹数据采集与清洗三大技术增强模块,实现了平台智能化水平的显著提升。各成员充分发挥自身技术特长,积极运用AI辅助编程提升开发效率,严格遵循标准化开发流程,确保了代码质量与开发进度。

AI大模型接入为平台注入了智慧问答能力,用户可在AI智读页面与古籍助手自由对话;语音朗读模块打通了“文本→语音”链路,实现了历史人物对话场景下的双通道输出,沉浸感显著增强;轨迹数据采集与清洗则为后续时空地图可视化奠定了坚实的数据基础。

本阶段我们也认识到项目现存的不足,语音朗读的古音增强、AI功能的深度集成、轨迹数据可视化的开发仍是下一阶段的重点工作。后续将按照任务规划继续推进功能开发,重点优化用户体验,确保按时完成项目整体目标。

http://www.jsqmd.com/news/755683/

相关文章:

  • 【干货】IDA Pro 动态调试与静态分析常用快捷键
  • Nat Commun|吴华君/徐明团队开发跨尺度三维基因组预测深度学习框架Hi-Compass
  • 别再死磕复杂模型了!用TuckER张量分解搞定知识图谱补全,附PyTorch代码实战
  • 【2026年唯一认证级OPC UA C#开发手册】:覆盖IEC 62541-4/5/8/13全标准,附12个工厂产线实测案例源码
  • 基于Next.js 15与Prisma的AI智能体管理系统:规范驱动开发实践
  • 测试系统开发全流程:硬件架构与软件设计实战
  • 深入探讨:解决Azure AD B2C用户管理中的NullReferenceException
  • AI机器人产业全景与发展态势
  • NVIDIA Nemotron Nano V2 VL模型:边缘计算中的视觉语言模型实践
  • Power Apps上传文件到SharePoint时,Base64转换和JSON解析的坑我都帮你踩过了
  • 5个步骤轻松实现Unity游戏自动翻译:XUnity.AutoTranslator完全指南
  • 别再只会用梯度下降了!用Scipy的basinhopping搞定Python里的那些‘坑’函数
  • 车载C#中控与ADAS域控制器通信卡顿?(揭秘DDS over .NET 6 + ROS2 Bridge的混合通信架构,已通过AEC-Q100 Grade 2验证)
  • 别再只会JSON.stringify了!JS对象Key重命名的7种实战方案(含性能对比)
  • 向量模型分词与截断机制详解:从文本到向量的完整旅程
  • LoRA-Torch:权重合并范式实现通用高效的大模型微调
  • 为什么说Godot-MCP正在彻底改变游戏开发的工作方式?
  • STM32F103C8T6小车蓝牙遥控避坑指南:HC-05模块AT指令配置与串口中断实战
  • 深度解析YoRadio:ESP32音频流媒体系统的架构设计与实现机制
  • 自优化视频采样技术提升物理真实感
  • 别再只调SystemInit了!STM32从Stop模式唤醒后时钟配置全解析(HSE恢复72MHz)
  • 推理服务为什么一开超时熔断就开始误杀长输出:从 Token Budget 到 Partial Result Commit 的工程实战
  • 从‘错题本’到OHEM:聊聊目标检测中困难样本挖掘的演进与最佳实践
  • 远程固件级调试不再难,.NET 9边缘调试全链路打通,从ARM Cortex-M到Linux容器一文吃透
  • Shimmy:一键部署本地OpenAI兼容服务器,无缝接入GGUF模型
  • 3步掌握B站视频下载:downkyi高效下载工具全攻略
  • 深入浅出 MCP (Model Context Protocol): 开启 AI Agent 的标准化连接时代
  • Debian 12虚拟机安装避坑指南:从DVD离线安装到配置清华源,保姆级全流程
  • NVIDIA Nemotron Nano V2 VL视觉语言模型解析与应用
  • 效率提升秘籍:用快马AI自动生成黑马点评项目通用工具类与模块