华为云用户手册

  • 初始化Client 初始化SasrWebsocketClient详见表 SasrWebsocketClient初始化参数。 表1 SasrWebsocketClient初始化参数 参数名称 是否必选 参数类型 描述 ak 是 String 用户的ak,请参考AK/SK认证。 sk 是 String 用户的sk,请参考AK/SK认证。 use_aksk 是 Boolean 使用ak、sk要填写true。 region 是 String 区域,如:cn-north-4。具体请参考终端节点。 project_id 是 String 项目ID,同region一一对应,参考获取项目ID。 callback 是 Object 回调类RasrCallBack,用于监听Websocket连接、响应、断开、错误等。 config 否 Object 详见表 SisConfig。 service_endpoint 否 String 终端节点,一般使用默认即可。 表2 SisConfig 参数名称 是否必选 参数类型 描述 connect_timeout 否 Integer 连接超时,默认10,单位s。 read_timeout 否 Integer 读取超时,默认10,单位s。 connect_lost_timeout 否 Integer 连接失效超时,默认4,单位s。一般不要修改这个参数。
  • 代码示例 如下示例仅供参考,最新代码请前往获取SDK章节获取并运行。 # -*- coding: utf-8 -*- from huaweicloud_sis.client.rasr_client import RasrClient from huaweicloud_sis.bean.rasr_request import RasrRequest from huaweicloud_sis.bean.callback import RasrCallBack from huaweicloud_sis.bean.sis_config import SisConfig import json import os # 鉴权参数 # 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; # 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SIS_AK/HUAWEICLOUD_SIS_SK ak = os.getenv("HUAWEICLOUD_SIS_AK") # 从环境变量获取ak 参考https://support.huaweicloud.com/sdkreference-sis/sis_05_0003.html assert ak is not None, "Please add ak in your develop environment" sk = os.getenv("HUAWEICLOUD_SIS_SK") # 从环境变量获取sk 参考https://support.huaweicloud.com/sdkreference-sis/sis_05_0003.html assert sk is not None, "Please add sk in your develop environment" project_id = "" # project id 同region一一对应,参考https://support.huaweicloud.com/api-sis/sis_03_0008.html region = 'cn-north-4' # region,如cn-north-4 """ todo 请正确填写音频格式和模型属性字符串 1. 音频格式一定要相匹配. 例如音频是pcm格式,并且采样率为8k,则格式填写pcm8k16bit。 如果返回audio_format is invalid 说明该文件格式不支持。具体支持哪些音频格式,需要参考一些api文档。 2. 音频采样率要与属性字符串的采样率要匹配。 例如格式选择pcm16k16bit,属性字符串却选择chinese_8k_common, 则会返回'audio_format' is not match model """ # 实时语音识别参数 path = '' # 需要发送音频路径,如D:/test.pcm, 同时sdk也支持byte流发送数据。 audio_format = 'pcm16k16bit' # 音频支持格式,如pcm16k16bit,详见api文档 property = 'chinese_16k_general' # 属性字符串,language_sampleRate_domain, 如chinese_16k_general, 采样率要和音频一致。详见api文档 class MyCallback(RasrCallBack): """ 回调类,用户需要在对应方法中实现自己的逻辑,其中on_response必须重写 """ def on_open(self): """ websocket连接成功会回调此函数 """ print('websocket connect success') def on_start(self, message): """ websocket 开始识别回调此函数 :param message: 传入信息 :return: - """ print('webscoket start to recognize, %s' % message) def on_response(self, message): """ websockert返回响应结果会回调此函数 :param message: json格式 :return: - """ print(json.dumps(message, indent=2, ensure_ascii=False)) def on_end(self, message): """ websocket 结束识别回调此函数 :param message: 传入信息 :return: - """ print('websocket is ended, %s' % message) def on_close(self): """ websocket关闭会回调此函数 """ print('websocket is closed') def on_error(self, error): """ websocket出错回调此函数 :param error: 错误信息 :return: - """ print('websocket meets error, the error is %s' % error) def on_event(self, event): """ 出现事件的回调 :param event: 事件名称 :return: - """ print('receive event %s' % event) def rasr_example(): """ 实时语音识别demo """ # step1 初始化RasrClient, 暂不支持使用代理 my_callback = MyCallback() config = SisConfig() # 设置连接超时,默认是10 config.set_connect_timeout(10) # 设置读取超时, 默认是10 config.set_read_timeout(10) # 设置connect lost超时,一般在普通并发下,不需要设置此值。默认是10 config.set_connect_lost_timeout(10) # websocket暂时不支持使用代理 rasr_client = RasrClient(ak=ak, sk=sk, use_aksk=True, region=region, project_id=project_id, callback=my_callback, config=config) try: # step2 构造请求 request = RasrRequest(audio_format, property) # 所有参数均可不设置,使用默认值 request.set_add_punc('yes') # 设置是否添加标点, yes or no, 默认no request.set_vad_head(10000) # 设置有效头部, [0, 60000], 默认10000 request.set_vad_tail(500) # 设置有效尾部,[0, 3000], 默认500 request.set_max_seconds(30) # 设置一句话最大长度,[1, 60], 默认30 request.set_interim_results('no') # 设置是否返回中间结果,yes or no,默认no request.set_digit_norm('no') # 设置是否将语音中数字转写为阿拉伯数字,yes or no,默认yes # request.set_vocabulary_id('') # 设置热词表id,若不存在则不填写,否则会报错 request.set_need_word_info('no') # 设置是否需要word_info,yes or no, 默认no # step3 选择连接模式 # rasr_client.short_stream_connect(request) # 流式一句话模式 # rasr_client.sentence_stream_connect(request) # 实时语音识别单句模式 rasr_client.continue_stream_connect(request) # 实时语音识别连续模式 # use enterprise_project_Id # headers = {'Enterprise-Project-Id': 'your enterprise project id'} # rasr_client.continue_stream_connect(request, headers) # step4 发送音频 rasr_client.send_start() # 连续模式下,可多次发送音频,发送格式为byte数组 with open(path, 'rb') as f: data = f.read() rasr_client.send_audio(data) # 可选byte_len和sleep_time参数,建议使用默认值 rasr_client.send_end() except Exception as e: print('rasr error', e) finally: # step5 关闭客户端,使用完毕后一定要关闭,否则服务端20s内没收到数据会报错并主动断开。 rasr_client.close() if __name__ == '__main__': rasr_example()
  • 初始化Client 初始化RasrClient详见表 RasrClient初始化参数。 表1 RasrClient初始化参数 参数名称 是否必选 参数类型 描述 ak 是 String 用户的ak,请参考AK/SK认证。 sk 是 String 用户的sk,请参考AK/SK认证。 use_aksk 是 Boolean 使用ak、sk要填写true。 region 是 String 区域,如:cn-north-4。具体请参考终端节点。 project_id 是 String 项目ID,同region一一对应,参考获取项目ID。 callback 是 Object 回调类RasrCallBack,用于监听Websocket连接、响应、断开、错误等。参考代码示例。 config 否 Object 详见表2。 service_endpoint 否 String 终端节点,一般使用默认即可。 表2 SisConfig 参数名称 是否必选 参数类型 描述 connect_timeout 否 Integer 连接超时,默认10,单位s。 read_timeout 否 Integer 读取超时,默认10,单位s。 connect_lost_timeout 否 Integer 连接失效超时,默认4,单位s。一般不要修改这个参数。
  • 请求参数 请求类为RasrRequest,详见表3。 表3 RasrRequest 参数名称 是否必选 参数类型 描述 audio_format 是 String 音频格式,支持pcm,alaw,ulaw等,如pcm8k16bit,参见《API参考》中开始识别章节。 model_property 是 String 属性字符串,language_sampleRate_domain, 如chinese_16k_general,参见《API参考》中开始识别章节。 add_punc 否 String 表示是否在识别结果中添加标点,取值为yes 、 no,默认no。 digit_norm 否 String 表示是否将语音中的数字识别为阿拉伯数字,取值为yes 、 no,默认为yes。 vad_head 否 Integer 头部最大静音时间,[0, 60000],默认10000ms。 vad_tail 否 Integer 尾部最大静音时间,[0, 3000],默认500ms。 max_seconds 否 Integer 音频最长持续时间, [1, 60],默认30s。 interim_results 否 String 是否显示中间结果,yes 或 no,默认no。例如分3次发送音频,选择no结果一次性返回,选择yes分三次返回。 vocabulary_id 否 String 热词表id,若没有则不填。 need_word_info 否 String 表示是否在识别结果中输出分词结果信息,取值为“yes”和“no”,默认为“no”。
  • 响应参数 Python SDK响应结果为Json格式,详见表4。调用失败处理方法请参见错误码。 表4 响应结果 参数名称 是否必选 参数类型 描述 resp_type 是 String 参数值为RESULT,表示识别结果响应。 trace_id 是 String 服务内部的令牌,可用于在日志中追溯具体流程。 segments 是 Array of objects 多句结果。详见表5。 表5 Segment 参数名称 是否必选 参数类型 描述 start_time 是 Integer 一句的起始时间戳,单位为ms。 end_time 是 Integer 一句的结束时间戳,单位为ms。 is_final 是 Boolen true表示是最终结果, false表示为中间临时结果。 result 是 Object 调用成功表示识别结果,详见表6。 表6 Result 参数名称 是否必选 参数类型 描述 text 是 String 识别结果。 score 是 Float 识别结果的置信度(0-1之间)。此值仅会在最终结果时被赋值,在中间结果时统一置为“0.0”。 word_info 否 Array of objects 分词信息列表。 表7 Word_info 参数名 是否必选 参数类型 说明 start_time 否 Integer 起始时间 end_time 否 Integer 结束时间 word 否 String 分词
  • 下载SDK包 语音交互SDK软件包获取请参见表 下载SDK包。 示例音频参见示例音频。 当您使用过旧版本的Java SDK时,需要注意旧版本的SDK依赖的jar包与新版本SDK的jar包有无冲突。新版本SDK升级日志为log4j2,同时java-sdk-core升级到3.0.12版本。 优先推荐使用新版SDK语音交互服务SDK,该SDK基于统一规范开发,支持Java/Python/C++/.NET/Go/NodeJs/PHP,使用方法可参考api-explorer、SDK开发指南。该SDK暂不支持websocket方法。 如果需要使用实时语音识别,可考虑使用表 下载SDK包下载SDK使用,当前支持Java SDK、Python SDK、CPP SDK。后序章节均指代该SDK,使用方法可参考Java SDK、Python SDK、CPP SDK(Windows)、CPP SDK(Linux)。当前自研SDK仅java和python提供企业项目配置入口,在代码示例中配置,其他语言暂未支持。 表1 下载SDK包 SDK语言 下载地址 Java https://sis-sdk-repository.obs.cn-north-1.myhuaweicloud.com/java/huaweicloud-java-sdk-sis-1.8.3.zip Python https://sis-sdk-repository.obs.cn-north-1.myhuaweicloud.com/python/huaweicloud-python-sdk-sis-1.8.3.zip iOS(Swift) https://sis-sdk-repository.obs.cn-north-1.myhuaweicloud.com:443/ios/huaweicloud-ios-sdk-sis-1.1.1.zip Android https://sis-sdk-repository.obs.cn-north-1.myhuaweicloud.com:443/android/huaweicloud-android-sdk-sis-1.1.1.1.zip Cpp(Windows) https://sis-sdk-repository.obs.cn-north-1.myhuaweicloud.com:443/cpp/huaweicloud-sdk-cpp-sis-win-1.4.0.zip Cpp(Linux) https://sis-sdk-repository.obs.cn-north-1.myhuaweicloud.com:443/cpp/huaweicloud-cpp-sdk-sis-linux.1.3.2.tar.gz
  • 响应参数 状态响应类为StateResponse,详见表4。 结果响应类为RasrResponse,详见表5。 调用失败处理方法请参见错误码。 表4 StateResponse 参数名称 是否必选 参数类型 描述 state 是 String 识别状态,包括start、end、fail。 traceId 是 String 用于日志问题追溯。 description 是 String 状态描述。 表5 RasrResponse 参数名 参数类型 说明 resp_type String 参数值为RESULT,表示识别结果响应。 trace_id String 服务内部的令牌,可用于在日志中追溯具体流程。 segments Array of objects 多句结果。 请参考表6。 表6 Segment 参数名 参数类型 说明 start_time Integer 一句的起始时间戳,单位为ms。 end_time Integer 一句的结束时间戳,单位为ms。 is_final Boolen true表示是最终结果, false表示为中间临时结果。 result Object 调用成功表示识别结果,调用失败时无此字段。 请参考表7。 表7 Result 参数名 参数类型 说明 text String 识别结果。 score Float 识别结果的置信度,取值范围:0~1。此值仅会在最终结果时被赋值,在中间结果时统一置为“0.0”。 说明: 目前置信度作用不是太大,请勿过多依赖此值。 word_info Array of Object 分词输出列表。 表8 Word_info 数据结构 参数名 是否必选 参数类型 说明 start_time 否 Integer 起始时间 end_time 否 Integer 结束时间 word 否 String 分词
  • 请求参数 请求类为RasrRequest,详见表3。 表3 RasrRequest 参数名称 是否必选 参数类型 描述 audioFormat 是 String 音频格式,支持pcm,alaw,ulaw等,如pcm8k16bit,参见《API参考》中开始识别章节。 property 是 String 属性字符串,language_sampleRate_domain, 如chinese_16k_general,参见《API参考》中开始识别章节。 punc 否 String 表示是否在识别结果中添加标点,取值为yes 、 no,默认no。 digitNorm 否 String 表示是否将语音中的数字识别为阿拉伯数字,取值为yes 、 no,默认为yes。 vadHead 否 Integer 头部最大静音时间,[0, 60000],默认10000ms。 vadTail 否 Integer 尾部最大静音时间,[0, 3000],默认500ms。 maxSeconds 否 Integer 音频最长持续时间, [1, 60],默认30s。 intermediateResult 否 String 是否显示中间结果,yes 或 no,默认no。例如分3次发送音频,选择no结果一次性返回,选择yes分三次返回。 vocabularyId 否 String 热词表id,若没有则不填。 needWordInfo 否 String 表示是否在识别结果中输出分词结果信息,取值为“yes”和“no”,默认为“no”。
  • 初始化Client 初始化RasrClient,其参数包括AuthInfo、RasrListener、SisConfig。 RasrListener需要用户自定义实现监听逻辑,请参见表1和表2。 表1 AuthInfo 参数名称 是否必选 参数类型 描述 ak 是 String 用户的ak,可参考AK/SK认证。 sk 是 String 用户的sk,可参考AK/SK认证。 region 是 String 区域,如cn-north-4,参考终端节点。 projectId 是 String 项目ID,同region一一对应,参考获取项目ID。 endpoint 否 String 终端节点,参考地区和终端节点。一般使用默认即可。 表2 SisConfig 参数名称 是否必选 参数类型 描述 connectionTimeout 否 Integer 连接超时,默认10000,单位ms。 readTimeout 否 Integer 读取超时,默认10000,单位ms。
  • 请求参数 请求类为FlashLasrRequest,详见表3。 表3 FlashLasrRequest 参数 是否必选 参数类型 描述 audio_format 是 String 支持语音的格式,请参考表4。 property 是 String 所使用的模型特征串,通常是 “语种_采样率_领域”的形式,采样率需要与音频采样率保持一致,取值范围请参考表5。 add_punc 否 String 表示是否在识别结果中添加标点,取值为“yes”和“no”,默认为“no”。 digit_norm 否 String 表示是否将语音中的数字识别为阿拉伯数字,取值为“yes” 和 “no”,默认为“yes”。 vocabulary_id 否 String 热词表id,不使用则不填写。 创建热词表信息请参考创建热词表。 need_word_info 否 String 表示是否在识别结果中输出分词结果信息,取值为“yes”和“no”,默认为“no”。 first_channel_only 否 String 表示是否在识别中只识别首个声道的音频数据,取值为“yes”和“no”,默认为“no”。 obs_bucket_name 否 String 表示在OBS对象桶名,使用前请先授权,操作方法请参见配置OBS访问权限。obs_bucket_name长度大于等于3个字符,小于64个字符,不需要进行urlencode编码,如果包含中文,直接输入中文即可。 示例 obs url为https://test.obs.cn-north-4.myhuaweicloud.com/data/0601/test.wav 则obs_bucket_name=test,obs_bucket_key=data/0601/test.wav obs_object_key 否 String 表示OBS对象桶中的对象的键值,长度小于1024个字符,不需要进行urlencode编码,如果包含中文,直接输入中文即可。 示例 obs url为https://test.obs.cn-north-4.myhuaweicloud.com/data/0601/test.wav 则obs_bucket_name=test,obs_bucket_key=data/0601/test.wav 表4 audio_format audio_format取值 描述 wav wav格式音频 mp3 mp3格式音频 m4a m4a格式音频 aac aac格式音频 opus ops格式音频。 表5 property property取值 描述 chinese_8k_common 支持采样率为8k的中文普通话语音识别。 chinese_16k_conversation 支持采样率为16k的会议场景的中文普通话语音识别。
  • 初始化Client 初始化FlashLasrClient,其参数包括AuthInfo和SisConfig。 表1 AuthInfo 参数名称 是否必选 参数类型 描述 ak 是 String 用户的ak,可参考AK/SK认证。 sk 是 String 用户的sk,可参考AK/SK认证。 region 是 String 区域,如cn-north-4,参考终端节点。 projectId 是 String 项目ID,同region一一对应,参考获取项目ID。 endpoint 否 String 终端节点,参考地区和终端节点。一般使用默认即可。 表2 SisConfig 参数名称 是否必选 参数类型 描述 connectionTimeout 否 Integer 连接超时,默认10000,单位ms。 readTimeout 否 Integer 读取超时,默认10000,单位ms。
  • 实时语音识别 支持“华北-北京四”、“华东-上海一”区域。 当前服务仅支持北京和上海区域,后续会陆续上线其他区域。 华北-北京四,推荐的区域,支持一句话识别、录音文件识别、实时语音识别和语音合成和热词等接口。 华东-上海一,推荐的区域,支持一句话识别、录音文件识别、实时语音识别、语音合成和热词等接口。 音频采样率8KHz或者16KHz,采样位数8bit或者16bit。 支持中文普通话、方言和英语的语音识别,其中方言包括:四川话、粤语和上海话。 方言和英语仅支持“华北-北京四”区域。 端点检测参数(vad_head、vad_tail、max_seconds)会影响句子的分段结果,存在一定误差。对连续模式和单句模式生效,对流式一句话模式无效。 父主题: 约束与限制
  • 录音文件识别 支持“华北-北京四”、“华东-上海一”区域。 当前语音服务仅支持北京和上海区域,后续会陆续上线其他区域。 华北-北京四,推荐的区域。 华东-上海一,推荐的区域。 支持pcm16k16bit、pcm8k16bit、ulaw16k8bit、ulaw8k8bit、alaw16k8bit、alaw8k8bit、WAV(支持pcm/ulaw/alaw/adpcm编码格式)、MP3、M4A、ogg-speex、ogg-opus、AMR等多种格式,详见API参考文档中的“audio_format取值范围”。 语音时长不超过5小时,文件大小不超过300M,用户的识别任务在6小时内完成并返回识别结果,识别结果保存72小时(从转写完成的时间算起)。 支持中文普通话、四川话识别。 父主题: 约束与限制
  • 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}/rtts Request Header: X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG... Python3语言请求代码示例 # -*- coding: utf-8 -*- # 此demo仅供测试使用,强烈建议使用sdk。需提前安装websocket-client, 执行pip install websocket-client import websocket import threading import time import json def 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(); } }
  • 功能介绍 流式一句话模式的语音长度限制为一分钟,适合于对话聊天等识别场景。 该接口支持用户将一整段语音分段,以流式输入,最后得到识别结果。实时语音识别引擎在获得分段的输入语音的同时,就可以同步地对这段数据进行特征提取和解码工作,而不用等到所有数据都获得后再开始工作。因此这样就可以在最后一段语音结束后,仅延迟很短的时间(也即等待处理最后一段语音数据以及获取最终结果的时间)即可返回最终识别结果。这种流式输入方式能缩短整体上获得最终结果的时间,极大地提升用户体验。
  • 概述 SSML 是一种基于 XML 的语音合成标记语言。使用 SSML 可以更加准确、具体的定义合成音频的效果,包括控制断句分词方式、发音、速度、停顿、声调和音量等特征。相比文本输入进行合成,有更好的操作灵活性。 华为云语音合成服务的SSML实现,基于W3C的语音合成标记语言版本1.1,但并不支持W3C包含的所有的标记类型。目前仅华小飞,华小美,华小龙,华小蕊合成支持 SSML功能。该特性与语言无关。发音人property取值详见语音合成。 华小飞(朝气男声):chinese_huaxiaofei_common,支持8k/16k采样率。 华小美(温柔女声):chinese_huaxiaomei_common,支持8k/16k采样率。 华小龙(朝气男声):chinese_huaxiaolong_common,支持16k采样率。 华小蕊(知性女声):chinese_huaxiaorui_common,支持16k采样率。
  • 响应参数 状态码: 200 表7 响应参数 参数 是否必选 参数类型 描述 trace_id 是 String trace_id可用于在日志中追溯具体流程,调用失败无此字段。 在某些错误情况下可能没有此令牌字符串。 audio_duration 是 Integer 音频时长,单位毫秒。 flash_result 是 Array of FlashResult objects 调用成功表示识别结果,调用失败时无此字段。 表8 FlashResult 参数 是否必选 参数类型 描述 channel_id 否 Integer 声道Id。 sentences 否 Array of Sentences objects 分句信息列表。 表9 Sentences 参数 是否必选 参数类型 描述 start_time 否 Integer 一句话开始时间,单位毫秒。 result 否 Result object 分句结果信息。 end_time 否 Integer 一句话结束时间,单位毫秒。 表10 Result 参数 是否必选 参数类型 描述 text 是 String 调用成功表示识别出的内容。 score 是 Double 调用成功表示识别出的置信度(0-1之间)。 word_info 否 Array of WordInfo objects 分词信息列表。 表11 WordInfo 参数 是否必选 参数类型 描述 start_time 否 Integer 起始时间。 end_time 否 Integer 结束时间。 word 否 String 分词。 状态码: 400 表12 响应Body参数 参数 参数类型 描述 error_code String 调用失败时的错误码。 调用成功时无此字段。 error_msg String 调用失败时的错误信息。 调用成功时无此字段。
  • 响应示例 状态码:200 成功响应示例 { "trace_id": "567e8537-a89c-13c3-a882-826321939xxx", "audio_duration": 1010, "flash_result": [ { "channel_id": 0, "sentences": [ { "start_time": 550, "end_time": 900, "result": { "text": "北京", "score": 0.831, "word_info": [ { "word": "北", "start_time": 560, "end_time": 720 }, { "word": "京", "start_time": 730, "end_time": 890 } ] } } ] } ] } 状态码:400 失败响应示例 { "error_code":"SIS.0001", "error_msg":"***" }
  • 请求示例 “endpoint”即调用API的请求地址,不同服务不同区域的“endpoint”不同,具体请参见终端节点。 快速识别录音文件的音频内容,转写为文字 POST https://{endpoint}/v1/{project_id}/asr/flash?property=chinese_8k_common&audio_format=wav&add_punc=yes&digit_norm=yes&need_word_info=yes&first_channel_only=yes&vocabulary_id=4c111ee8-fbd6-4a73-941a-9f869c6c56f5&obs_bucket_name=test&obs_object_key=data/0601/test.wav Request Header: Content-Type: application/json X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG...
  • URI POST /v1/{project_id}/asr/flash 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目编号。获取方法,请参见获取项目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”。 表3 Query参数 参数 是否必选 参数类型 描述 audio_format 是 String 支持语音的格式,请参考表 audio_format取值范围。 property 是 String 所使用的模型特征串,通常是 “语种_采样率_领域”的形式,采样率需要与音频采样率保持一致,取值范围请参考表 property取值范围。 obs_bucket_name 是 String 表示在OBS对象桶名,使用前请先授权配置请参见配置OBS访问权限。obs_bucket_name字符长度区间为[3,64),需要进行urlencode编码。 OBS桶区域需要与接口的地址区域一致。 示例: obs url为https://sis-audio-cn4.obs.cn-north-4.myhuaweicloud.com/abc/16k_pcm.wav 则obs_bucket_name值为sis-audio-cn4,obs_object_key值为abc/16k_pcm.wav。如果上传至OBS桶中的文件或OBS路径为中文,obs_object_key的值需要采用中文形式。 obs_object_key 是 String 表示OBS对象桶中的对象的键值,长度小于1024个字符,需要进行urlencode编码。 OBS桶区域需要与接口的地址区域一致。 示例: obs url为https://sis-audio-cn4.obs.cn-north-4.myhuaweicloud.com/abc/16k_pcm.wav 则obs_bucket_name=sis-audio-cn4,obs_object_key=abc/16k_pcm.wav add_punc 否 String 表示是否在识别结果中添加标点,取值为“yes”和“no”,默认为“no”。 digit_norm 否 String 表示是否将语音中的数字识别为阿拉伯数字,取值为“yes” 和 “no”,默认为“yes”。 need_word_info 否 String 表示是否在识别结果中输出分词结果信息,取值为“yes”和“no”,默认为“no”。 first_channel_only 否 String 表示是否在识别中只识别首个声道的音频数据,取值为“yes”和“no”,默认为“no”。 说明: 如果音频数据为多声道,参数取默认值no时,会叠加计费。例如,双声道收费为双倍。 表4 audio_format取值范围 audio_format取值 描述 wav wav格式音频。 mp3 mp3格式音频。 m4a m4a格式音频。 acc acc格式音频。 opus opus格式音频。 表5 property取值范围 property取值 描述 chinese_8k_common 支持采样率为8k的中文普通话语音识别。 chinese_16k_conversation 支持采样率为16k的会议场景的中文普通话语音识别。
  • 功能介绍 单句模式自动检测一句话的结束,因此适合于需要与您的系统进行交互的场景,例如外呼、控制口令等场景。 实时语音识别引擎的单句识别模式,和连续识别模式类似,也会进行语音的端点检测,如果检测到静音,将直接丢弃,检测到语音才会馈入核心进行实际的解码工作,如果检测到一段语音的结束点,就会将当前这一段的识别结果返回。和连续识别不同的是,在单句模式下,返回第一段的识别结果后,将不再继续识别后续的音频。这主要是用于和用户进行语音交互的场景下,当用户说完一句话后,往往会等待后续的交互操作,例如聆听根据识别结果播报的相关内容,因而没有必要继续识别后续的音频。
  • 功能介绍 连续识别模式的语音总长度限制为五小时,适合于会议、演讲和直播等场景。 连续识别模式在流式识别的基础上,结合了语音的端点检测功能。语音数据也是分段输入,但是连续识别模式将会在处理数据之前进行端点检测,如果是语音才会进行实际的解码工作,如果检测到静音,将直接丢弃。如果检测到一段语音的结束点,就会直接将当前这一段的识别结果返回,然后继续检测后面的语音数据。因此在连续识别模式中,可能多次返回识别结果。如果送入的一段语音较长,甚至有可能在一次返回中包括了多段的识别结果。 由于引入了静音检测,连续识别模式通常会比流式识别能具有更高的效率,因为对于静音段将不会进行特征提取和解码操作,因而能更有效地利用CPU。而流式识别通常和客户端的端点检测功能相结合,只将检测到的有效语音段上传到服务器进行识别。
  • 计费方式 DDoS原生高级防护提供DDoS原生标准版、DDoS原生防护-全力防基础版、DDoS原生防护-全力防高级版三种服务版本,根据您选择的版本和规格参数计费。 DDoS原生标准版、DDoS原生防护-全力防高级版提供包周期预付费计费模式,使用越久越便宜。包周期计费按照订单的购买周期来进行结算。 DDoS原生防护-全力防基础版提供按需和包周期的计费模式。 表1 计费项信息 版本 计费项目 计费方式 说明 DDoS原生标准版 实例 按购买的实例数量计费。 每个实例的防护规格说明如下: 防护能力:20G 防护IP数:1个 防护次数:10次 IP更换次数:5次 购买时长:1个月 业务带宽:默认提供100M DDoS原生防护-全力防基础版 实例 按购买的实例数量计费。 - 防护IP数 每个DDoS原生防护-全力防基础版实例防护的IP个数。 取值范围为50~500,且防护IP数必须设置为5的倍数。 防护次数 每个DDoS原生防护-全力防基础版实例防护的次数。 防护次数:无限次 购买时长 提供包月和包年的购买模式。 支持“3个月”、“6个月”或“1年”。 DDoS原生防护-全力防高级版 实例 按购买的实例数量计费。 - 防护IP数 每个DDoS原生防护-全力防高级版实例防护的IP个数。 取值范围为50~500,且防护IP数必须设置为5的倍数。 防护次数 每个DDoS原生防护-全力防高级版实例防护的次数。 防护次数:无限次 购买时长 提供包月和包年的购买模式。 支持“3个月”、“6个月”或“1年”。 有关DDoS原生高级防护支持的业务规格详细介绍,请参见DDoS原生高级防护业务规格。
  • 计费方式 华为云DDoS高防根据您选择业务宽带、保底防护宽带和弹性防护宽带的规格计费。 表1 计费项信息 计费项 计费方式 计费说明 业务带宽 预付费,按月/年付费。 高防机房将清洗后的干净流量,转发给源站所占用的带宽。 说明: 高防机房在华为云外,建议购买的高防业务带宽规格大于或等于源站出口带宽。 保底防护带宽 预付费,按月/年付费。 用于防御攻击的保底带宽。如果攻击峰值小于等于客户购买的保底防护带宽,客户无需支付月/年费以外的额外费用。 说明: 不同线路套餐的保底防护带宽的价格不同,具体请参考产品价格详情。 弹性防护带宽 后付费,按天付费。 用于防御攻击的最大可用带宽。计费规则请参考DDoS高防弹性带宽具体怎么计费。 弹性防护宽带的计费详情: 计费标准:取决于当日发生的攻击峰值,即一天内发生多次攻击,仅峰值最高的攻击参与计费。 后付费:根据实际攻击峰值产生弹性防护费用。如果没有攻击,便不会产生弹性防护费用。 规格可调整:DDoS高防服务管理控制台支持调整弹性防护带宽,调整后新的弹性防护带宽可立即生效。 可避免付费:将弹性防护带宽设置为与基础防护带宽一致,则可避免产生弹性防护的后付费费用。
  • 计费示例 以包年/包月购买DDoS高防为例,假设您在2023/03/08 15:50:04购买了一个接入类型为网站类的DDoS高防实例,计费资源包括线路资源、保底防护带宽、弹性防护带宽、业务带宽、防护域名数。购买时长为1个月,并在到期前手动续费1个月,则: 第一个计费周期为:2023/03/08 15:50:04 ~ 2023/04/08 23:59:59 第二个计费周期为:2023/04/08 23:59:59 ~ 2023/05/08 23:59:59 图1给出了上述示例配置的费用计算过程。 图中价格仅为示例,实际价格请以控制台为准。 图1 费用计算示例
  • 计费说明 DDoS高防的计费项主要由实例数量、保底防护带宽、弹性防护带宽、业务带宽、防护域名数、转发规则数组成。不同接入模式的计费项如表1所示。 表1 计费项 版本 计费模式 计费项 说明 DDoS高防 包年/包月(含后付费项目) 实例数 按购买的实例数量计费。 保底防护带宽 预付费,按月/年付费。 弹性防护带宽 后付费,按天付费。如果当天的攻击峰值≤保底防护带宽,则不会产生弹性防护带宽费用。 业务带宽 免费赠送100Mbps,超出部分按月/年付费。 防护域名数 每个实例防护的域名个数,域名接入类型才有该计费项。
  • 适用场景 包年/包月计费模式需要用户预先支付一定时长的费用,适用于长期、稳定的业务需求。以下是一些适用于包年/包月计费模式的业务场景: 稳定业务需求:对于长期运行且资源需求相对稳定的业务,如企业官网、在线商城、博客等,包年/包月计费模式能提供较高的成本效益。 长期项目:对于周期较长的项目,如科研项目、大型活动策划等,包年/包月计费模式可以确保在整个项目周期内资源的稳定使用。 业务高峰预测:如果能预测到业务高峰期,如电商促销季、节假日等,可提前购买包年/包月资源以应对高峰期的需求,避免资源紧张。 数据安全要求高:对于对数据安全性要求较高的业务,包年/包月计费模式可确保资源的持续使用,降低因资源欠费而导致的数据安全风险。
  • 适用计费项 DDoS防护服务不同版本,支持包年/包月的计费项如表1所示。 表1 计费项 版本 计费项 说明 DDoS原生防护-标准版 实例 按购买的实例数量计费。 DDoS原生防护-全力防基础版 实例 按购买的实例数量计费。 防护IP数 每个实例防护的IP个数。 业务带宽 业务使用的带宽资源。 DDoS原生防护-全力防高级版 实例 按购买的实例数量计费。 防护IP数 每个实例防护的IP个数。 业务带宽 业务使用的带宽资源。 DDoS高防 实例数 按购买的实例数量计费。 保底防护带宽 预付费,按月/年付费。 弹性防护带宽 后付费,按天付费。 业务带宽 免费赠送100Mbps,超出部分按月/年付费。 防护域名数 每个实例防护的域名个数,域名接入类型才有该计费项。 DDoS高防国际版 实例数量 按购买的实例数量计费。 保底防护带宽 预付费,按月/年付费。 业务带宽 预付费,按月/年付费。 防护域名数 每个实例防护的域名个数。 转发规则数 每个实例可添加的TCP/UDP转发规则。
  • 变更配置后对计费的影响 当前DDoS实例资源的规格不满足您的业务需要时,您可以在DDoS防护控制台发起升级规格操作,变更时系统将按照如下规则为您计算变更费用: 资源升配:新配置价格高于老配置价格,此时您需要支付新老配置的差价。 资源降配:DDoS实例暂不支持降配。 如果您需要从BGP 10G包月版本(假设:8700元/月)升级至BGP Pro 10G包月版本(假设:9800元/月),您当前版本剩余天数还20天。 计算公式如下: 升配费用=(新配置包月价格/30-旧配置包月价格/30)*剩余周期 那么你需要补充的费用是:(9800/30-8700/30)x20=733.34元。 更多信息请参见变更资源规格费用说明。
  • 到期后影响 图2描述了包年/包月DDoS实例各个阶段的状态。购买后,在计费周期内资源正常运行,此阶段为有效期;资源到期而未续费时,将陆续进入宽限期和保留期。 图2 DDoS实例生命周期 到期预警 包年/包月DDoS实例在到期前第7天内,系统将向用户推送到期预警消息。预警消息将通过邮件、短信和站内信的方式通知到华为云账号的创建者。 到期后影响 当您的包年/包月DDoS实例到期未续费,首先会进入宽限期,资源状态变为“已过期”。宽限期内您可以使用DDoS防护服务,但以下操作将受到限制: 升级规格 如果您在宽限期内仍未续费DDoS实例,那么就会进入保留期,资源状态变为“已冻结”,您将无法对处于保留期的DDoS实例执行任何操作。 保留期到期后,如果DDoS实例仍未续费,那么DDoS实例将被释放,数据无法恢复。 华为云根据客户等级定义了不同客户的宽限期和保留期时长。 关于续费的详细介绍请参见续费概述。
共100000条