文档中心 API 中心 智聆口语评测 功能接口 发音数据传输接口附带初始化过程

发音数据传输接口附带初始化过程

最近更新时间:2019-05-16 17:12:46

1. 接口描述

接口请求域名: soe.tencentcloudapi.com 。

初始化并传输音频数据,分片传输时,尽量保证SeqId顺序传输。音频源目前仅支持16k采样率16bit单声道编码方式,如有不一致可能导致评估不准确或失败。

默认接口请求频率限制:10000次/秒。

2. 输入参数

以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见 公共请求参数

参数名称 必选 类型 描述
Action String 公共参数,本接口取值:TransmitOralProcessWithInit
Version String 公共参数,本接口取值:2018-07-24
Region String 公共参数,本接口不需要传递此参数。
SeqId Integer 流式数据包的序号,从1开始,当IsEnd字段为1后后续序号无意义,当IsLongLifeSession不为1且为非流式模式时无意义。
IsEnd Integer 是否传输完毕标志,若为0表示未完毕,若为1则传输完毕开始评估,非流式模式下无意义。
VoiceFileType Integer 语音文件类型 1:raw, 2:wav, 3:mp3(三种格式目前仅支持16k采样率16bit编码单声道,如有不一致可能导致评估不准确或失败)。
VoiceEncodeType Integer 语音编码类型 1:pcm。
UserVoiceData String 当前数据包数据, 流式模式下数据包大小可以按需设置,在网络良好的情况下,建议设置为0.5k,且必须保证分片帧完整(16bit的数据必须保证音频长度为偶数),编码格式要求为BASE64。
SessionId String 语音段唯一标识,一个完整语音一个SessionId。
RefText String 被评估语音对应的文本,句子模式下不超过个 20 单词或者中文文字,段落模式不超过 120 单词或者中文文字,中文评估使用 utf-8 编码,自由说模式该值无效。如需要在单词模式和句子模式下使用自定义音素,可以通过设置 TextMode 使用音素标注
WorkMode Integer 语音输入模式,0:流式分片,1:非流式一次性评估
EvalMode Integer 评估模式,0:词模式(中文评测模式下为文字模式),1:句子模式,2:段落模式,3:自由说模式,当为词模式评估时,能够提供每个音节的评估信息,当为句子模式时,能够提供完整度和流利度信息。
ScoreCoeff Float 评价苛刻指数,取值为[1.0 - 4.0]范围内的浮点数,用于平滑不同年龄段的分数,1.0为小年龄段,4.0为最高年龄段
SoeAppId String 业务应用ID,与账号应用APPID无关,是用来方便客户管理服务的参数,新的 SoeAppId 可以在控制台【应用管理】下新建。
StorageMode Integer 音频存储模式,0:不存储,1:存储到公共对象存储,输出结果为该会话最后一个分片TransmitOralProcess 返回结果 AudioUrl 字段。
SentenceInfoEnabled Integer 输出断句中间结果标识,0:不输出,1:输出,通过设置该参数,可以在评估过程中的分片传输请求中,返回已经评估断句的中间结果,中间结果可用于客户端 UI 更新,输出结果为TransmitOralProcess请求返回结果 SentenceInfoSet 字段。
ServerType Integer 评估语言,0:英文,1:中文。
IsAsync Integer 异步模式标识,0:同步模式,1:异步模式,可选值参考服务模式
IsQuery Integer 查询标识,当该参数为1时,该请求为查询请求,请求返回该 Session 评估结果。
TextMode Integer 输入文本模式,0: 普通文本,1:音素结构文本。

3. 输出参数

参数名称 类型 描述
PronAccuracy Float 发音精准度,取值范围[-1, 100],当取-1时指完全不匹配,当为句子模式时,是所有已识别单词准确度的加权平均值,在reftext中但未识别出来的词不计入分数中。当为流式模式且请求中IsEnd未置1时,取值无意义。
PronFluency Float 发音流利度,取值范围[0, 1],当为词模式时,取值无意义;当为流式模式且请求中IsEnd未置1时,取值无意义
PronCompletion Float 发音完整度,取值范围[0, 1],当为词模式时,取值无意义;当为流式模式且请求中IsEnd未置1时,取值无意义
Words Array of WordRsp 详细发音评估结果
SessionId String 语音段唯一标识,一段语音一个SessionId
AudioUrl String 保存语音音频文件下载地址
SentenceInfoSet Array of SentenceInfo 断句中间结果,中间结果是局部最优而非全局最优的结果,所以中间结果有可能和最终整体结果对应部分不一致;中间结果的输出便于客户端UI更新;待用户发音完全结束后,系统会给出一个综合所有句子的整体结果。
Status String 评估 session 状态,“Evaluating":评估中、"Failed":评估失败、"Finished":评估完成
SuggestedScore Float 建议评分,取值范围[0,100],评分方式为建议评分 = 准确度(PronAccuracyfloat)× 完整度(PronCompletionfloat)×(2 - 完整度(PronCompletionfloat)),如若评分策略不符合请参考Words数组中的详细分数自定义评分逻辑。
RequestId String 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

4. 示例

示例1 传输语音进行发音评估附带初始化过程

传输语音进行发音评估附带初始化过程

输入示例

