🗒️图说心语——一款交互型故事学习应用
00 分钟
2023-8-16
2023-10-23
type
status
date
slug
summary
tags
category
icon
password
🗺️
项目来历 本项目是大二学年的重点参赛项目,其用于参加以下比赛:
  • C4-移动应用创新赛(初赛落选)
  • C4-智能交互创新赛(全国二等奖+优秀指导老师)
  • 互联网+(校赛银奖)
同时本项目也用作以下课程的作业:
  • 用户交互设计期末大项目(优)
  • 移动和数据分析竞教结合期中竞赛项目+期末大项目(优)

一、程序简介

“图说心语”(ImagiTale)是一款针对儿童教育领域的应用,旨在通过游戏化和互动化的方式,激发儿童对讲故事的兴趣,提高儿童的表达能力和想象力。我们的程序利用了最新的人工智能技术,如语音识别、自然语言处理、图像生成和声音合成等,为儿童提供了一个有趣而富有挑战性的故事创作平台。我们的程序可以根据不同年龄段和水平的儿童,提供不同难度和主题的故事素材,让儿童在讲述故事的过程中,获得及时而有效的反馈和指导。

1.1 程序概要及架构

notion image
该程序以Swift为主要开发语言,使用SwiftUI进行用户界面的设计,并使用讯飞SDK实现语音与文本的互相转化,用openai的gpt相关API实现对话文本生成。 我们的程序既需要有能够吸引儿童注意力的美观的界面,又有各种强大且复杂的技术需要进行逻辑上的管理,同时我们在未来还将实现与数据库的互联,以存储用户数据等信息。基于以上考虑,我们决定采用三层架构设计:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。
 
表示层(UI) ,位于三层构架的最上层。与用户(即儿童)直接接触,实现软件与用户的直接信息交换,如获取儿童讲故事的语音等,以及进行消息事件的处理。 业务逻辑层(BLL),实现数据处理和数据传递,接收表示层传来的各种儿童直接反馈的信息,如一段讲故事语音,通过内部强大的处理工具进行处理,同时交由情感分析模型进行分析与反馈,最后再将反馈的结果呈递给表示层;同时,该层也负责对数据库数据进行访问与修改。 数据访问层(DAL),实现数据的增加、删除、修改、查询等操作,并将操作结果反馈到BLL层。BLL处理的数据来自数据库存储的信息或表示层获得的用户信息,其将用户界面收集过来的数据经过业务逻辑层的功能处理后传送到数据库,而从数据库获取的数据,经过业务逻辑层处理后再呈现给用户界面。因此业务逻辑层是中间层,起到承上启下的作用。 经典三层架构的调用关系是:UI调用BLL,BLL调用DAL。而UI与DAL是不可直接相互调用,它们之间相互隔离。这种基于“高内聚,低耦合”理念的三层架构,使得开发人员分工更明确,可以让开发人员的精力更专注于应用系统核心业务逻辑的分析、设计和开发,加快项目的进度,提高了开发效率,有利于项目的升级和维护工作。 为了实现三层架构,我们采用面向对象的编程思想,将实现视图功能的类与实现业务逻辑功能的类分开,方便程序的开发与维护。在视图类中,主要进行程序界面的显示以及涉及到相应的业务逻辑的类的调用,同时将直接获得的用户数据传给相关业务逻辑类;在业务逻辑类中,程序通过调用各种功能强大的模块来实现程序的各种具体功能,如语音与文字的互相转换、情感分析、关键词提示等等。

1.2 程序调用模块

1.2.1 外部库/依赖相关说明

  1. OpenAI - OpenAI社区Swift框架。Chatgpt可以识别并自动生成对话,是一款非常强大的可以轻松实现实时聊天的工具。因此,可以在我们的项目中应用chatgpt,使对话的生成更高效更便于儿童理解。同时其也可以与我们实验室自研的情感模型相结合,生成更有感情、更符合儿童理解习惯和成长的对话。同时由于openai提供了chatgpt的接口,使chatgpt在项目中的使用更加便捷。
  1. SVGView - SVG矢量图显示工具。通过SVGView来管理可能需要用到的矢量图,便于我们实现根据描述改变界面这一功能。
  1. HandyJSON - 社区JSON处理工具。HandyJSON采用Swift反射+内存赋值的方式来构造Model实例,易于开发与维护,适用于程序前后端之间的json管理。
  1. FDSoundActivatedRecorder - 自动录音工具,在检测到用户说话后自动开始录音。用于实现录制儿童所讲故事的功能。
  1. ConvertToPinYin - 转换汉字为拼音。用于实现为儿童提供汉字拼音的功能,方便儿童迅速获得汉字读音。
