我这边也是,python后端就没问题
接入讯飞星火4.0Ultra总是显示WebSocket connection失败,大佬请看看?测试的时候正常填入了三个鉴权参数信息 Page({ /** * 页面的初始数据 */ data: { httpUrl: 'wss://spark-api.xf-yun.com/v4.0/chat', TEXT: '什么是离心泵', // 地址必须填写,代表着大模型的版本号!!!!!!!!!!!!!!!! modelDomain: '4.0Ultra', // V1.1-V3.5动态获取,高于以上版本手动指定 APPID: '****', // 这里应该是字符串 // 控制台获取填写 APISecret: '***', // 这里应该是字符串 APIKey: '***', // 这里应该是字符串 sparkResult: '', historyTextList: [], // 历史会话信息,由于最大token12000,可以结合实际使用,进行移出 tempRes: '' // 临时答复保存 }, /** * 生命周期函数--监听页面加载 */ onLoad(options) {}, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() {}, /** * 生命周期函数--监听页面显示 */ onShow() { var self = this; self.onWorker(); }, /** * 生命周期函数--监听页面隐藏 */ onHide() {}, /** * 生命周期函数--监听页面卸载 */ onUnload() {}, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() {}, /** * 页面上拉触底事件的处理函数 */ onReachBottom() {}, /** * 用户点击右上角分享 */ onShareAppMessage() {}, // 获取鉴权参数 getWebSocketUrl() { const CryptoJS = require('crypto-js'); const base64 = require('base-64'); var self = this; var httpUrlHost = self.data.httpUrl.substring(8, 28); var httpUrlPath = self.data.httpUrl.substring(28); var url = "wss://" + httpUrlHost + httpUrlPath; console.log(url) var host = "spark-api.xf-yun.com"; var apiKeyName = "api_key"; var date = new Date().toGMTString(); var algorithm = "hmac-sha256"; var headers = "host date request-line"; var signatureOrigin = "host: ".concat(host, "\ndate: ").concat(date, "\nGET ").concat(httpUrlPath, " HTTP/1.1"); var signatureSha = CryptoJS.HmacSHA256(signatureOrigin, self.data.APISecret); var signature = CryptoJS.enc.Base64.stringify(signatureSha); var authorizationOrigin = apiKeyName + "=\"" + self.data.APIKey + "\",algorithm=\"" + algorithm + "\",headers=\"" + headers + "\",signature=\"" + signature + "\""; var authorization = base64.encode(authorizationOrigin); url = url + "?authorization=" + authorization + "&date=" + encodeURI(date) + "&host=" + host; console.log(url) return url; // 主要是返回地址 }, /** * 创建WebSocket连接 */ onWorker: function () { const self = this; // 发送消息参数 var params = { "header": { "app_id": self.data.APPID }, "parameter": { "chat": { "domain": "4.0Ultra", "temperature": 0.5, "max_tokens": 4096 } }, "payload": { "message": { "text": [ {"role":"system","content":"你是一个设备专家,请回答用户的问题。"} , {"role": "user", "content": "你是谁"} , {"role": "assistant", "content": self.data.historyTextList} ] } } } // 根据文档要求 历史对话添加参数 self.data.historyTextList.push({ "role": "user", "content": self.data.TEXT }); // 获取webscoket 链接地址 let url = this.getWebSocketUrl(); console.log(url); // 初始化 wx.connectSocket({ url: url, success(res) { console.log('success', res); // 修正分号 }, fail(res) { console.log('fail', res) } }) // 连接成功 wx.onSocketOpen(function (res) { console.log("webscoket 链接成功!"); console.log(res); console.log(params); wx.sendSocketMessage({ data: JSON.stringify(params) }) }) // 接收数据 wx.onSocketMessage(function (data) { console.log(data); var objData = JSON.parse(data.data); console.log(objData); }) // 连接失败 wx.onSocketError(function () { console.log('websocket连接失败!'); }) // 断开连接 wx.onSocketClose(function (res) { console.log('WebSocket 已关闭!') }) }, })
04-20我也是遇到了同样的问题,播放很卡,一帧一帧的,请问大佬解决了吗?
微信小程序怎么实现将流式数据合成语音返回的ArrayBuffer音频一边播放一边拼接吗?微信小程序怎么实现将流式数据合成语音返回的ArrayBuffer音频一边播放一边拼接吗? 将收到的音频一条条播放成不了一句话,一卡一卡的,拼接成完整的就没问题。
04-20这个怎么解决啊,我也遇到了,识别无结果。
调用微信AI开放接口提交语音后返回voice_Id为空,获取识别结果不正确?场景: 1、公众号上送语音后,我这边后台通过获取素材接口下载语音文件到本地。 2、通过jave工具将下载的amr文件转为mp3文件。 3、调用AI开放接口提交mp3语音后返回{"errcode":0,"errmsg":"ok","voice_id":""},我在提交语音的时候上送的voice_id是之前微信语音消息的MediaId。 4、最后调用了获取语音识别结果的接口,返回{"result":"你来。","is_end":true}识别结果不正确,大部分场景下识别都不准确,想问一下是否是我得voice_id有问题?
04-18我调用也是没有结果,上传了语音文件voice_id返回为空。语音文件是recordManager生成的临时文件。 [图片] [图片] [图片]
AI开放接口语音识别功能的问题?该文档描述了微信AI开放接口:https://developers.weixin.qq.com/doc/offiaccount/Intelligent_Interface/AI_Open_API.html 我想使用其中的语音识别功能,按照页面的描述,使用语音识别,分为2步: 1)发起POST提交MP3音频文件 [图片] 2)获取语音识别的文本结果 [图片] 但还有很多不清楚的地方,1,是这些请求头header是啥,尤其是content-type是什么?2,“语音内容方body”是什么意思?二进制格式吗?如果是,又要何种编码?3,文件格式format要等于 "mp3" 吗? 这2步http请求,我都实现了,但可能存在格式错误,返回的都是errMsg: "request:ok",也没有报错,errcode也是0,但是识别文本为空。 有没有大佬实现了?给点案例瞧瞧
04-18