山东大学项目实训(八)

一、handleChatRequest()方法

  • @Autowired 注解用于自动装配 BaiduWenXinChatService 类的实例,它将由 Spring 容器负责实例化和注入。
  • @Resource 注解用于注入 WebTtsService 类的实例。

方法名为'handleChatRequest',参数为Map,获取前端的Data:userMsg。然后先利用另一个生成ai对话的文心一言集成的方法,然后调用合成方法生成音频,用 webTtsServicesynthesizeTextToSpeech 方法,将机器人的回复转换为语音,并获取语音的 Base64 编码字符串。将响应结果放入Map对象中,返回结果。

二、将语音文件保存到本地文件的尝试

当WebSocket收到音频数据时,它会将这些数据写入到一个 ByteArrayOutputStream 中,但目前代码中没有直接将其保存到本地文件。可以在收到数据并成功完成请求后,将内容写入到一个文件中。

 还有一个问题就是每次只有一个文件,发现将文件OUTPUT-PATH设置为了静态常量,就会导致只有一个文件产生。

在修改后认为该功能不必要,而且不影响后续的操作,例如存入数据库base64码等,于是放弃了这一功能的实现。

三、debug

1.bug1

产生了错误:GET blob:http://localhost:3030/3d7c03bd-0d9e-4030-a0cb-418ab8922357 net::ERR_REQUEST_RANGE_NOT_SATISFIABLE

这个错误通常表示浏览器试图请求的资源范围超出了服务器的响应范围,导致无法满足请求。这可能是由于请求的资源在服务器端不存在或者请求的范围超出了资源的有效范围所致。

代码中,blob:http://localhost:3030/3d7c03bd-0d9e-4030-a0cb-418ab8922357 看起来像是一个 Blob URL,通常用于表示在浏览器中生成的临时二进制数据。然而,它应该是一个有效的 Blob URL,并且服务器应该能够正确地响应该 URL。

2.bug2

java.lang.NullPointerException 表示尝试访问或操作一个 null 对象。在你的代码中,错误发生在 Base64.getDecoder().decode(myJsonParse.data.audio) 行,这表明 myJsonParse.data.audio 可能为 null

为了修复这个问题,需要在访问 myJsonParse.data.audio 之前进行空值检查。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值