日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

浅析在公众号中使用弛声sdk为什么上传解析慢

發布時間:2024/4/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浅析在公众号中使用弛声sdk为什么上传解析慢 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

最近在開發語音評測功能的時候,發現在公眾號中使用弛聲sdk進行錄音評測的時候,錄音結束后到返回評測結果比較慢,在做小程序相關功能的時候則明顯快多了。那么這里面有什么不同么?為什么公眾號sdk這個過程耗時更長?

公眾號sdk

先來看看公眾號sdk的源碼
http://api.chivoxapp.com/js/wx/AiEngine.min.js

需要格式化一下便于查看。其中錄音結束處理的部分代碼流程如下:

AiEngine.prototype.stopRecord = function (options) {var that = this;wx.ready(function () {wx.stopRecord({success: function (res) {...that._lastVoice = {localId: res.localId,tokenId: that._param.request.tokenId,startTime: that._startTime,endTime: that._endTime,duration: that._endTime - that._startTime};that._voices[that._lastVoice.tokenId] = that._lastVoice;that.uploadFile(that._token, that._lastVoice, that._param);...},fail: function (res) {...}});});};

可以看到當停止錄音調用了uploadFile函數,這個函數的代碼如下:

AiEngine.prototype.uploadFile = function (token, file, param) {var that = this;wx.ready(function () {wx.uploadVoice({localId: file.localId,isShowProgressTips: param.isShowProgressTips,success: function (res) {file.serverId = res.serverId;that._httpClient.Post({...});},fail: function (res) {...}});});};

可以看到先調用了微信的uploadVoice將聲音文件上傳到微信的服務器上,然后將音頻文件的url和其他信息post給弛聲,這樣弛聲再通過url下載音頻分析。

由于中間有一步上傳到微信服務器的過程,然后弛聲再下載,所以無形的增加了流程的時間。

小程序sdk

但是我在使用小程序sdk的時候,發現上次解析快了很多,難道有什么不同?

再來看看小程序的js文件https://api.chivoxapp.com/js/wxa/AiEngine.min.js

代碼中,處理錄音部分的代碼如下:

c.prototype.startRecord = function(e) {var d = this;wx.startRecord({success: function(f) {if (d._endTime === 0) {...} else {if (typeof f === "undefined") {...} else {d._lastVoice = {localId: f.tempFilePath,tokenId: e.request.tokenId,startTime: d._startTime,endTime: d._endTime,duration: d._endTime - d._startTime};d._voices[d._lastVoice.tokenId] = d._lastVoice;d.uploadFile(d._token, d._lastVoice, e)}}},fail: function() {...}})};

可以看到當停止錄音調用了uploadFile函數,這個函數代碼如下:

c.prototype.uploadFile = function(e, d, g) {var f = this;wx.uploadFile({url: f._host + "/" + f._route + "/eval",filePath: d.localId,name: f._utils.generateGuid(),...})};

可以看到這里就與公眾號sdk有些差異,這里調用了微信的uploadFile直接將音頻文件上傳給弛聲解析。這樣就比公眾號少了一步上傳到微信服務器再下載的過程,自然等待時間就會少很多。

原因

那么為什么公眾號不能直接上傳給弛聲,因為不論公眾號還是小程序錄音后得到的都不是音頻文件的路徑,而是一個微信自定義格式的文件ID,通過這個ID我們無法直接拿到文件路徑。而小程序提供了一個通過ID就可以將文件上傳到自定義服務器的api,公眾號只提供了一個通過ID上傳到微信服務器的api,所以公眾號處理起來要慢一些

總結

以上是生活随笔為你收集整理的浅析在公众号中使用弛声sdk为什么上传解析慢的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。