我在使用科大讯飞时,遇到的问题大概就是,那个讯飞的文档真的不好理解(个人观点),,哈哈哈 弄了真的挺久搞出来 ,希望其他人给提供一点灵感吧 !
小白勿喷!!!
接下来是我的代码
需要pnpm install 两个包 分别是 :js-base64 和 crypto-js
const APPID = "你的appID";
const API_SECRET = "你的API_SECRET ";
const API_KEY = "你的API_KEY ";
import CryptoJS from 'crypto-js';
import { Base64 } from 'js-base64';
//正确的URL
function getWebSocketUrl(apiKey, apiSecret) {
var url = "wss://tts-api.xfyun.cn/v2/tts";
var host = 'tts-api.xfyun.cn'
var date = new Date().toGMTString();
var algorithm = "hmac-sha256";
var headers = "host date request-line";
var signatureOrigin = `host: ${host}\ndate: ${date}\nGET /v2/tts HTTP/1.1`;
var signatureSha = CryptoJS.HmacSHA256(signatureOrigin, apiSecret);
var signature = CryptoJS.enc.Base64.stringify(signatureSha);
var authorizationOrigin = `api_key="${apiKey}", algorithm="${algorithm}", headers="${headers}", signature="${signature}"`;
var authorization = btoa(authorizationOrigin);
url = `${url}?authorization=${authorization}&date=${date}&host=${host}`;
return url;
}
// 文本编码
function encodeText (text, encoding) {
switch (encoding) {
case 'utf16le' : {