接口地址:open.volcengineapi.com
请求方式:GET
认证方式:可跳过查看,直接修改示例代码
参数 | 类型 | 是否必须 | 说明 | 示例 |
---|---|---|---|---|
AppID | string | 是 | 应用ID,通过应用列表获取,应用和账号有从属关系校验 | 10000000 |
ResourceID | string | 是 | 详见附件 | volc.service_type.10029 |
Start | date | 是 | 查询起始时间,仅支持yyyy-MM-dd 格式 | 2024-08-15 |
End | date | 是 | 查询结束时间,仅支持yyyy-MM-dd 格式 | 2024-08-15 |
Mode | string | 否 | 查询模式,支持按天和按小时维度查询:daily/hourly,默认为daily | hourly |
参数 | 类型 | 是否必须 | 说明 | 示例 |
---|---|---|---|---|
status | string | 否 | 响应状态,成功或失败 | success |
data | object | 否 | 响应数据 | 详见下面示例部分 |
| array | 否 | quota监控结果,如果无数据,则为null | 详见下面响应示例 |
| string | 是 | 查询日期维度指标 | |
| int | 是 | 指标具体的用量,可能为qps/并发 | |
| int | 是 | quota的最大值,服务开通和购买时候可见的qps/concurrency的值 | |
error_message | string | 否 | 如果有错误的话,会展示出此字段 |
按天查询响应示例:
{ "status": "success", "error": null, "data": { "quota_monitoring": [ { "day": "2024-08-13 00:00:00", "value": 0, "limit": 0 }, { "day": "2024-08-14 00:00:00", "value": 2, "limit": 2 }, { "day": "2024-08-15 00:00:00", "value": 2, "limit": 2 } ] } }
按小时查询有数据响应示例:
{ "status": "success", "error": null, "data": { "quota_monitoring": [ { "day": "2024-08-15 00:00:00", "value": 0, "limit": 0 }, { "day": "2024-08-15 01:00:00", "value": 0, "limit": 0 }, { "day": "2024-08-15 02:00:00", "value": 0, "limit": 0 }, { "day": "2024-08-15 03:00:00", "value": 0, "limit": 0 }, { "day": "2024-08-15 04:00:00", "value": 0, "limit": 0 }, { "day": "2024-08-15 05:00:00", "value": 0, "limit": 0 }, { "day": "2024-08-15 06:00:00", "value": 0, "limit": 0 }, { "day": "2024-08-15 07:00:00", "value": 0, "limit": 0 }, { "day": "2024-08-15 08:00:00", "value": 0, "limit": 0 }, { "day": "2024-08-15 09:00:00", "value": 0, "limit": 0 }, { "day": "2024-08-15 10:00:00", "value": 2, "limit": 2 }, { "day": "2024-08-15 11:00:00", "value": 0, "limit": 0 }, { "day": "2024-08-15 12:00:00", "value": 0, "limit": 0 }, { "day": "2024-08-15 13:00:00", "value": 0, "limit": 0 }, { "day": "2024-08-15 14:00:00", "value": 0, "limit": 0 }, { "day": "2024-08-15 15:00:00", "value": 0, "limit": 0 }, { "day": "2024-08-15 16:00:00", "value": 0, "limit": 0 }, { "day": "2024-08-15 17:00:00", "value": 0, "limit": 0 }, { "day": "2024-08-15 18:00:00", "value": 0, "limit": 0 }, { "day": "2024-08-15 19:00:00", "value": 0, "limit": 0 }, { "day": "2024-08-15 20:00:00", "value": 0, "limit": 0 }, { "day": "2024-08-15 21:00:00", "value": 0, "limit": 0 }, { "day": "2024-08-15 22:00:00", "value": 0, "limit": 0 }, { "day": "2024-08-15 23:00:00", "value": 0, "limit": 0 } ] } }
按小时查询无数据示例:
{ "status": "success", "error": null, "data": { "quota_monitoring": null } }
# coding:utf-8 """ Copyright (year) Beijing Volcano Engine Technology Ltd. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ import datetime import hashlib import hmac import json from urllib.parse import quote import requests # 以下参数视服务不同而不同,一个服务内通常是一致的 Service = "speech_saas_prod" Version = "2021-08-30" Region = "cn-north-1" Host = "open.volcengineapi.com" ContentType = "application/json; charset=utf-8" # 请求的凭证,从IAM或者STS服务中获取 AK = '' SK = '' # 当使用临时凭证时,需要使用到SessionToken传入Header,并计算进SignedHeader中,请自行在header参数中添加X-Security-Token头 # SessionToken = "" def norm_query(params): query = "" for key in sorted(params.keys()): if type(params[key]) == list: for k in params[key]: query = ( query + quote(key, safe="-_.~") + "=" + quote(k, safe="-_.~") + "&" ) else: query = (query + quote(key, safe="-_.~") + "=" + quote(params[key], safe="-_.~") + "&") query = query[:-1] return query.replace("+", "%20") # 第一步:准备辅助函数。 # sha256 非对称加密 def hmac_sha256(key: bytes, content: str): return hmac.new(key, content.encode("utf-8"), hashlib.sha256).digest() # sha256 hash算法 def hash_sha256(content: str): return hashlib.sha256(content.encode("utf-8")).hexdigest() # 第二步:签名请求函数 def request(method, date, query, header, ak, sk, action, body): # 第三步:创建身份证明。其中的 Service 和 Region 字段是固定的。ak 和 sk 分别代表 # AccessKeyID 和 SecretAccessKey。同时需要初始化签名结构体。一些签名计算时需要的属性也在这里处理。 # 初始化身份证明结构体 credential = { "access_key_id": ak, "secret_access_key": sk, "service": Service, "region": Region, } # 初始化签名结构体 request_param = { "body": body, "host": Host, "path": "/", "method": method, "content_type": ContentType, "date": date, "query": {"Action": action, "Version": Version, **query}, } if body is None: request_param["body"] = "" # 第四步:接下来开始计算签名。在计算签名前,先准备好用于接收签算结果的 signResult 变量,并设置一些参数。 # 初始化签名结果的结构体 x_date = request_param["date"].strftime("%Y%m%dT%H%M%SZ") short_x_date = x_date[:8] x_content_sha256 = hash_sha256(request_param["body"]) sign_result = { "Host": request_param["host"], "X-Content-Sha256": x_content_sha256, "X-Date": x_date, "Content-Type": request_param["content_type"], } # 第五步:计算 Signature 签名。 signed_headers_str = ";".join( ["content-type", "host", "x-content-sha256", "x-date"] ) # signed_headers_str = signed_headers_str + ";x-security-token" canonical_request_str = "\n".join( [request_param["method"].upper(), request_param["path"], norm_query(request_param["query"]), "\n".join( [ "content-type:" + request_param["content_type"], "host:" + request_param["host"], "x-content-sha256:" + x_content_sha256, "x-date:" + x_date, ] ), "", signed_headers_str, x_content_sha256, ] ) # 打印正规化的请求用于调试比对 print(f"##### canonical_request_str: #####\n{canonical_request_str}\n") hashed_canonical_request = hash_sha256(canonical_request_str) # 打印hash值用于调试比对 print(f"##### hashed_canonical_request: #####\n{hashed_canonical_request}\n") credential_scope = "/".join([short_x_date, credential["region"], credential["service"], "request"]) string_to_sign = "\n".join(["HMAC-SHA256", x_date, credential_scope, hashed_canonical_request]) # 打印最终计算的签名字符串用于调试比对 print(f"##### string_to_sign: #####\n{string_to_sign}\n") k_date = hmac_sha256(credential["secret_access_key"].encode("utf-8"), short_x_date) k_region = hmac_sha256(k_date, credential["region"]) k_service = hmac_sha256(k_region, credential["service"]) k_signing = hmac_sha256(k_service, "request") signature = hmac_sha256(k_signing, string_to_sign).hex() sign_result["Authorization"] = "HMAC-SHA256 Credential={}, SignedHeaders={}, Signature={}".format( credential["access_key_id"] + "/" + credential_scope, signed_headers_str, signature, ) header = {**header, **sign_result} # header = {**header, **{"X-Security-Token": SessionToken}} # 第六步:将 Signature 签名写入 HTTP Header 中,并发送 HTTP 请求。 r = requests.request(method=method, url="https://{}{}".format(request_param["host"], request_param["path"]), headers=header, params=request_param["query"], data=request_param["body"], ) # print(r.status_code) # print(r.text) return r.json() if __name__ == "__main__": now = datetime.datetime.utcnow() # query参数参考文档部分填充 response_body = request("GET", now, { "AppID": "APPID真实值", "ResourceID": "ResourceID真实值", "Start": "2024-08-09", "End": "2024-08-15", "Mode": "daily", }, {}, AK, SK, "QuotaMonitoring", None) print(f"response_body: \n{response_body}")
package org.example; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import java.io.DataInputStream; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import java.nio.ByteBuffer; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.text.SimpleDateFormat; import java.util.*; /** * Copyright (year) Beijing Volcano Engine Technology Ltd. * <p> * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * <p> * http://www.apache.org/licenses/LICENSE-2.0 * <p> * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ public class Sign { private static final BitSet URLENCODER = new BitSet(256); private static final String CONST_ENCODE = "0123456789abcdef"; public static final Charset UTF_8 = StandardCharsets.UTF_8; private final String region; private final String service; private final String schema; private final String host; private final String path; private final String ak; private final String sk; static { int i; for (i = 97; i <= 122; ++i) { URLENCODER.set(i); } for (i = 65; i <= 90; ++i) { URLENCODER.set(i); } for (i = 48; i <= 57; ++i) { URLENCODER.set(i); } URLENCODER.set('-'); URLENCODER.set('_'); URLENCODER.set('.'); URLENCODER.set('~'); } public Sign(String region, String service, String schema, String host, String path, String ak, String sk) { this.region = region; this.service = service; this.host = host; this.schema = schema; this.path = path; this.ak = ak; this.sk = sk; } public void doRequest(String method, Map<String, String> query, byte[] body, Date date, String action, String version) throws Exception { if (body == null) { body = new byte[0]; } String xContentSha256 = hashSHA256(body); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); sdf.setTimeZone(TimeZone.getTimeZone("GMT")); String xDate = sdf.format(date); String shortXDate = xDate.substring(0, 8); String contentType = "application/json; charset=utf-8"; String signHeader = "content-type;host;x-content-sha256;x-date"; SortedMap<String, String> realQueryList = new TreeMap<>(); realQueryList.put("Action", action); realQueryList.put("Version", version); realQueryList.putAll(query); StringBuilder querySB = new StringBuilder(); for (String key : realQueryList.keySet()) { querySB.append(signStringEncoder(key)).append("=").append(signStringEncoder(realQueryList.get(key))).append("&"); } querySB.deleteCharAt(querySB.length() - 1); String canonicalStringBuilder = method + "\n" + path + "\n" + querySB + "\n" + "content-type:" + contentType + "\n" + "host:" + host + "\n" + "x-content-sha256:" + xContentSha256 + "\n" + "x-date:" + xDate + "\n" + "\n" + signHeader + "\n" + xContentSha256; System.out.println(canonicalStringBuilder); String hashcanonicalString = hashSHA256(canonicalStringBuilder.getBytes()); String credentialScope = shortXDate + "/" + region + "/" + service + "/request"; String signString = "HMAC-SHA256" + "\n" + xDate + "\n" + credentialScope + "\n" + hashcanonicalString; byte[] signKey = genSigningSecretKeyV4(sk, shortXDate, region, service); String signature = bytesToHex(hmacSHA256(signKey, signString)); System.out.println(signature); URL url = new URL(schema + "://" + host + path + "?" + querySB); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod(method); conn.setRequestProperty("Host", host); conn.setRequestProperty("X-Date", xDate); conn.setRequestProperty("X-Content-Sha256", xContentSha256); conn.setRequestProperty("Content-Type", contentType); conn.setRequestProperty("Authorization", "HMAC-SHA256" + " Credential=" + ak + "/" + credentialScope + ", SignedHeaders=" + signHeader + ", Signature=" + signature); if (!Objects.equals(conn.getRequestMethod(), "GET")) { conn.setDoOutput(true); OutputStream os = conn.getOutputStream(); os.write(body); os.flush(); os.close(); } conn.connect(); int responseCode = conn.getResponseCode(); InputStream is; if (responseCode == 200) { is = conn.getInputStream(); } else { is = conn.getErrorStream(); } byte[] bytes = new byte[is.available()]; DataInputStream dataInputStream = new DataInputStream(is); dataInputStream.readFully(bytes); String responseBody = new String(bytes); is.close(); System.out.println(responseCode); System.out.println(responseBody); } private String signStringEncoder(String source) { if (source == null) { return null; } StringBuilder buf = new StringBuilder(source.length()); ByteBuffer bb = UTF_8.encode(source); while (bb.hasRemaining()) { int b = bb.get() & 255; if (URLENCODER.get(b)) { buf.append((char) b); } else if (b == 32) { buf.append("%20"); } else { buf.append("%"); char hex1 = CONST_ENCODE.charAt(b >> 4); char hex2 = CONST_ENCODE.charAt(b & 15); buf.append(hex1); buf.append(hex2); } } return buf.toString(); } public static String hashSHA256(byte[] content) throws Exception { try { MessageDigest md = MessageDigest.getInstance("SHA-256"); return bytesToHex(md.digest(content)); } catch (Exception e) { throw new Exception("Unable to compute hash while signing request: " + e.getMessage(), e); } } public static byte[] hmacSHA256(byte[] key, String content) throws Exception { try { Mac mac = Mac.getInstance("HmacSHA256"); mac.init(new SecretKeySpec(key, "HmacSHA256")); return mac.doFinal(content.getBytes()); } catch (Exception e) { throw new Exception("Unable to calculate a request signature: " + e.getMessage(), e); } } private byte[] genSigningSecretKeyV4(String secretKey, String date, String region, String service) throws Exception { byte[] kDate = hmacSHA256((secretKey).getBytes(), date); byte[] kRegion = hmacSHA256(kDate, region); byte[] kService = hmacSHA256(kRegion, service); return hmacSHA256(kService, "request"); } public static String bytesToHex(byte[] bytes) { char[] hexChars = new char[bytes.length * 2]; for (int j = 0; j < bytes.length; j++) { int v = bytes[j] & 0xFF; hexChars[j * 2] = CONST_ENCODE.toCharArray()[v >>> 4]; hexChars[j * 2 + 1] = CONST_ENCODE.toCharArray()[v & 0x0F]; } return new String(hexChars); } public static void main(String[] args) throws Exception { String AccessKeyID = ""; String SecretAccessKey = ""; String endpoint = "open.volcengineapi.com"; String path = "/"; String service = "speech_saas_prod"; String region = "cn-north-1"; String schema = "https"; Sign sign = new Sign(region, service, schema, endpoint, path, AccessKeyID, SecretAccessKey); String version = "2021-08-30"; Date date = new Date(); String action = "QuotaMonitoring"; Map<String, String> queryParams = Map.of( "AppID", "APPID真实值", "ResourceID", "ResourceID值", "Start", "2024-08-09", "End", "2024-08-15", "Mode", "daily" ); sign.doRequest("GET", queryParams, null, date, action, version); } }
/* Copyright (year) Beijing Volcano Engine Technology Ltd. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ package main import ( "bytes" "crypto/hmac" "crypto/sha256" "encoding/hex" "fmt" "log" "net/http" "net/http/httputil" "net/url" "strings" "time" ) const ( // 请求凭证,从访问控制申请 AccessKeyID = "" SecretAccessKey = "" // 请求地址 Addr = "https://open.volcengineapi.com" Path = "/" // 路径,不包含 Query // 请求接口信息 Service = "speech_saas_prod" Region = "cn-north-1" Action = "QuotaMonitoring" Version = "2021-08-30" ) func hmacSHA256(key []byte, content string) []byte { mac := hmac.New(sha256.New, key) mac.Write([]byte(content)) return mac.Sum(nil) } func getSignedKey(secretKey, date, region, service string) []byte { kDate := hmacSHA256([]byte(secretKey), date) kRegion := hmacSHA256(kDate, region) kService := hmacSHA256(kRegion, service) kSigning := hmacSHA256(kService, "request") return kSigning } func hashSHA256(data []byte) []byte { hash := sha256.New() if _, err := hash.Write(data); err != nil { log.Printf("input hash err:%s", err.Error()) } return hash.Sum(nil) } func doRequest(method string, queries url.Values, body []byte) error { // 1. 构建请求 requestAddr := fmt.Sprintf("%s%s?%s", Addr, Path, queries.Encode()) log.Printf("request addr: %s\n", requestAddr) request, err := http.NewRequest(method, requestAddr, bytes.NewBuffer(body)) if err != nil { return fmt.Errorf("bad request: %w", err) } // 2. 构建签名材料 now := time.Now() date := now.UTC().Format("20060102T150405Z") authDate := date[:8] request.Header.Set("X-Date", date) payload := hex.EncodeToString(hashSHA256(body)) request.Header.Set("X-Content-Sha256", payload) request.Header.Set("Content-Type", "application/x-www-form-urlencoded") queryString := strings.Replace(queries.Encode(), "+", "%20", -1) signedHeaders := []string{"host", "x-date", "x-content-sha256", "content-type"} var headerList []string for _, header := range signedHeaders { if header == "host" { headerList = append(headerList, header+":"+request.Host) } else { v := request.Header.Get(header) headerList = append(headerList, header+":"+strings.TrimSpace(v)) } } headerString := strings.Join(headerList, "\n") canonicalString := strings.Join([]string{ method, Path, queryString, headerString + "\n", strings.Join(signedHeaders, ";"), payload, }, "\n") log.Printf("canonical string:\n%s\n", canonicalString) hashedCanonicalString := hex.EncodeToString(hashSHA256([]byte(canonicalString))) log.Printf("hashed canonical string: %s\n", hashedCanonicalString) credentialScope := authDate + "/" + Region + "/" + Service + "/request" signString := strings.Join([]string{ "HMAC-SHA256", date, credentialScope, hashedCanonicalString, }, "\n") log.Printf("sign string:\n%s\n", signString) // 3. 构建认证请求头 signedKey := getSignedKey(SecretAccessKey, authDate, Region, Service) signature := hex.EncodeToString(hmacSHA256(signedKey, signString)) log.Printf("signature: %s\n", signature) authorization := "HMAC-SHA256" + " Credential=" + AccessKeyID + "/" + credentialScope + ", SignedHeaders=" + strings.Join(signedHeaders, ";") + ", Signature=" + signature request.Header.Set("Authorization", authorization) log.Printf("authorization: %s\n", authorization) // 4. 打印请求,发起请求 requestRaw, err := httputil.DumpRequest(request, true) if err != nil { return fmt.Errorf("dump request err: %w", err) } log.Printf("request:\n%s\n", string(requestRaw)) response, err := http.DefaultClient.Do(request) if err != nil { return fmt.Errorf("do request err: %w", err) } // 5. 打印响应 responseRaw, err := httputil.DumpResponse(response, true) if err != nil { return fmt.Errorf("dump response err: %w", err) } log.Printf("response:\n%s\n", string(responseRaw)) if response.StatusCode == 200 { log.Printf("请求成功") } else { log.Printf("请求失败") } return nil } func main() { queries := make(url.Values) queries.Set("Action", Action) queries.Set("Version", Version) queries.Set("AppID", "APPID真实值") queries.Set("ResourceID", "ResourceID值") queries.Set("Start", "2024-08-13") queries.Set("End", "2024-08-13") queries.Set("Mode", "hourly") doRequest(http.MethodGet, queries, []byte{}) }
商品名称 | 商品Code | resource_id | quota查询指标 |
---|---|---|---|
声音复刻-并发版 | VoiceCloning | volc.megatts.concurr | concurrency |
声音复刻-字符版 | VoiceCloning | volc.megatts.default | concurrency |
语音合成大模型 | BigTTS | volc.service_type.10029 | concurrency |
语音识别大模型-流式-小时版 | Speech_Recognition_Seed_streaming | volc.bigasr.sauc.duration | concurrency |
语音识别大模型-流式-并发版 | Speech_Recognition_Seed_streaming | volc.bigasr.sauc.concurrent | concurrency |
语音识别大模型-录音文件识别 | Speech_Recognition_Seed_AUC | volc.bigasr.auc | qps |
语音合成(小模型版) | Speech_Synthesis | volc.tts.default | concurrency |
一句话识别-办公-中文 | one-sentence-recognition | volc.onesentenceasr.office.cn | concurrency |
一句话识别-办公-英文 | one-sentence-recognition | volc.onesentenceasr.office.en | concurrency |
一句话识别-教育-中文 | one-sentence-recognition | volc.onesentenceasr.education.cn | concurrency |
一句话识别-教育-英文 | one-sentence-recognition | volc.onesentenceasr.education.en | concurrency |
流式语音识别-通用-中文 | streaming speech recognition | volc.streamingasr.common.cn | concurrency |
流式语音识别-通用-粤语 | streaming speech recognition | volc.streamingasr.common.cant | concurrency |
流式语音识别-通用-川渝 | streaming speech recognition | volc.streamingasr.common.sc | concurrency |
流式语音识别-办公-中文 | streaming speech recognition | volc.streamingasr.office.cn | concurrency |
流式语音识别-办公-英文 | streaming speech recognition | volc.streamingasr.office.en | concurrency |
流式语音识别-办公-日语 | streaming speech recognition | volc.streamingasr.office.ja | concurrency |
流式语音识别-客服-中文 | streaming speech recognition | volc.streamingasr.phone.cn | concurrency |
流式语音识别-办公-韩语 | streaming speech recognition | volc.service_type.82 | concurrency |
流式语音识别-办公-法语 | streaming speech recognition | volc.service_type.585 | concurrency |
流式语音识别-办公-西班牙语 | streaming speech recognition | volc.service_type.586 | concurrency |
流式语音识别-办公-葡萄牙语 | streaming speech recognition | volc.service_type.587 | concurrency |
流式语音识别-办公-印尼语 | streaming speech recognition | volc.service_type.10021 | concurrency |
流式语音识别-办公-俄语 | streaming speech recognition | volc.service_type.10022 | concurrency |
流式语音识别-办公-马来语 | streaming speech recognition | volc.service_type.10023 | concurrency |
录音文件识别-办公-标准版 | AUC | volc.auc.office | qps |
录音文件识别-客服-标准版 | AUC | volc.auc.phone | qps |
录音文件识别-娱乐-标准版 | AUC | volc.auc.entertainment | qps |
录音文件识别-通用-标准版 | AUC | volc.auc.common | qps |
录音文件识别-通用-极速版 | AUC | volc.service_type.76 | qps |
录音文件识别-办公-极速版 | AUC | volc.service_type.77 | qps |
录音文件识别-客服-极速版 | AUC | volc.service_type.78 | qps |
录音文件识别-娱乐-极速版 | AUC | volc.service_type.79 | qps |
口语评测-中文 | MDD | volc.service_type.80 | concurrency |
口语评测-英文 | MDD | volc.service_type.81 | concurrency |
音色转换-音色转换 | voice_conversion_plus | volc.service_type.83 | concurrency |
一句话识别-通用-中文 | one-sentence-recognition | volc.onesentenceasr.common.cn | concurrency |
一句话识别-办公-韩语 | one-sentence-recognition | volc.service_type.578 | concurrency |
一句话识别-办公-日语 | one-sentence-recognition | volc.service_type.579 | concurrency |
一句话识别-办公-法语 | one-sentence-recognition | volc.service_type.580 | concurrency |
一句话识别-办公-西班牙语 | one-sentence-recognition | volc.service_type.581 | concurrency |
一句话识别-办公-葡萄牙语 | one-sentence-recognition | volc.service_type.582 | concurrency |
一句话识别-通用-川渝 | one-sentence-recognition | volc.service_type.583 | concurrency |
一句话识别-通用-粤语 | one-sentence-recognition | volc.service_type.584 | concurrency |
一句话识别-办公-印尼语 | one-sentence-recognition | volc.service_type.10018 | concurrency |
一句话识别-办公-俄语 | one-sentence-recognition | volc.service_type.10019 | concurrency |
一句话识别-办公-马来语 | one-sentence-recognition | volc.service_type.10020 | concurrency |
精品长文本语音合成-普通版 | long-text-tts | volc.tts_async.default | qps |
精品长文本语音合成-情感预测版 | long-text-tts | volc.tts_async.emotion | qps |
自动字幕打轴-自动字幕打轴 | Automatic_Transcript_Alignment | volc.ata.default | qps |