H5录音并上传到阿里oss进行语音评测

业务需求:h5进行录音并将录音文件进行语音评测打分。

步骤分析:

第一步:前端h5进行录音采集,然后发送给后端一个临时的录音文件。

第二步:后端接收录音文件并保存在本地目录下。

第三步:将保存在本地的录音文件上传到阿里云OSS

第四步:将生成的阿里云地址经过base64加密,走语音识别接口,最后返回评分。

补充说明:

补充一:为什么不直接使用本地地址进行识别?

答:如下图评测文件api参数描述可见,评测文件只识别阿里云oss地址。

阿里云语音评测参数截图

补充二:为什么文件不直接上传oss,还得先放到项目本地再上传oss?

oss接口sdk

oss文件上传的sdk上已经很明确了,上传的文件需要本地路径。

具体操作:

(1)前端录音文件上传demo。H5录音前端demo

(2)前端发送给后端的文件形式是什么呢?network中的显示的如下图:

前端传给后端接口的数据

为了一探究竟,我决定从服务端继续打印该参数

后端获取到的数据打印

从上图可以看出,前端发给后端的只是一个tmp临时文件路径。

最开始我做到这里的时候,第一反应是把临时文件读成数据流然后写入到我们自定义的文件中,后来通过请教大佬才知道,laravel和symfony都有类似的方法,能够将临时文件储存子啊本地,话不多说,直接上代码。

上传文件到本地代码

(3)上两步文件已经到了服务端本地,接下来上传oss

本地文件上传oss代码片段

(4)使用评测接口对oss文件进行评测

对oss进行评测

总结:本片文章就是典型的倒着推,最终确定下来思路。由于评测的局限性导致了使用阿里云oss,因为oss的局限性需要上传本地,最终实现了需求。但是这个需求我吃亏了,在开发成功后发现测试包没有次数了,而接下来的购买次数价格更是吓人,所以接下来我将更新一篇放弃阿里云,选择腾讯云的语音评测开发博客。

你可能感兴趣的:(H5录音并上传到阿里oss进行语音评测)