华为云用户手册

  • 请求示例 “endpoint”即调用API的请求地址,不同服务不同区域的“endpoint”不同,具体请参见终端节点。 调用 语音合成 API,将文本合称为语音,并调整语音的音色、语速、音高、音量 POST https://{endpoint}/v1/{project_id}/ttsRequest Header:Content-Type: application/json X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG... Request Body: { "text": "欢迎使用语音云服务。", "config": { "audio_format": "wav", "sample_rate": "8000", "property": "chinese_xiaoyan_common", "speed": 10, "pitch": 10, "volume": 60 } } 使用Python3语言调用语音合成API,将文本合称为语音,并调整语音的音色、语速、音高、音量 # -*- coding: utf-8 -*-# 此demo仅供测试使用,强烈建议使用sdk。需提前安装requests,执行pip install requestsimport requestsimport jsondef stts_demo(): url = 'https://{{endpoint}}/v1/{{project_id}}/tts' # endpoint和project_id需替换 token = '用户对应region的token' text = '待识别的文本' header = { 'Content-Type': 'application/json', 'X-Auth-Token': token } body = {'text': text} resp = requests.post(url, data=json.dumps(body), headers=header) print(resp.text)if __name__ == '__main__': stts_demo() 使用Java语言调用语音合成API,将文本合称为语音,并调整语音的音色、语速、音高、音量 import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.HttpURLConnection;import java.net.URL;/** * 此demo仅供测试使用,强烈建议使用SDK */public class SttsDemo { public void sttsDemo() { try { // endpoint和projectId需要替换成实际信息。 URL url = new URL("https://{{endpoint}}/v1/{{project_id}}/tts"); String token = "对应region的token"; HttpURLConnection connection = (HttpURLConnection)url.openConnection(); connection.setRequestMethod("POST"); connection.setDoInput(true); connection.setDoOutput(true); connection.addRequestProperty("Content-Type", "application/json"); connection.addRequestProperty("X-Auth-Token", token); OutputStreamWriter osw = new OutputStreamWriter(connection.getOutputStream(), "UTF-8"); String body = "{\"text\": \"123\"}"; osw.append(body); osw.flush(); InputStream is = connection.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8")); while (br.ready()) { System.out.println(br.readLine()); } } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { SttsDemo sttsDemo = new SttsDemo(); sttsDemo.sttsDemo(); }}
  • 响应参数 状态码: 200 表7 响应Body参数 参数 是否必选 参数类型 描述 trace_id 否 String 服务内部的令牌,可用于在日志中追溯具体流程。 在某些错误情况下可能没有此令牌字符串。 result 否 CustomResult object 调用成功表示合成结果,调用失败时无此字段。 表8 CustomResult 参数 是否必选 参数类型 描述 data 否 String 语音数据,以Base64编码格式返回。 用户如需生成音频,需要将Base64编码解码成byte数组,再保存为音频,音频格式同“audio_format”参数设置的值,默认为wav格式。 语音合成代码示例请参考SDK,SDK已对Base64转音频过程进行封装,可以直接获取音频文件。 状态码: 400 表9 响应Body参数 参数 参数类型 描述 error_code String 调用失败时的错误码。 调用成功时无此字段。 error_msg String 调用失败时的错误信息。 调用成功时无此字段。
  • 请求参数 表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”。 表3 请求Body参数 参数 是否必选 参数类型 描述 text 是 String 待合成的文本,文本长度限制不大于500字符。 config 否 TtsConfig object 语音合成配置信息。 表4 TtsConfig 参数 是否必选 参数类型 描述 audio_format 否 String 语音格式头:wav、mp3、pcm 默认:wav 父节点:config sample_rate 否 String 采样率:16000、8000赫兹 默认:8000 父节点:config property 否 String 语音合成特征字符串,组成形式为{language}_{speaker}_{domain},即“语种_人员标识_领域”。发音人分为普通发音人和精品发音人,每次调用价格相同,针对精品发音人,每50字计一次调用,不足50字按一次计;普通发音人每100字计一次调用,不足100字按一次计。其中1个汉字、1个英文字母或1个标点均算作1个字符,具体费用请参考价格计算器。 普通发音人:取值范围请参考表 普通发音人property取值范围。 精品发音人:区域仅支持cn-north-4、cn-east-3,暂时不支持音高调节,取值范围请参考表 精品发音人property取值范围。使用精品发音人如果报错SIS.0411,请检查是否符合使用约束。 默认:chinese_xiaoyan_common,中文发音,小燕,温柔女声发音人。 父节点:config speed 否 Integer 语速。 取值范围:-500~500 默认值:0 父节点:config 说明: 当取值为“0”时,表示一个成年人正常的语速,约为250字/分钟。设置该值时,语速和数值没有绝对的映射关系。 pitch 否 Integer 音高。 取值范围: -500~500 默认值:0 父节点:config volume 否 Integer 音量。 取值范围:0~100 默认值:50 父节点:config 表5 普通发音人property取值范围 名称 property取值 类型 使用场景 支持采样率(Hz) 小琪 chinese_xiaoqi_common 标准女声 客服 8k/16k 小雯 chinese_xiaowen_common 柔美女声 客服 8k/16k 小宇 chinese_xiaoyu_common 标准男声 电销 8k/16k 小夏 chinese_xiaoxia_common 热情女声 电销 8k/16k 小燕 chinese_xiaoyan_common 温柔女声 文学 8k/16k 小倩 chinese_xiaoqian_common 成熟女声 文学 8k/16k 小王 chinese_xiaowang_common 童声 童声 8k/16k 小呆 chinese_xiaodai_common 呆萌童声 童声 8k/16k 小婧 chinese_xiaojing_common 俏皮女声 新闻播报 8k/16k 小宋 chinese_xiaosong_common 激昂男声 新闻播报 8k/16k cameal english_cameal_common 英文女声 英文 8k/16k 表6 精品发音人property取值范围 名称 property取值 类型 使用场景 支持采样率(Hz) 华小夏 chinese_huaxiaoxia_common 热情女声 电销 8k/16k 华小唯 chinese_huaxiaowei_common 嗲柔女声 电销 8k/16k 华小颜 chinese_huaxiaoyan_common 严厉女声 电销 8k/16k 华晓阳 chinese_huaxiaoyang_common 朝气男声 电销 8k/16k 华晓刚 chinese_huaxiaogang_common 利落男声 客服 8k/16k 华小雯 chinese_huaxiaowen_common 柔美女声 客服 8k/16k 华小美 chinese_huaxiaomei_common 温柔女声 客服 8k/16k 华小飞 chinese_huaxiaofei_common 朝气男声 客服 8k/16k 华小璐 chinese_huaxiaolu_common 知性女声 新闻播报 8k/16k 华小靓 chinese_huaxiaoliang_common 嘹亮女声 新闻播报 8k/16k 华晓东 chinese_huaxiaodong_common 成熟男声 新闻播报 8k/16k 华小蕊 chinese_huaxiaorui_common 知性女声 中英混合 16k 华小萱 chinese_huaxiaoxuan_common 台湾女声 方言 8k/16k 华小闽 chinese_huaxiaomin_common 闽南女声 方言 8k/16k 华小舒 chinese_huaxiaoshu_common 舒缓女声 文学 8k/16k 华女侠 chinese_huanvxia_literature 武侠女生(只支持http形式调用) 文学 16k 华晓悬 chinese_huaxiaoxuan_literature 悬疑男声(只支持http形式调用) 文学 16k 华小龙 chinese_huaxiaolong_common 朝气男声 中英混合 16k 华小汝 chinese_huaxiaoru_common 柔美女声 中英混合 8k/16k 华小涵 chinese_huaxiaohan_common 知性女声 中英混合 8k/16k 华小宁 chinese_huaxiaoning_common 沉稳男声 中英混合 8k/16k 华小珍 chinese_huaxiaozhen_common 温柔女声 中英混合 8k/16k 华小曼 chinese_huaxiaoman_common 温柔女声 中英混合 16k 华小芳 chinese_huaxiaofang_common 朝气女声 中英混合 16k 华小筠 chinese_huaxiaojun_common 成熟女声 中英混合 16k alvin english_alvin_common 成熟男声 纯英文 8k/16k amy english_amy_common 成熟女声 纯英文 8k/16k
  • 请求消息 表1 参数说明 名称 参数类型 是否必选 说明 command String 是 需设置为START,表示开始识别请求。 text String 是 待合成的文本,chinese_huaxiaomei_common,chinese_huaxiaofei_common,chinese_huaxiaolong_common,chinese_huaxiaorui_common,english_amy_common,english_alvin_common发音人支持长度不大于10000字符的文本,其他发音人支持长度不大于500字符的文本。 config Object 否 配置信息。请参考表2。 表2 config数据结构 名称 参数类型 是否必选 说明 audio_format String 否 语音格式头:pcm、alaw、ulaw、mp3。 默认:pcm sample_rate String 否 采样率:16000、8000赫兹。 默认:8000 property String 否 可参考表3和表4。 默认:chinese_xiaoyan_common 实时语音合成和语音合成属于同一种资源,按次计费。实时语音合成普通发音人,每100字计一次。精品发音人每50字计一次。 speed Integer 否 语速。 取值范围:-500~500 默认值:0 pitch Integer 否 音高。 取值范围:-500~500 默认值:0 volume Integer 否 音量。 取值范围:0~100 默认值:50 subtitle String 否 是否生成时间戳信息,不使用则不填写。 取值范围: “word_level”:文本级别时间戳 “phoneme_level”:音素级别时间戳 注:chinese_huaxiaomei_common、chinese_huaxiaofei_common支持该功能,其他property暂不支持 表3 普通发音人property取值范围 名称 property取值 类型 使用场景 支持采样率(Hz) 支持audio_format 小琪 chinese_xiaoqi_common 标准女声 客服 8k/16k pcm、alaw、ulaw 小宇 chinese_xiaoyu_common 标准男声 电销 8k/16k pcm、alaw、ulaw 小燕 chinese_xiaoyan_common 温柔女声 文学 8k/16k pcm、alaw、ulaw 小王 chinese_xiaowang_common 童声 童声 8k/16k pcm、alaw、ulaw 表4 精品发音人property取值范围 名称 property取值 类型 使用场景 支持采样率(Hz) 支持audio_format 华小美 chinese_huaxiaomei_common 温柔女声 客服 8k/16k pcm、mp3 华小飞 chinese_huaxiaofei_common 朝气男声 客服 8k/16k pcm、mp3 华小汝 chinese_huaxiaoru_common 柔美女声 中英混合 8k/16k pcm 华小涵 chinese_huaxiaohan_common 知性女声 中英混合 8k/16k pcm 华小蕊 chinese_huaxiaorui_common 知性女声 中英混合 16k pcm、mp3 华小龙 chinese_huaxiaolong_common 朝气男声 中英混合 16k pcm、mp3 华小珍 chinese_huaxiaozhen_common 温柔女声 中英混合 8k/16k pcm alvin english_alvin_common 成熟男声 纯英文 8k/16k pcm amy english_amy_common 成熟女声 纯英文 8k/16k pcm
  • 示例 { "command": "START", "text": "欢迎使用语音云服务。", "config": { "audio_format": "pcm", "sample_rate": "8000", "property": "chinese_xiaoyan_common", "speed": 10, "pitch": 10, "volume": 60 }}
  • 终端节点 终端节点即调用API的请求地址,不同服务不同区域的终端节点不同。 目前 语音交互 服务 一句话识别 、录音文件识别支持以下地区和终端节点: 当前服务仅支持北京和上海区域,后续会陆续上线其他区域。 华北-北京四,推荐的区域,支持一句话识别、录音文件识别、 实时语音识别 、语音合成和热词等接口。 华东-上海一,推荐的区域,支持一句话识别、录音文件识别、实时 语音识别 、语音合成和热词等接口 。 一句话识别,录音文件识别支持的终端节点: 表1 一句话识别、录音文件识别 区 域名 称 区域 终端节点(Endpoint) 协议类型 华北-北京四 cn-north-4 sis-ext.cn-north-4.myhuaweicloud.com sis-ext.cn-north-4.myhuaweicloud.cn https 华东-上海一 cn-east-3 sis-ext.cn-east-3.myhuaweicloud.com sis-ext.cn-east-3.myhuaweicloud.cn https 实时语音识别( RASR)支持的终端节点: 表2 实时语音识别 区域名称 区域 终端节点(Endpoint) 协议类型 华北-北京四 cn-north-4 sis-ext.cn-north-4.myhuaweicloud.com sis-ext.cn-north-4.myhuaweicloud.cn Websocket 华东-上海一 cn-east-3 sis-ext.cn-east-3.myhuaweicloud.com sis-ext.cn-east-3.myhuaweicloud.cn Websocket 语音合成支持的终端节点: 表3 语音合成 区域名称 区域 终端节点(Endpoint) 协议类型 华北-北京四 cn-north-4 sis-ext.cn-north-4.myhuaweicloud.com sis-ext.cn-north-4.myhuaweicloud.cn https 华东-上海一 cn-east-3 sis-ext.cn-east-3.myhuaweicloud.com sis-ext.cn-east-3.myhuaweicloud.cn https 实时语音合成服务支持的终端节点: 表4 实时语音合成 区域名称 区域 终端节点(Endpoint) 协议类型 华北-北京四 cn-north-4 sis-ext.cn-north-4.myhuaweicloud.com sis-ext.cn-north-4.myhuaweicloud.cn Websocket 华东-上海一 cn-east-3 sis-ext.cn-east-3.myhuaweicloud.com sis-ext.cn-east-3.myhuaweicloud.cn Websocket 热词(一句话识别、录音文件识别、实时语音识别中的热词)支持服务终端: 表5 热词: 区域名称 区域 终端节点(Endpoint) 协议类型 华北-北京四 cn-north-4 sis-ext.cn-north-4.myhuaweicloud.com sis-ext.cn-north-4.myhuaweicloud.cn https 华东-上海一 cn-east-3 sis-ext.cn-east-3.myhuaweicloud.com sis-ext.cn-east-3.myhuaweicloud.cn https 父主题: 使用前必读
  • 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(); }}
  • 基本概念 账号 用户注册华为云时的账号,账号对其所拥有的资源及云服务具有完全的访问权限,可以重置用户密码、分配用户权限等。由于账号是付费主体,为了确保账号安全,建议您不要直接使用账号进行日常管理工作,而是创建用户并使用他们进行日常管理工作。 用户 由账号在 IAM 中创建的用户,是云服务的使用人员,具有身份凭证(密码和访问密钥)。 在我的凭证下,您可以查看账号ID和用户ID。通常在调用API的鉴权过程中,您需要用到账号、用户和密码等信息。 区域(Region) 从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象存储、VPC网络、弹性公网IP、镜像等公共服务。Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region。 详情请参见区域和可用区。 可用区(AZ,Availability Zone) 一个AZ是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。 项目 华为云的区域默认对应一个项目,这个项目由系统预置,用来隔离物理区域间的资源(计算资源、存储资源和网络资源),以默认项目为单位进行授权,用户可以访问您账号中该区域的所有资源。如果您希望进行更加精细的权限控制,可以在区域默认的项目中创建子项目,并在子项目中购买资源,然后以子项目为单位进行授权,使得用户仅能访问特定子项目中资源,使得资源的权限控制更加精确。 图1 项目隔离模型 父主题: 使用前必读
  • 约束与限制 所有含英文的热词均需大写,如:Eiffel铁塔(正确示例为:EIFFEL铁塔)。 所有数字均用相应的汉字表示,避免使用阿拉伯数字 ,如:12345服务热线(正确示例为:一二三四五服务热线)。 热词内容仅包含英文和中文,避免出现标点符号、特殊字符或空格,如:。,?.*等。 尽量避免配置单音节的英文单词,避免误召回,如:MAY/TEE等。 使用热词表功能时,同一个项目ID,可以共用热词表,不同的项目ID不能共用热词表。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 用于获取操作API的权限。获取方法请参见认证鉴权。响应消息头中X-Subject-Token的值即为Token。 表3 请求Body参数 参数 是否必选 参数类型 描述 name 是 String 热词表名,不可重复。内容限制为字母,数字,下中划线和井号,长度不超过32字符。 description 否 String 热词表描述,长度不超过255字符。 language 是 String 热词表语言类型。 language取值:chinese_mandarin,表示汉语普通话。 contents 是 Array of String 支持中英混编热词,单个热词只能由英文字母和unicode编码的汉字组成,不能有其他符号,包括空格。 阿拉伯数字需写成汉字或英文(如“一”、“one”)。 单词库支持热词数上限10000。 中文单个热词长度上限32字符,英文为64字符。
  • 请求示例 “endpoint”即调用API的请求地址,不同服务不同区域的“endpoint”不同,具体请参见终端节点。 创建热词表 POST https://{endpoint}/v1/{project_id}/asr/vocabulariesRequest Header:Content-Type: application/jsonX-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG... Request Body:{ "name": "telepower", "description": "telepower 具体描述", "language": "chinese_mandarin", "contents": ["示例"]} 调用热词时,需确保调用热词的区域与创建热词区域一致。如下图位置,可查看创建的热词表所在区域: 图2 查看创建的热词表位置
  • 请求示例 “endpoint”即调用API的请求地址,不同服务不同区域的“endpoint”不同,具体请参见终端节点。 获取录音文件识别结果 GET https://{endpoint}/v1/1609d8170cd86660a81281e5a3a03f8b/asr/transcriber/jobs/567e6536-a89c-13c3-a882-826321939656Request header:X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG...
  • 响应示例 状态码:200 成功响应示例 等待识别的响应示例 {"status": "WAITING","create_time": "2018-12-04T13:10:29.310Z"} 识别完成的响应示例 { "status": "FINISHED", "create_time": "2018-12-04T13:10:29.310Z", "start_time": "2018-12-04T13:16:29.310Z", "finish_time": "2018-12-04T13:35:18.310Z", "audio_duration":7000, "segments": [ { "start_time": 100, "end_time": 1500, "result": { "text": "第一句结果。", "word_info": [ { "start_time": 100, "word": "第一" }, { "start_time": 800, "end_time": 1000, "word": "句" }, { "start_time": 1000, "end_time": 1500, "word": "结果" } ], "analysis_info": { "role": "AGENT", "emotion": "NORMAL", "speed": 5.62 } } } ]} 状态码:400 失败响应示例 {"error_code": "SIS.30006","error_msg": "Invalid data found when processing input","status": "ERROR","create_time": "2019-05-08 T11:01:41Z","start_time": "2019-06-06T15:10:12.423Z","finish_time": "2019-06-06T15:10:12.424Z"}
  • 响应参数 状态码: 200 表3 响应Body参数 参数 是否必选 参数类型 描述 job_id 否 String 录音文件识别任务标识符。 使用“callback_url”回调url时,该字段会随结果发送至用户服务器。 使用get接口查询,不会出现该字段。 status 否 String 当前识别状态。具体状态如下所示: WAITING 等待识别。 FINISHED 识别已经完成。 ERROR 识别过程中发生错误。 create_time 否 String 任务创建时间,遵循 RFC 3339格式。 格式示例:2018-12-04T13:10:29.310Z。 start_time 否 String 开始识别时间,遵循 RFC 3339格式。 当status为FINISHED或ERROR时存在。 格式示例:2018-12-04T13:10:29.310Z。 finish_time 否 String 识别完成时间,遵循 RFC 3339格式。 当status为FINISHED或ERROR时存在。 格式示例:2018-12-04T13:10:29.310Z。 audio_duration 否 Integer 提交音频的时长,单位ms。 segments 否 Array of Segment objects 识别结果, 多句结果的数组。 表4 Segment 参数 是否必选 参数类型 描述 start_time 是 Integer 一句的起始时间戳,单位ms。 end_time 是 Integer 一句的结束时间戳,单位ms。 result 是 TranscriberResult object 调用成功表示识别结果,调用失败时无此字段。数据结构参见result表。 表5 TranscriberResult 参数 是否必选 参数类型 描述 text 是 String 识别结果文本。 analysis_info 否 AnalysisInfoResult object 每一句的质检分析结果对象。 仅在识别配置中的need_analysis_info不为null时存在该返回结果。数据结构参见analysisinfo数据表。 word_info 否 Array of WordInfo objects 分词输出列表。 表6 AnalysisInfoResult 参数 是否必选 参数类型 描述 role 否 String 角色类型,目前对于8k音频以及16k双声道音频仅支持 AGENT(座席),USER(用户)。可用于电话质检等场景。对于16k单声道音频,支持多个说话人,取值范围是(speaker1 ~ speaker10),最多支持10个说话人,可用于会议场景。 emotion 否 String 情绪类型,目前仅支持NORMAL(正常),ANGRY(愤怒),UNKNOWN(未知)。 在识别配置中emotion为true时存在。 speed 否 Float 语速信息,单位是每秒字数。 在识别配置中speed为true时存在。 表7 WordInfo 参数 是否必选 参数类型 描述 start_time 否 Integer 起始时间 end_time 否 Integer 结束时间 word 否 String 分词 状态码: 400 表8 响应Body参数 参数 参数类型 描述 error_code String 调用失败时的错误码。 调用成功时无此字段。 error_msg String 调用失败时的错误信息。 调用成功时无此字段。
  • 案例 请求令牌自定义属性认证。 apiVersion: security.istio.io/v1beta1kind: AuthorizationPolicymetadata: name: detailed-jwtspec: action: ALLOW rules: - from: - source: requestPrincipals: ["weather@cloudnative-istio.book/weather"] when: - key: request.auth.claims[role] values: ["editor"]
  • 创建请求认证 支持YAML创建请求认证。 登录U CS 控制台,在左侧导航栏中单击“服务网格”。 单击服务网格名称,进入详情页。 在左侧导航栏,单击“服务安全”下的“请求认证”,进入请求认证详情页。 单击右上角“YAML创建”,弹出请求认证YAML创建界面。 为命名空间下的服务访问,校验请求中的认证信息。 apiVersion: security.istio.io/v1beta1kind: RequestAuthentication # 创建服务安全类别为请求认证metadata: name: forecast # 请求认证名 namespace: weather # 在weather命名空间下创建spec: selector: matchLabels: app: forecast # 标签键值对 jwtRules: - issuer: "weather@cloudnative-istio.book " jwksUri: https://cloudnative-istio.book/jwks-demo/jwks
  • 更新对端认证 登录UCS控制台,在左侧导航栏中单击“服务网格”。 单击服务网格名称,进入详情页。 在左侧导航栏,单击“服务安全”下的“对端认证”,进入对端认证详情页。 选定要更新的认证策略,单击操作列下的“YAML编辑”。 根据实际需求更新对端认证。例如:网格统一认证策略更新为命名空间统一认证策略,设置如下: apiVersion: security.istio.io/v1beta1kind: PeerAuthenticationmetadata: name: ns_weather_tls namespace: weatherspec: mtls: mode: STRICT
  • 创建对端认证 支持YAML创建对端认证。 登录UCS控制台,进入网格。 在左侧导航栏,单击“服务安全”下的“对端认证”,进入对端认证详情页。 单击右上角“YAML创建”,弹出对端认证YAML创建界面。 为服务开启双向认证,该服务使用双向认证来接收调用方的访问,只处理TLS通道上加密的请求。 apiVersion: security.istio.io/v1beta1kind: PeerAuthentication # 创建服务安全类别为对端认证metadata: name: peer-policy # 对端认证名 namespace: weather # 在weather命名空间下创建spec: selector: matchLabels: app: forecast # 标签键值对 mtls: mode: STRICT 若要完成网格统一认证策略,设置如下: apiVersion: security.istio.io/v1beta1kind: PeerAuthenticationmetadata: name: mesh_tls namespace: istio-systemspec: mtls: mode: STRICT
  • 头域控制 开启头域控制,可以灵活增加、修改和删除指定HTTP头域,非侵入方式管理请求内容。只支持路由上的头域操作,暂不支持对于特定后端的头域操作。 YAML设置如下: apiVersion: networking.istio.io/v1beta1kind: VirtualServicemetadata: name: reviews-routespec: hosts: - reviews.prod.svc.cluster.local http: # 修改指定HTTP头域 - headers: request: set: test: "true" route: - destination: host: reviews.prod.svc.cluster.local subset: v2 weight: 25 - destination: host: reviews.prod.svc.cluster.local subset: v1 headers: response: remove: - foo weight: 75 请根据实际需求调整配置参数。 父主题: 服务路由
  • 概述 应用程序升级面临最大挑战是新旧业务切换,将软件从测试的最后阶段带到生产环境,同时要保证系统不间断提供服务。如果直接将某版本上线发布给全部用户,一旦遇到线上事故(或BUG),对用户的影响极大,解决问题周期较长,甚至有时不得不回滚到前一版本,严重影响了用户体验。 灰度发布,是版本升级平滑过渡的一种方式,其本质就是根据请求、比例或其他混合条件切分流量,其核心工作是实现多个版本同时在线,并通过一定的流量策略将部分流量切分到灰度版本上,当版本升级时,使部分用户使用新版本,其他用户继续使用老版本,待新版本稳定后,逐步扩大范围把所有用户流量都迁移到新版本上面来。 这样可以最大限度地控制新版本发布带来的业务风险,降低故障带来的影响面,同时支持快速回滚。 图1 灰度发布流程 父主题: 灰度发布
  • 南北向MCS的工作原理 南北向MCS的功能主要通过请求转发执行器MCS Controller实现。MCS Controller部署在集群联邦控制面,实时监控资源对象的变化,解析MCS对象定义的规则并负责将请求转发到相应的后端Service。 图1 南北向MCS工作原理 MCS Controller支持在同一个ELB实例(即同一IP)下绑定多个监听器端口,其工作原理如图1,实现流程如下: 部署人员在集群联邦控制面创建工作负载,并为其配置Service对象。 部署人员在集群联邦控制面创建MCS对象,配置关联的负载均衡器以及访问的后端Service及端口等。 MCS Controller监控到MCS对象发生变化,会根据MCS中定义的规则,在ELB侧重新配置监听器以及后端服务器路由。 当用户进行访问时,流量根据ELB中配置的监听端口被转发到对应的后端Service关联的各个工作负载。
  • CronFederatedHPA策略使用流程 单独使用CronFederatedHPA策略 单独使用CronFederatedHPA策略时,使用流程如图2所示,具体流程如下: 图2 CronFederatedHPA单独使用流程 负载伸缩能力基于部署在多集群上的工作负载,因此在创建负载伸缩策略前,您需要添加集群至容器舰队、为舰队开启集群联邦能力,并创建无状态工作负载。具体操作请参见注册集群、开启集群联邦和创建工作负载。 创建CronFederatedHPA策略,具体操作请参见创建CronFederatedHPA策略以定时扩缩工作负载。 若您需要修改或删除已经创建的策略,具体操作请参见管理CronFederatedHPA策略。 配合使用CronFederatedHPA策略与FederatedHPA策略 配合使用CronFederatedHPA策略与FederatedHPA策略时,使用流程如图3所示,具体流程如下: 图3 CronFederatedHPA与FederatedHPA配合使用流程 负载伸缩能力基于部署在多集群上的工作负载,因此在创建负载伸缩策略前,您需要添加集群至容器舰队、为舰队开启集群联邦能力,并创建无状态工作负载。具体操作请参见注册集群、开启集群联邦和创建工作负载。 为集群安装支持采集指标数据的插件,具体操作请参见安装指标采集插件。 创建FederatedHPA策略,具体操作请参见创建FederatedHPA策略以按指标扩缩工作负载。 创建CronFederatedHPA策略,具体操作请参见创建CronFederatedHPA策略以定时扩缩工作负载。 若您需要修改或删除已经创建的策略,具体操作请参见管理FederatedHPA策略和管理CronFederatedHPA策略。
  • FederatedHPA策略使用流程 FederatedHPA策略的使用流程如图1所示,具体流程如下: 图1 FederatedHPA使用流程 负载伸缩能力基于部署在多集群上的工作负载,因此在创建负载伸缩策略前,您需要添加集群至容器舰队、为舰队开启集群联邦能力,并创建无状态工作负载。具体操作请参见注册集群、开启集群联邦和创建工作负载。 为集群安装支持采集指标数据的插件,具体操作请参见安装指标采集插件。 创建FederatedHPA策略,具体操作请参见创建FederatedHPA策略以按指标扩缩工作负载。 若您需要配置更加精确的工作负载扩缩速率,请参见配置FederatedHPA策略以控制扩缩速率。 若您需要修改或删除已经创建的策略,请参见管理FederatedHPA策略。
  • 开启本地集群控制面审计日志 集群未安装云原生日志采集插件 安装云原生日志采集插件时,可通过勾选控制面审计日志,创建默认日志采集策略,采集对应组件日志上报到LTS。安装方法见:启用云原生日志采集插件采集日志。 集群已安装云原生日志采集插件 登录容器舰队控制台,单击集群名称进入集群,选择左侧导航栏的“日志中心”。 右上角单击“日志采集策略”,将显示当前集群所有上报LTS的日志策略。 单击上方“创建日志策略”,输入要采集的配置信息。 策略模板:若安装插件时未开启控制面审计日志的采集策略,或者删除了对应的日志策略,可通过该方式重新创建控制面审计日志采集策略。 日志查看:可直接在“日志中心”页面,“控制面审计日志”页签中查看,选择日志策略配置的日志流名称,即可查看上报到 云日志 服务(LTS)的日志。
  • 编辑YAML 可通过在线YAML编辑窗对无状态工作负载、有状态工作负载、守护进程集、定时任务和容器组的YAML文件进行修改和下载。普通任务的YAML文件仅支持查看、复制和下载。本文以无状态工作负载为例说明如何在线编辑YAML。 登录UCS控制台,进入一个已有的容器舰队,在左侧导航栏中选择“工作负载”。 选择“无状态负载”页签,单击工作负载后的“编辑YAML”,在弹出的“编辑YAML”窗中可对当前工作负载的YAML文件进行修改。 单击“确定”,完成修改。 (可选)在“编辑YAML”窗中,单击“下载”,可下载该YAML文件。
  • 操作场景 工作负载创建后,您可以对其执行查看详情升级、编辑YAML、重新部署、重新调度、删除等操作。 表1 工作负载管理 操作 描述 查看详情 可查看Pod和工作负载的基本信息、事件和状态等,并对工作负载的配置进行修改。 编辑YAML 可通过在线YAML编辑窗对工作负载的YAML文件进行修改和下载。普通任务的YAML文件仅支持查看、复制和下载。 升级 可以通过更换镜像或镜像版本实现工作负载的快速升级,业务无中断。 重新部署 工作负载可以进行重新部署操作,重新部署后将重启负载下的全部容器组Pod,仅无状态工作负载可用。 重新调度 工作负载可以进行重新调度,重新调度后将按照已有的调度策略进行调度,仅无状态工作负载可用。 删除 若工作负载无需再使用,您可以将工作负载或任务删除。工作负载或任务删除后,将无法恢复,请谨慎操作。
  • 重写 开启重写,可以在不修改客户端的访问的目标地址前提下,根据配置重写请求的URL。 YAML设置如下: apiVersion: networking.istio.io/v1beta1kind: VirtualServicemetadata: name: ratings-routespec: hosts: - ratings.prod.svc.cluster.local http: - match: - uri: prefix: /ratings rewrite: uri: /v1/bookRatings route: # 配置重写参数 - destination: host: ratings.prod.svc.cluster.local subset: v1 请根据实际需求调整配置参数。 父主题: 服务路由
  • 代理模式概述 sidecar-proxy 网格代理将会被安装在网格中每个Pod的Sidecar,通过在每个Pod独立的网络命名空间设置iptables规则,将应用服务的出入流量重定向到Sidecar的Envoy进程上,由Envoy进行流量路由。 图1 sidecar-proxy node-proxy 网格代理将会被安装在添加到该网格的每个集群的每个节点上,通过在每个节点上设置iptables规则,将应用服务的出入流量重定向到节点的Envoy进程上,由Envoy进行流量路由。 图2 node-proxy
  • 概述 应用服务网格(Application Service Mesh,简称ASM)是华为云基于开源Istio推出的服务网格平台,它深度、无缝对接了华为云的企业级Kubernetes集群服务云容器引擎(CCE),在易用性、可靠性、可视化等方面进行了一系列增强,可为客户提供开箱即用的上手体验。 ASM提供非侵入式的微服务治理解决方案,支持完整的生命周期管理和流量治理,兼容Kubernetes和Istio生态,其功能包括负载均衡、熔断、限流等多种治理能力。 ASM内置灰度发布流程,提供一站式自动化的发布管理。ASM基于无侵入的监控数据采集,提供实时流量拓扑、调用链等服务性能监控和运行诊断,构建全景的服务运行视图。 父主题: 网格管理
  • 为什么需要自动切流 MCI提供了一种跨集群的负载均衡和流量路由机制,提高了应用程序的可用性和可靠性。然而,当集群出现故障后,通过MCI分配到该集群上的请求将会失败。 UCS提供自动切流能力,可自动摘除故障集群上的流量,以进一步保障服务的可用性。自动切流能力的应用场景主要有: 识别集群故障并自动切流:在集群内关键组件CoreDNS功能故障后,自动探查并及时上报至控制面,将该集群上的流量摘除,由此保障服务可用性不受单个集群组件故障影响。具体切流操作请参见配置条件触发自动切流。 提前摘除流量以平滑升级:在集群管理员进行集群升级等操作前,提前将该集群上的流量摘除,操作成功后再切回流量,由此保障服务可用性不受单个集群升级影响。具体切流操作请参见配置无条件触发自动切流。
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全