notion image

1.2.2 非开源依赖

iflyMSC - 科大讯飞语音SDK。讯飞语音SDK是一种基于讯飞人工智能(AI)技术的软件开发工具包,可用于移动设备应用程序的语音识别、口语合成、语义分析和声纹识别等功能。该SDK允许开发人员将讯飞语音服务集成到自己的应用程序中,提供与讯飞云的服务器进行交互的接口。

二、已实现功能

2.1 总体功能结构图

如图为程序主要功能结构图。程序提供了从录制小朋友讲故事到给予小朋友多维度智能反馈全过程的功能。
notion image

2.2 具体实现功能

2.2.1 语音识别儿童讲故事

实现了录制儿童讲故事语音并将其语音识别转化为文本的功能。因为gpt的API接受的参数为字符串类型,所以需要将儿童所讲出的语音内容,通过语音识别技术,转化为文本,然后才能提交给gpt模型进行相应分析。
notion image
notion image

2.2.2 故事完整性分析

在儿童讲完故事后,ai模型会自动对故事的完整程度进行分析识别,针对故事的完整性和丰富性给出建议。其主要方式为,对比所讲关键词语内置关键词,通过其差别给出相应的智能化建议
notion image
notion image

2.2.3 扩展词汇

在针对儿童没有讲到的关键词,对此进行补充和扩展。如给出几个高级词汇并建议儿童替换掉其讲述语句中的低级词汇,促进儿童用词的规范,培养儿童语文能力。
notion image

2.2.4 反馈生成

对于儿童故事的反馈不仅仅是文本形式,我们的程序还可进行多维度反馈,如视觉听觉等。程序将把没有讲到的地方标记出来,同时给予一定相关联的声音,给予儿童视听联想反馈。
notion image
notion image

三、优缺点分析

图说心语有以下优点:
  • 界面友好,操作简单。 我们注重设计一个儿童友好的界面,使其易于理解和操作,让儿童能够轻松使用该程序。
  • 功能丰富,多方面对儿童讲故事进行评估和反馈。 我们的程序不仅可以进行语音识别,还能对故事的完整程度进行评估,并提供相应的建议和指导,帮助儿童改进讲故事的能力。
  • 反馈形式多样,试听结合。 我们采用图像和声音反馈的方式,通过标记未讲到的部分和播放水流声音等方式,吸引儿童的注意力,激发他们的兴趣,并增强他们的参与感。
  • 使用最新技术,提供高质量和多样化的反馈和指导。 我们利用先进的人工智能技术(gpt4、科大讯飞大模型),为儿童提供准确、具有个性化的反馈和指导,使他们能够获得高质量的教育体验,激发他们的学习兴趣和动力。
  • 内置禁词,情景模拟。 因为Chat-GPT的语料库主要来自西方媒体,其中的价值观与我们的价值观不完全一致,为了确保正确传达价值观的使命,我们对一些词汇进行了禁用。同时,为了让AI的语气更加亲切贴合家长的口吻,我们进行了调整,使其不再冷冰冰,以为孩子营造一个良好的学习环境。
同时,也有以下缺点:
  • 内置素材单一 由于是展示demo,现阶段我们的图像、文本素材是内置的,目前就只有“小鸡河边散步”这一个故事,具体内容还有待扩充。
  • GPT汉化问题 考虑到GPT技术识别中文的逻辑是先转成英文再将英文转成中文,这其中可能会有句子不符合中文文法逻辑,可能会存在一定的偏差或不准确,需要人工监督和调整。
  • 外部接口导致程序运行不稳定 我们的程序依赖于外部的语音识别接口,可能会受到网络环境和语音质量的影响,导致识别错误或延迟。同时,讯飞语音识别和合成的 SDK会和 swift 不兼容,导致程序的稳定性较弱。
 

评论
Loading...