山东大学 创新项目实训 雅思口语老师(7)

本周主要任务:前后端链接

一、修改删除冗余方法

前端删除、修改了一些冗余的方法,比如两个onspeak和sendspeak,精简了一下代码。

修改了一下前端post方法,调整为向/chat/voice路由下的post方法

 然后针对返回的response,尝试寻找userMsg是以何种形式传给前端的

打印后发现所需要的userMsg在data的body内,然后使用response.data.data.body.userMsg或者score来获取。在获取后前端试写了一个{aaa}来展示数据,如下


发现可以实现,这一步工作结束。然后等待其他进度完善,再做进一步的工作。

二、WebTtsService的编写

要对文本转语音功能进行了实现,可以实现前端返回文本内容后,然后利用Service类,进行基本的文本转语音,传给前端一个base64码。Service类实现如下:

三、bug修改


1.只能生成第一次的语音

这里有一个小bug就是实现后,前端每次只能生成第一次的语音文件。然后经过分析保存语音base64码的方法得知,问题可能出现在wsCloseFlag的管理上,在这个方法体内,我利用了websocketWork方法来进行文本合成语音,并且在合成完成后返回音频的base64编码字符串。但是在调用这一方法的同时,也在等待flag的状态变化,以确定语音合成过程是否完成。

但是在第一次调用这一个方法的时候,可以正确等待语音合成并返回音频,但是在后续调用时,检查代码发现flag已经呗设置为true,导致立即返回,而没有等待语音合成完成。

为了解决这个问题,解决如下

2.查看前端打印的信息audio为''

发现这个问题由两处产生

1.后端未生成音频文件或返回音频数据:后端生成音频文件失败,于是无法将其返回给前端。后端没有生成音频文件或者生成的文件为空,那么在前端就会收到空字符串。

2.前端未正确处理音频数据:即使后端返回了正确的音频数据,但如果前端在处理这些数据时出现了问题,也会导致空字符串的情况。

后端调整了flag,然后在前端调整了获取的内容、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值