https://soe.tencentcloudapi.com/?Action=TransmitOralProcessWithInit
&SessionId=stress_test_956938
&VoiceFileType=1
&SeqId=1
&VoiceEncodeType=1
&IsEnd=0
&UserVoiceData=VWtsR1JxeUpBd0JYUVZaRlptMTBJQkFBQUFBQkFBRUFnRDRBQUFCOUFBQUNBQkFBVEVsVFZCb0FBQUJKVGtaUFNWTkdWQTRBQUFCTVlYWm1OVFl1TVRrdU1UQXdBR1JoZEdGbWlRTUF5
&WorkMode=0
&RefText=again
&EvalMode=0
&ScoreCoeff=3.5
&<公共请求参数>

输出示例

{
  "Response": {
    "PronAccuracy": 65,
    "PronFluency": 0.99,
    "PronCompletion": 1,
    "SuggestedScore": 65,
    "RequestId": "xxxxxxx",
    "Words": [
      {
        "MemBeginTime": 1,
        "MemEndTime": 2,
        "PronAccuracy": 65,
        "PronFluency": 0.3,
        "Word": "xxx",
        "MatchTag": 1,
        "PhoneInfos": [
          {
            "MemBeginTime": 1,
            "MemEndTime": 2,
            "PronAccuracy": 52,
            "Phone": "b",
            "Stress": true,
            "DetectedStress": false
          }
        ]
      }
    ]
  }
}

5. 开发者资源

API Explorer

该工具提供了在线调用、签名验证、SDK 代码生成和快速检索接口等能力,能显著降低使用云 API 的难度,推荐使用。

SDK

云 API 3.0 提供了配套的开发工具集(SDK),支持多种编程语言,能更方便的调用 API。

命令行工具

6. 错误码

以下仅列出了接口业务逻辑相关的错误码,其他错误码详见 公共错误码

错误码 描述
InternalError 内部错误
InternalError.BASE64DecodeFailed BASE64解码错误
InternalError.CannotFindSession 评估之前没有初始化或已过期。
InternalError.FailToDecodeVoice 语音解码失败
InternalError.IlegalServerResponse 服务器应答非法
InternalError.InitStreamNotSupport 该接口不支持init_stream
InternalError.InitStreamUnfinished 初始化请求未完成,请稍后重试。
InternalError.InitialParameterError 初始化参数错误
InternalError.InvalidSeqId 分片序号错误。
InternalError.InvalidWAVHeader WAV头部格式非法或不在同一分片内。
InternalError.LastSeqUnfinished 前一个分片未处理完,请稍后重试。
InternalError.MP3DecodeFailed MP3转码发生错误
InternalError.NeedToInit 进行评估之前没有进行初始化
InternalError.NoConversationFound 使用的会话没有找到或已经被释放
InternalError.NoDocInList 表单中没有文件
InternalError.NoError 没有错误
InternalError.NoInitBeforeEvaluation 评估之前没有初始化
InternalError.RefTxtEmpty 检测到不支持的字符在输入文本
InternalError.RefTxtOov 检测到不支持的字符在输入文本
InternalError.RefTxtTooLang 输入文本太长
InternalError.ServerInternalError 服务器内部错误
InternalError.ServerOverload 服务器过载
InternalError.ServiceTimeout 服务超时
InternalError.ShardNoStartWithOne 分片序号错误应该从1开始
InternalError.StreamProcessFail 流式模式数据包处理过程中间失败
InternalError.StreamProcessTimeOut 流式模式数据包处理超时
InternalError.StreamingvoicepkgTimeout 流式语音包超时
InternalError.TimeOut 获得结果超时
InternalError.TooLongPackage 语音数据包长度超过 1MB
InternalError.VadNotDetectedSpeak 没有检测到语音
InternalError.VoiceMsgOversized 语音数据大于1MB
InternalError.VoiceMsgTooShort 语音时长太短
InternalError.WordLengthTooLong 文本单词超过限制
InvalidParameter 参数错误
InvalidParameter.AuthorizeError 服务未开通或已欠费。
InvalidParameter.InitialParameterError 初始化参数错误。
InvalidParameter.VoiceMsgOversized 语音数据大于1MB。
InvalidParameter.WithoutRealName 用户未实名制认证。
InvalidParameterValue 参数取值错误
InvalidParameterValue.BASEDecodeFailed BASE64解码错误。
InvalidParameterValue.InvalidSeqId 分片序号错误。
InvalidParameterValue.InvalidWAVHeader WAV头部格式非法或不在同一分片内。
InvalidParameterValue.NoDocInList 表单中没有文件。
InvalidParameterValue.RefTxtTooLang 输入文本太长。
InvalidParameterValue.ShardNoStartWithOne 分片序号错误应该从1开始。
InvalidParameterValue.StreamingvoicepkgTimeout 流式语音包超时。
InvalidParameterValue.VadNotDetectedSpeak 没有检测到语音。
InvalidParameterValue.WordLengthTooLong 文本单词超过限制。
ResourceNotFound.AppidNotFount appid不存在。
ResourceNotFound.InterfaceNotFount 接口不存在。
ResourceUnavailable.AuthorizeError 服务未开通或已欠费。
ResourceUnavailable.CannotFindSession 评估之前没有初始化或已过期。
ResourceUnavailable.InitStreamUnfinished 初始化请求未完成,请稍后重试。
ResourceUnavailable.LastSeqUnfinished 前一个分片未处理完,请稍后重试。
ResourceUnavailable.NoConversationFound 使用的会话没有找到或已经被释放。
ResourceUnavailable.NoInitBeforeEvaluation 评估之前没有初始化。