华为云用户手册

  • 初始化Client 初始化SasrWsClient,其中参数包含AuthInfo,SisHttpConfig,SasrWsResponseListener,SasrWsConnProcessListener。 表1 SasrWsClient 参数 是否必选 参数类型 描述 AuthInfo 是 Object 鉴权信息类。 SisHttpConfig 是 Object 连接时网络的配置类。 SasrWsResponseListener 是 Object webSocket回调过程中,业务逻辑的Listener。 SasrWsConnProcessListener 否 Object webSocket生命周期的Listener。 其中AuthInfo和SisHttpConfig的参数如下表所示 表2 AuthInfo 参数名称 是否必选 参数类型 描述 ak 是 String 用户的ak,可参考AK/SK认证。 sk 是 String 用户的sk,可参考AK/SK认证。 serviceRegion 是 String 区域,如cn-north-4,参考终端节点。 projectId 是 String 项目ID,同region一一对应,参考获取项目ID。 serviceEndPoint 否 String 终端节点,参考地区和终端节点。 表3 SisHttpConfig 参数名称 是否必选 参数类型 描述 connectionTimeout 否 Integer 连接超时,默认10000,单位ms。 readTimeout 否 Integer 读取超时,默认10000,单位ms。 websocketWaitTimeout 否 Integer webSocket返回数据时等待时间,默认20000,单位毫秒。 ProxyHostInfo 否 ProxyHostInfo 代理类。 表4 ProxyHostInfo 参数名称 是否必选 参数类型 描述 userName 否 String 代理用户名(例:test)。 passWord 否 String 代理密码(例:test)。 hostName 否 String 代理地址(例:“proxy.huaweicloud.com”)。 port 否 int 代理端口号(例:8080)。 表5 SasrWsResponseListener 函数 描述 void onExceededAudio(); 识别时长超过一分钟时,响应,后续录入音频不在识别。 void onResponseError(AsrResponse response); 识别过程中出现异常,调用。 void onResponseEnd(AsrResponse response); 识别结束时回调。 void onResponseBegin(AsrResponse response); 识别开始时回调。 void onResponseMessage(AsrResponse message); 返回识别的结果。 表6 SasrWsConnProcessListener 函数 描述 void onTranscriptionConnect() webSocket连接建立后回调。 void onTranscriptionClose(); webSocket连接关闭后回调 void onTranscriptionFail(AsrResponse var1); webSocket长连接连接失败是回调。
  • 请求参数 请求类为RasrRequest,其中参数详见下表 表7 RasrRequest 参数名称 是否必选 参数类型 描述 command 是 String 需设置为START,表示开始识别请求;发送END,表示识别结束请求。 config 是 Object 配置信息,详见表8。 表8 Config 参数名称 是否必选 参数类型 描述 audioFormat 是 String 音频格式,支持pcm,alaw,ulaw等,如pcm8k16bit,参见《API参考》中开始识别章节。 property 是 String 属性字符串,language_sampleRate_domain, 如chinese_16k_general,参见《API参考》中开始识别章节。 addPunc 否 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”。
  • 三方库安装 本SDK所依赖的三方库包含 - openssl - jsoncpp - websocketpp - glog - gflags - boost 依赖库均以源码形式存放在SDK根目录,SDK默认是开启所有依赖库安装,即运行cmake命令时,SDK会默认安装这些依赖库。 如果您在系统中已安装其中一些库,如openssl等,构建的时候可以选择跳过。如 cmake .. -DOPENSSL=OFF , 跳过对openssl安装。如果所有依赖库之前已安装在系统中,则可以全部跳过。cmake .. -DWEBSOCKETPP=OFF -DJSONCPP=OFF -DBOOST=OFF -DGFLAGS=OFF -DG LOG =OFF - DOPENSSL=OFF 详细使用请参考SDK压缩包中的说明文档。
  • 初始化Client 初始化RasrClient,其中参数包含AuthInfo,SisHttpCnfig,RasrResponseListener,RasrConnProcessListener 表1 RasrClient 参数名称 是否必选 参数类型 描述 AuthInfo 是 Object 鉴权信息类。 SisHttpCnfig 是 Object 连接时网络的配置类。 RasrResponseListener 是 Object webSocket回调过程中,业务逻辑的Listener。 RasrConnProcessListener 否 Object webSocket生命周期的Listener。 表2 AuthInfo 参数名称 是否必选 参数类型 描述 ak 是 String 用户的ak,可参考AK/SK认证。 sk 是 String 用户的sk,可参考AK/SK认证。 serviceRegion 是 String 区域,如cn-north-4,参考终端节点。 projectId 是 String 项目ID,同region一一对应,参考获取项目ID。 serviceEndPoint 否 String 终端节点,参考地区和终端节点。 表3 SisHttpConfig 参数名称 是否必选 参数类型 描述 connectionTimeout 否 Integer 连接超时,默认10000,单位ms。 readTimeout 否 Integer 读取超时,默认10000,单位ms。 websocketWaitTimeout 否 Integer webSocket返回数据时等待时间,默认20000,单位毫秒。 ProxyHostInfo 否 ProxyHostInfo 代理类。 表4 ProxyHostInfo 参数名称 是否必选 参数类型 描述 userName 否 String 代理用户名(例:test)。 passWord 否 String 代理密码(例:test)。 hostName 否 String 代理地址(例:“proxy.huaweicloud.com”)。 port 否 int 代理端口号(例:8080)。 表5 RasrResponseListener 函数 描述 void onResponseBegin(AsrResponse response); 识别开始时回调。 void onResponseEnd(AsrResponse response); 识别结束时回调。 void onResponseError(AsrResponse response); 识别过程中出现异常,调用。 void onResponseMessage(AsrResponse message); 返回识别的结果。 void onVoiceStart(); 单句模式下,响应VOICE_START事件,表示检测到语音,此时IVR可以做打断(连续模式可忽略)。 void onVoiceEnd(); 单句模式下,响应VOICE_END事件,表示一句话结束,后续的音频将被忽略,不会再进行识别(连续模式可忽略)。 void onExcceededSilence(); 单句模式下,响应EXCEEDED_SILENCE事件,表示超过vad_head没有检测到声音,通常表示用户一直没有说话。此时后续的音频将被忽略,不会再进行识别(连续模式可忽略)。 表6 RasrConnProcessListener 函数 描述 void onTranscriptionConnect() webSocket连接建立后回调。 void onTranscriptionClose(); webSocket连接关闭后回调。 void onTranscriptionFail(AsrResponse var1); webSocket长连接连接失败是回调。
  • 请求参数 请求类为SasrWebsocketRequest,详见表 SasrWebsocketRequest。 表3 SasrWebsocketRequest 参数名称 是否必选 参数类型 描述 audioFormat 是 String 音频格式,支持pcm,alaw,ulaw等,如pcm8k16bit,具体规格请参见《API参考》中开始识别章节。 property 是 String 属性字符串,language_sampleRate_domain, 如chinese_8k_common。 punc 否 String 表示是否在识别结果中添加标点,取值为yes 、 no,默认no。 digitNorm 否 String 表示是否将语音中的数字识别为阿拉伯数字,取值为yes 、 no,默认为yes。 intermediateResult 否 String 是否显示中间结果,yes 或 no,默认no。 vocabularyId 否 String 热词表id,若没有则不填。 needWordInfo 否 String 表示是否在识别结果中输出分词结果信息,取值为“yes”和“no”,默认为“no”。
  • 初始化Client 初始化SasrWebsocketClient,其参数包括AuthInfo、RasrListener、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。
  • 响应参数 状态响应类为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 分词
  • 示例音频 测试音频如表 示例音频所示,音频文件标题表示采样率和位宽。如8k16bit.pcm表示音频采样率为8k,位宽为16bit。 表1 示例音频 音频格式 下载链接 mp3 https://sis-sample-audio.obs.cn-north-1.myhuaweicloud.com/16k16bit.mp3 wav https://sis-sample-audio.obs.cn-north-1.myhuaweicloud.com/16k16bit.wav pcm https://sis-sample-audio.obs.cn-north-1.myhuaweicloud.com/16k16bit.pcm pcm https://sis-sample-audio.obs.cn-north-1.myhuaweicloud.com/8k16bit.pcm 父主题: 附录
  • SDK列表 在开始使用之前,请确保您安装的是最新版本的SDK。使用过时的版本可能会导致兼容性问题或无法使用最新功能。您可以在 SDK中心 查询版本信息。 表1提供了huaweicloud-sdk-php-v3SIS服务支持的SDK列表,您可以在GitHub仓库查看SDK更新历史、获取安装包以及查看指导文档。 表1 SDK列表 编程语言 Github地址 参考文档 Java huaweicloud-sdk-java-v3 Java SDK使用指导 Python huaweicloud-sdk-python-v3 Python SDK使用指导 C++ huaweicloud-sdk-cpp-v3 C++ SDK使用指导 .NETet huaweicloud-sdk-net-v3 .NET SDK使用指导 Go huaweicloud-sdk-go-v3 Go SDK使用指导 NodeJs huaweicloud-sdk-nodejs-v3 NodeJs SDK使用指导 PHP huaweicloud-sdk-php-v3 PHP SDK使用指导
  • 响应参数 Python SDK响应结果为Json格式,详见表4。调用失败处理方法请参见错误码。 表4 响应结果 参数名称 是否必选 参数类型 描述 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 objects 识别结果, 多句结果的数组。 数据结构参见表5。 表5 Segment 参数名 是否必选 参数类型 说明 start_time 是 Integer 一句的起始时间戳,单位ms。 end_time 是 Integer 一句的结束时间戳,单位ms。 result 是 Object 调用成功表示识别结果,调用失败时无此字段。详见表6。 表6 Result 参数名 是否必选 参数类型 说明 text 是 String 识别结果文本。 analysis_info 否 Object 每一句的质检分析结果对象。 仅在识别配置中的need_analysis_info不为null时存在该返回结果。详见表7。 word_info 否 Array of Object 分词输出列表。 表7 Analysis_info 参数名 是否必选 参数类型 说明 role 否 String 角色类型,目前仅支持 AGENT(座席),USER(用户)。 emotion 否 String 情绪类型,目前仅支持NORMAL(正常),ANGRY(愤怒)。 在识别配置中emotion为true时存在。 speed 否 Float 语速信息,单位是"每秒字数"。 在识别配置中speed为true时存在。 表8 Word_info 数据结构 参数名 是否必选 参数类型 说明 start_time 否 Integer 起始时间 end_time 否 Integer 结束时间 word 否 String 分词
  • 初始化Client 初始化AsrCustomizationClient详见表 AsrCustomizationClient初始化参数。 表1 AsrCustomizationClient初始化参数 参数名称 是否必选 参数类型 描述 ak 是 String 用户的ak,可参考AK/SK认证。 sk 是 String 用户的sk,可参考AK/SK认证。 region 是 String 区域,如:cn-north-4。具体请参考终端节点。 project_id 是 String 项目ID,同region一一对应,参考获取项目ID。 service_endpoint 否 String 终端节点,一般使用默认即可。 sis_config 否 Object 详见表2。 表2 SisConfig 参数名称 是否必选 参数类型 描述 connect_timeout 否 Integer 连接超时,默认10,单位s。 read_timeout 否 Integer 读取超时,默认10,单位s。 proxy 否 List [host, port] 或 [host, port, username, password]。
  • 请求参数 请求类为AsrCustomLongRequest,详见表3。 表3 AsrCustomLongRequest 参数名称 是否必选 参数类型 描述 data_url 是 String 存放录音文件地址: 推荐使用华为云OBS:授权配置请参见OBS配置。 您也可以把录音文件放在自行搭建服务器上,提供下载文件的地址。URL不能使用IP地址,只能使用 域名 ,请尽量避免中文 audio_format 是 String 音频格式,具体信息请参见《API参考》中录音文件识别章节。 model_property 是 String 属性字符串,语言_采样率_模型,如chinese_8k_common。具体信息请参见《API参考》中录音文件识别章节。 add_punc 否 String 表示是否在识别结果中添加标点,取值为yes 、 no,默认no。 digit_norm 否 String 表示是否将语音中的数字识别为阿拉伯数字,取值为yes 、 no,默认为yes。 need_analysis_info 否 Boolean 是否选择分析信息。 如果选择false,则声道、话者分离、情绪检测、速度信息均无效。默认false。 diarization 否 Boolean 是否需要话者分离,表示识别结果会包含role项,默认true。 channel 否 String 语音文件声道信息,可以为MONO(缺省), LEFT_AGENT, RIGHT_AGENT。默认MONO。 emotion 否 Boolean 是否需要做情绪检测,默认true。 speed 否 Boolean 是否需要输出语速信息,默认true。 vocabulary_id 否 String 热词表id,不使用则不填写。 创建热词表请参考《API参考》中创建热词表章节。 word_info 否 Array of objects 分词信息列表。
  • Python接口与API对应关系 Python接口与API对应关系请参见表 Python接口与API对应关系表。 表2 Python接口与API对应关系表 Class Method API 功能名称 RasrClient continue_stream_connect(request) wss://{endpoint}/v1/{project_id}/rasr/continue-stream 实时流连续模式 short_stream_connect(request) wss://{endpoint}/v1/{project_id}/rasr/short-stream 实时流一句话模式 sentence_stream_connect(request) wss://{endpoint}/v1/{project_id}/rasr/sentence-stream 实时流单句模式 AsrCustomizationClient get_short_response(request) POST /v1/{project_id}/asr/short-audio 一句话识别 submit_job(request) POST /v1/{project_id}/asr/transcriber/jobs 录音文件识别-提交请求 get_long_response(job_id) GET /v1/{project_id}/asr/transcriber/jobs/{job_id} 录音文件识别-状态查询 TtsCustomizationClient get_tts_response(request) POST /v1/{project_id}/tts 语音合成 HotWordClient create(request) POST /v1/{project_id}/asr/vocabularies 创建热词表 update(request, vocabulary_id) PUT /v1/{project_id}/asr/vocabularies/{vocabulary_id} 更新热词表 query_by_vocabulary_id(vocabularyId) GET /v1/{project_id}/asr/vocabularies/{vocabulary_id} 查询热词表信息 query() GET /v1/{project_id}/asr/vocabularies 查询热词表列表 delete(vocabulary_id) DELETE /v1/{project_id}/asr/vocabularies/{vocabulary_id} 删除热词表
  • SDK概述 优先推荐使用新版SDK 语音交互 服务SDK,该SDK基于统一规范开发,支持Java/Python/C++/.NET/Go/NodeJs/PHP,使用方法可参考api-explorer。该SDK暂不支持websocket方法。 如果需要使用 实时语音识别 ,可考虑使用替代SDK,当前支持Java SDK、Python SDK、CPP SDK、iOS SDK、Android SDK。使用方法可参考Java SDK、Python SDK、CPP SDK(Windows)、CPP SDK(Linux)。后序章节均指代该SDK。
  • 修订记录 发布日期 修订说明 2023-09-27 新增: iOS SDK新增一句话识别、实时 语音识别 连续模式 2023-03-06 新增: CPP SDK支持Linux版本 2022-08-02 新增: Java SDK新增实时语音合成 Python SDK新增实时语音合成 CPP SDK新增实时语音合成 2022-07-07 新增: 获取录音文件识别结果API支持返回提交音频的时长。 CPP SDK上线。 2022-06-08 新增: 实时语音合成支持温柔女声、朝气男声精品发音人。 2022-05-31 新增: 语音合成新增朝气男声发音人。 2022-02-15 新增: 录音文件识别输入参数兼容公网访问的url。 2021-08-28 SDK发布1.7.0版本,新增以下章节: 一句话识别Websocket接口 2021-06-16 SDK发布1.6.0版本,新增以下章节: 录音文件极速版 2020-08-20 SDK发布1.3.0版本,修改以下章节: Java SDK Python SDK 2020-07-17 新增“digit_norm”字段,修改以下章节: 一句话识别 录音文件识别 实时语音识别 2020-04-21 新增: 热词管理章节 2019-11-29 新增: Python SDK章节 2019-11-18 整改SDK手册 2019-09-25 新增: 语音合成章节 2019-08-06 新增: 语音识别章节 修改: Runtime Exception修改为Checked Exception 2019-07-30 新增: 实时语音识别章节 2019-07-02 下线了ASR SDK的长语音识别功能。 2019-06-10 重新封装SDK,进行了重构,加入重试机制。 2019-03-30 第一次正式发布。
  • AK/SK认证 使用服务API需要进行认证,目前SDK仅支持AK/SK认证方式。 使用AK/SK方式,需要用户提供AK和SK。 注册并登录华为云管理控制台。 在控制台中,鼠标移动至右上角的用户名处,在下拉列表中单击“我的凭证”。 单击“访问密钥”页签,在页签中,单击“新增访问密钥”。 在“身份验证”对话框中,输入当前用户的登录密码,通过邮箱或者手机进行验证,输入对应的验证码。 单击“确定”,下载认证账号的AK/SK,请妥善保管AK/SK信息。
  • 配置环境 在使用语音交互SDK时,需要准备的环境请参见表 开发环境。 目前Java SDK不支持在android中使用。 表1 开发环境 准备项 说明 操作系统 Windows系统,推荐Windows 7及以上版本。 JDK Java开发环境的基本配置。版本要求:强烈推荐使用1.8版本。 Eclipse 在Eclipse官网下载对应平台的Eclipse版本,比如:eclipse-jee-mars-R-win32-x86_64.zip。 Idea 在Idea官网下载对应平台的idea版本,比如:ideaIU-2023.2.2.exe。
  • 响应参数 响应类为AsrCustomLongResponse,详见表4。调用失败处理方法请参见错误码。 表4 AsrCustomLongResponse 参数名称 是否必选 参数类型 描述 status 是 String 描述返回状态。 WAITING 等待识别。 FINISHED识别已经完成。 ERROR 识别过程中发生错误。 createTime 否 String 任务创建时间。格式如2018-12-04T13:10:29.310Z。 startTime 否 String 开始识别时间。格式如2018-12-04T13:10:29.310Z。 finishTime 否 String 识别完成时间。格式如2018-12-04T13:10:29.310Z。 audioDuration 否 Integer 提交音频时长,单位ms。 segments 否 Array of objects 识别结果, 多句结果的数组。 数据结构参见表5。 表5 Segment 参数名 是否必选 参数类型 说明 start_time 是 Integer 一句的起始时间戳,单位ms。 end_time 是 Integer 一句的结束时间戳,单位ms。 result 是 Object 调用成功表示识别结果,调用失败时无此字段。数据结构参见表6。 表6 Result 参数名 是否必选 参数类型 说明 text 是 String 识别结果文本。 analysis_info 否 Object 每一句的质检分析结果对象。 仅在识别配置中的need_analysis_info不为null时存在该返回结果。数据结构参见表7。 word_info 否 Array of Object 分词输出列表。 表7 Analysisinfo 参数名 是否必选 参数类型 说明 role 否 String 角色类型,目前仅支持 AGENT(座席),USER(用户)。 emotion 否 String 情绪类型,目前仅支持NORMAL(正常),ANGRY(愤怒)。 在识别配置中emotion为true时存在。 speed 否 Float 语速信息,单位是每秒字数。 在识别配置中speed为true时存在。 表8 Word_info 数据结构 参数名 是否必选 参数类型 说明 start_time 否 Integer 起始时间 end_time 否 Integer 结束时间 word 否 String 分词
  • 请求参数 请求类为AsrCustomLongRequest,详见表3。 表3 AsrCustomLongRequest 参数名称 是否必选 参数类型 描述 dataUrl 是 String 存放录音文件地址: 推荐使用华为云OBS:授权配置请参见OBS配置。 您也可以把录音文件放在自行搭建服务器上,提供下载文件的地址。URL不能使用IP地址,只能使用域名,请尽量避免中文。 audioFormat 是 String 音频格式,具体信息请参见《API参考》中录音文件识别章节。 property 是 String 属性字符串,语言_采样率_模型,如chinese_8k_common。具体信息请参见《API参考》中录音文件识别章节。 addPunc 否 String 表示是否在识别结果中添加标点,取值为yes 、 no,默认no。 digitNorm 否 String 表示是否将语音中的数字识别为阿拉伯数字,取值为yes 、 no,默认为yes。 callbackUrl 否 String 表示回调 url,用户用于接收识别结果的服务器地址, 不支持ip方式调用,url长度小于2048字节。服务请求方法为Post方式,请求体为Json格式。 如果用户使用回调方式获取识别结果,需提交该参数,处理成功后用户服务器需返回状态码为200。 如果用户使用轮询方式获取识别结果,则无需提交该参数。 needAnalysisInfo 否 Boolean 是否选择分析信息。当前仅对8k模型有效。 如果选择false,则声道、话者分离、情绪检测、速度信息均无效。默认false。 diarization 否 Boolean 是否需要话者分离,表示识别结果会包含role项,默认true。 channel 否 String 语音文件声道信息,可以为MONO(缺省)、LEFT_AGENT、RIGHT_AGENT。 emotion 否 Boolean 是否需要做情绪检测,默认true。 speed 否 Boolean 是否需要输出语速信息,默认true。 vocabularyId 否 String 热词表id,不使用则不填写。 创建热词表请参考《API参考》中创建热词表章节。 needWordInfo 否 String 表示是否在识别结果中输出分词结果信息,取值为“yes”和“no”,默认为“no”。
  • 初始化Client 初始化AsrCustomizationClient,其参数包括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。
  • 响应参数 响应类为AsrCustomShortResponse,详见表4。调用失败处理方法请参见错误码。 表4 AsrCustomShortResponse 参数名 是否必选 参数类型 说明 trace_id 是 String 服务内部的令牌,可用于在日志中追溯具体流程,调用失败无此字段。 在某些错误情况下可能没有此令牌字符串。 result 是 Object 调用成功表示识别结果,调用失败时无此字段。请参考表5。 表5 Result 参数名 是否必选 参数类型 说明 text 是 String 调用成功表示识别出的内容。 score 是 Float 调用成功表示识别出的置信度,取值范围:0~1。 word_info 否 Array of objects 分词信息列表。 表6 Word_info 数据结构 参数名 是否必选 参数类型 说明 start_time 否 Integer 起始时间 end_time 否 Integer 结束时间 word 否 String 分词
  • 请求参数 请求类为AsrCustomShortRequest,详见表3。 表3 AsrCustomShortRequest 参数名称 是否必选 参数类型 描述 data 是 String 本地音频文件经过Base64编码后的字符串,音频文件时长不超过1min。 audioFormat 是 String 音频格式,具体信息请参见《API参考》中一句话识别章节。 property 是 String 属性字符串,语言_采样率_模型,如chinese_16k_general。具体信息请参见《API参考》中一句话识别章节。 addPunc 否 String 表示是否在识别结果中添加标点,取值为yes 、 no,默认no。 digitNorm 否 String 表示是否将语音中的数字识别为阿拉伯数字,取值为yes 、 no,默认为yes。 vocabularyId 否 String 热词表id,不使用则不填写。 创建热词表请参考《API参考》中创建热词表章节。 needWordInfo 否 String 表示是否在识别结果中输出分词结果信息,取值为“yes”和“no”,默认为“no”。
  • 初始化Client 初始化AsrCustomizationClient,其参数包括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。
  • 初始化Client 初始化RttsClient,其参数包括AuthInfo 表1 AuthInfo 参数名称 是否必选 参数类型 描述 ak 是 String 用户的ak,可参考AK/SK认证。 sk 是 String 用户的sk,可参考AK/SK认证。 projectId 是 String 项目ID,同region一一对应,参考获取项目ID。 region 是 String 区域,如cn-north-4,参考终端节点。 endpoint 否 String 终端节点,参考地区和终端节点。一般使用默认即可。
  • 请求参数 请求类为RttsRequest,详见表 RttsRequest。 表2 RttsRequest 参数名称 是否必选 参数类型 描述 text 是 String 待合成文本。 通过set方法可以设置具体参数,详见表 RttsRequest设置参数 表3 RttsRequest设置参数 方法名称 是否必选 参数类型 描述 SetAudioFormat 否 String 设置语音格式,默认pcm。 SetAudioProperty 否 String 设置语音合成特征字符串,{language}_{speaker}_{domain},即“语种_人员标识_领域”。默认chinese_xiaoyan_common 。详见API文档。 SetSampleRate 否 String 设置采样率:8000、16000,默认8000。 SetPitch 否 Integer 设置音高,-500~500,默认0。 SetVolume 否 Integer 设置音量,0~100,默认50。 SetSpeed 否 Integer 设置语速,-500~500,默认0。 SetSubtitle 否 String 设置字幕,部分发音人支持字幕时间戳,详见API文档。
  • 编译脚本 以下编译脚本仅供参考,您可以根据实际业务需求,对RasrDemo.cpp进行定制修改。 cd ${project_dir}mkdir build && cd buildmkdir logscmake ..make -j./RttsDemo --ak=yourAk --sk=yourSk --region=yourRegion --projectId=yourProjectId --isSaved=true --audioPath=test.pcm
  • 请求参数 请求类为FlashLasrRequest,详见表3。 表3 FlashLasrRequest 参数 是否必选 参数类型 描述 audio_format 是 String 支持语音的格式,请参考表 audio_format取值范围。 property 是 String 所使用的模型特征串,通常是 “语种_采样率_领域”的形式,采样率需要与音频采样率保持一致,取值范围请参考表 property取值范围。 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详见表 FlashLasrClient初始化参数。 表1 FlashLasrClient初始化参数 参数名称 是否必选 参数类型 描述 ak 是 String 用户的ak,可参考AK/SK认证。 sk 是 String 用户的sk,可参考AK/SK认证。 region 是 String 区域,如cn-north-4,参考终端节点。 project_id 是 String 项目ID,同region一一对应,参考获取项目ID。 service_endpoint 否 String 终端节点,一般使用默认即可。 sis_config 否 Object 详见表2。 表2 SisConfig 参数名称 是否必选 参数类型 描述 connect_timeout 否 Integer 连接超时,默认10,单位s。 read_timeout 否 Integer 读取超时,默认10,单位s。 proxy 否 List [host, port] 或 [host, port, username, password]。
  • 代码示例 如下示例仅供参考,最新代码请前往SDK(websocket)章节获取并运行。 # -*- coding: utf-8 -*-from huaweicloud_sis.client.flash_lasr_client import FlashLasrClientfrom huaweicloud_sis.bean.flash_lasr_request import FlashLasrRequestfrom huaweicloud_sis.exception.exceptions import ClientExceptionfrom huaweicloud_sis.exception.exceptions import ServerExceptionfrom huaweicloud_sis.bean.sis_config import SisConfigimport jsonimport os# 鉴权参数# 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;# 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SIS_AK/HUAWEICLOUD_SIS_SKak = os.getenv("HUAWEICLOUD_SIS_AK") # 从环境变量获取ak 参考https://support.huaweicloud.com/sdkreference-sis/sis_05_0003.htmlassert 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.htmlassert 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.htmlregion = '' # region,如cn-north-4obs_bucket_name = '' # obs桶名obs_object_key = '' # obs对象的keyaudio_format = '' # 文件格式,如wav等, 支持格式详见api文档property = '' # 属性字符串,language_sampleRate_domain, 如chinese_8k_common, 详见api文档def flash_lasr_example(): """ 录音文件极速版示例 """ # step1 初始化客户端 config = SisConfig() config.set_connect_timeout(10) # 设置连接超时 config.set_read_timeout(10) # 设置读取超时 # 设置代理,使用代理前一定要确保代理可用。 代理格式可为[host, port] 或 [host, port, username, password] # config.set_proxy(proxy) client = FlashLasrClient(ak, sk, region, project_id, sis_config=config) # step2 构造请求 asr_request = FlashLasrRequest() # 以下参数必选 # 设置存放音频的桶名,必选 asr_request.set_obs_bucket_name(obs_bucket_name) # 设置桶内音频对象名,必选 asr_request.set_obs_object_key(obs_object_key) # 设置格式,必选 asr_request.set_audio_format(audio_format) # 设置属性,必选 asr_request.set_property(property) # 以下参数可选 # 设置是否添加标点,yes or no,默认no asr_request.set_add_punc('yes') # 设置是否将语音中数字转写为阿拉伯数字,yes or no,默认yes asr_request.set_digit_norm('yes') # 设置是否添加热词表id,没有则不填 # asr_request.set_vocabulary_id(None) # 设置是否需要word_info,yes or no, 默认no asr_request.set_need_word_info('no') # 设置是否只识别收个声道的音频数据,默认no asr_request.set_first_channel_only('no') # step3 发送请求,返回结果,返回结果为json格式 result = client.get_flash_lasr_result(asr_request) # use enterprise_project_Id # headers = {'Enterprise-Project-Id': 'your enterprise project id', 'Content-Type': 'application/json'} # result = client.get_flash_lasr_result(asr_request, headers) print(json.dumps(result, indent=2, ensure_ascii=False))if __name__ == '__main__': try: flash_lasr_example() except ClientException as e: print(e) except ServerException as e: print(e)
  • 初始化Client 初始化RttsClient详见表 RttsClient初始化参数。 表1 RttsClient初始化参数 参数名称 是否必选 参数类型 描述 ak 是 String 用户的ak,可参考AK/SK认证。 sk 是 String 用户的sk,可参考AK/SK认证。 region 是 String 区域,如:cn-north-4。具体请参考终端节点。 project_id 是 String 项目ID,同region一一对应,参考获取项目ID。 service_endpoint 否 String 终端节点,一般使用默认即可。 sis_config 否 Object 详见表2。 表2 SisConfig 参数名称 是否必选 参数类型 描述 connect_timeout 否 Integer 连接超时,默认10,单位s。 read_timeout 否 Integer 读取超时,默认10,单位s。 websocket_wait_time 否 Integer websocket最大等待时间,默认20,单位s。 proxy 否 List [host, port] 或 [host, port, username, password]。
共100000条
提示

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