语音交互服务 SIS-Websocket握手请求:wss-URI

时间:2025-01-26 10:45:24

wss-URI

  • wss-URI格式

    wss /v1/{project_id}/rtts

  • 参数说明
    表1 参数说明

    名称

    是否必选

    说明

    project_id

    项目编号。获取方法,请参见获取项目ID

    表2 请求Header参数

    参数

    是否必选

    参数类型

    描述

    X-Auth-Token

    String

    用户Token。

    用于获取操作API的权限。获取方法请参见认证鉴权。响应消息头中X-Subject-Token的值即为Token。

    Enterprise-Project-Id

    String

    企业项目ID。SIS支持通过企业项目管理(EPS)对不同用户组和用户的资源使用,进行分账。

    获取方法:进入“企业项目管理”页面,单击企业项目名称,在企业项目详情页获取Enterprise-Project-Id(企业项目ID)。

    企业项目创建步骤请参见用户指南。

    说明:

    账户创建企业项目后,在传参时,有以下三类场景。

    • 携带正确的ID,正常使用SIS服务,账单归到企业ID对应的企业项目中。
    • 携带错误的ID,正常使用SIS服务,账单的企业项目会被分类为“default”。
    • 不携带ID,正常使用SIS服务,账单的企业项目会被分类为“default”。
  • 请求示例(伪码)
    wss://{endpoint}/v1/{project_id}/rttsRequest Header:X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG...

    Python3语言请求代码示例

    # -*- coding: utf-8 -*-# 此demo仅供测试使用,强烈建议使用sdk。需提前安装websocket-client, 执行pip install websocket-clientimport websocketimport threadingimport timeimport jsondef rtts_demo():    url = 'wss://{{endpoint}}/v1/{{project_id}}/rtts'  # endpoint和project_id需替换    text = '待合成文本'    token = '用户对应region的token'    header = {        'X-Auth-Token': token    }    body = {        'command': 'START',        'text': text,        'config': {            'audio_format': 'pcm',            'property': 'chinese_xiaoyu_common',            'sample_rate': '8000'        }    }    def _on_message(ws, message):        if isinstance(message, bytes):            print('receive data length %d' % len(message))        else:            print(message)    def _on_error(ws, error):        print(error)    ws = websocket.WebSocketApp(url, header, on_message=_on_message, on_error=_on_error)    _thread = threading.Thread(target=ws.run_forever, args=(None, None, 30, 20))    _thread.start()    time.sleep(1)    ws.send(json.dumps(body), opcode=websocket.ABNF.OPCODE_TEXT)    time.sleep(10)    ws.close()if __name__ == '__main__':    rtts_demo()

    Java语言请求代码示例

    import okhttp3.OkHttpClient;import okhttp3.Request;import okhttp3.Response;import okhttp3.WebSocket;import okhttp3.WebSocketListener;import okio.ByteString;/** * 此demo仅供测试使用, 强烈建议使用sdk * 使用前需已配置okhttp、okio jar包。jar包可通过下载SDK获取。 */public class RttsDemo {  public void rttsDemo() {    try {      // endpoint和projectId需要替换成实际信息。      String url = "wss://{{endpoint}}/v1/{{project_id}}/rtts";      String token = "对应region的token";      String text = "待合成文本";      OkHttpClient okHttpClient = new OkHttpClient();      Request request = new Request.Builder().url(url).header("X-Auth-Token", token).build();      WebSocket webSocket = okHttpClient.newWebSocket(request, new MyListener());      webSocket.send("{\"command\": \"START\", \"text\":\"" + text          + "\", \"config\": {\"audio_format\": \"pcm\", \"property\": \"chinese_xiaoyu_common\"}}");      Thread.sleep(10000);      webSocket.close(1000, null);    } catch (Exception e) {      e.printStackTrace();    }  }  class MyListener extends WebSocketListener {    @Override    public void onOpen(WebSocket webSocket, Response response) {      System.out.println("conneected");    }    @Override    public void onClosed(WebSocket webSocket, int code, String reason) {      System.out.println("closed");    }    @Override    public void onFailure(WebSocket webSocket, Throwable t, Response response) {      t.printStackTrace();    }    @Override    public void onMessage(WebSocket webSocket, String text) {      System.out.println(text);    }    public void onMessage(WebSocket webSocket, ByteString bytes) {      byte[] data = bytes.toByteArray();      System.out.println("receive data length is " + data.length);    }  }  public static void main(String[] args) {    RttsDemo rttsDemo = new RttsDemo();    rttsDemo.rttsDemo();  }}

support.huaweicloud.com/api-sis/sis_03_0113.html