aiChat语音聊天机器人,1天完成产品原型技术验证

aiChat产品原型主要目的:通过测试,选择运行稳定、语音质量好的AI云服务,其次考虑未来切换使用多家云服务商的语音处理接口。

客户端使用Java Swing开发,后台服务使用Java + Spring Boot,集成AI语音处理云服务、机器人聊天云服务,1天完成产品原型的开发和技术验证。



AI人工智能随着深度学习的快速发展而进入普遍应用,语音处理技术也达到了商用程度,AI开口说话已经成为现实。几大云服务商都开放了AI开发平台,语音处理技术已经商用,使得AI应用开发更加方便,专注于产品创意和市场。

Java是应用开发使用的主流语言,Spring Boot是常用框架,有非常丰富的组件和易用的功能。后台API服务脚手架从实际项目中整理升华,可直接扩展开发并应用于真实生产场景。


一,架构特点

1,客户端使用Java开发,易于延伸到其他平台客户端,Android, iOS

2,API服务基于Spring Boot开发,是常用框架,有丰富的组件和易用的功能

3,将AI云服务接口调用逻辑封装在API服务中,运行稳定易扩展,不绑定某一家云服务,预留选择余地

4,快速验证技术可行性,引入Redis本地缓存机制,扩展优化空间


二,拓扑图

aiChat语音聊天机器人,1天完成产品原型技术验证

三,客户端运行时序

aiChat语音聊天机器人,1天完成产品原型技术验证

四,系统架构:API服务+Redis缓存

aiChat语音聊天机器人,1天完成产品原型技术验证

五,为什么要使用Redis缓存?

1,提升用户体验。调用AI云服务时,网络延迟客观存在,读取缓存将减少客户端等待时间。

2,业务场景中存在重复数据,比如语音合成时,如果参数相同,同样的文字得到的语音数据是一样的。

3,为了增强语音聊天的场景属性,接入IP地址定位服务,请求得到的地址信息可以使用Redis缓存起来。


六,时序图

aiChat语音聊天机器人,1天完成产品原型技术验证

七,系统扩展

欢迎关注AI应用开发、学习Java的同学,学习练手,完善功能,创建Pull Request提交代码。

1,开发需要的客户端,Android,iOS等操作系统

2,开发客户端页面,增加聊天场景:学我说话、和我聊天,等等

3,完善参数配置,人物、性别、语速,等等

4,优化API服务缓存,降低响应延迟

5,优化音频数据缓存,接入云存储服务

6,接入多家AI语音处理云服务:科大讯飞、阿里云、华为AI,测试语音识别准确度,语音合成的音频质量

八,Spring Boot集成HttpClient,调用AI云服务

HttpClient是一个高效的、功能丰富的HTTP客户端编程工具包,以编程的方式通过API传输和接收HTTP消息。

1,封装HttpService,简化请求调用

2,实现ResponseHandler处理返回结果,在返回结果为JSON对象时,转换成JSONObject

3,在返回二进制数据时,从Entity中读取内容,从Header中获取文件名称、文件类型等信息

aiChat语音聊天机器人,1天完成产品原型技术验证

九,Spring Boot集成Redis

Redis是一个高性能的key-value数据库,常用于搭建缓存系统,提高并发响应速度。Spring Boot集成Redis只需简单配置。

aiChat语音聊天机器人,1天完成产品原型技术验证

十,遇到问题和解决方法

问题:接入百度AI语音识别云服务时踩到的一个坑,ContentType读取不到Charset

原因:不是所有Web服务器都正确返回了内容编码格式,增加一个错误判断。

解决:当ContentType.getCharset()读取不到Charset时,默认使用UTF-8

aiChat语音聊天机器人,1天完成产品原型技术验证


分享到:


相關文章: