流式文本语音合成WebSocket协议 | 您所在的位置:网站首页 › 阿里云文字转语音api › 流式文本语音合成WebSocket协议 |
指令 请求指令用于控制语音识别任务的起止,标识任务边界,以JSON格式的Text Frame方式发送服务端请求,需要在Header中设置请求的基础信息。指令由Header和Payload两部分组成,其中Header部分为统一格式,不同指令的Payload部分格式各不相同。 1. Header格式说明Header格式如下: 参数 类型 是否必选 说明 header 请求头 header.appkey String 是 管控台创建的项目Appkey。 header.message_id String 是 当次消息请求ID,随机生成32位唯一ID。 header.task_id String 是 整个实时语音合成的会话ID,整个请求中需要保持一致,32位唯一ID。 header.namespace String 是 访问的产品名称,固定为“FlowingSpeechSynthesizer”。 header.name String 是 指令名称,包含StartSynthesis和StopSynthesis指令。 2. StartSynthesis指令参数 类型 是否必选 说明 payload.voice String 否 发音人,默认是xiaoyun。发音人,默认是xiaoyun。 payload.format String 否 音频编码格式,支持pcm、wav和mp3格式,默认值:pcm。音频编码格式,支持pcm、wav和mp3格式,默认值:pcm。 payload.sample_rate Integer 否 音频采样率,默认值:16000Hz。 payload.volume Integer 否 音量,取值范围:0~100。默认值:50。 payload.speech_rate Integer 否 语速,取值范围:-500~500,默认值:0。 [-500,0,500]对应的语速倍速区间为 [0.5,1.0,2.0]。 payload.pitch_rate Integer 否 语调,取值范围:-500~500,默认值:0。 payload.enable_subtitle Boolean 否 开启字级别时间戳。 payload.enable_phoneme_timestamp Boolean 否 开启音素级别时间戳。 { "header": { "message_id": "05450bf69c53413f8d88aed1ee60****", "task_id": "640bc797bb684bd6960185651307****", "namespace": "FlowingSpeechSynthesizer", "name": "StartSynthesis", "appkey": "17d4c634****" }, "payload": { "voice": "xiaoyun", "format": "wav", "sample_rate": 16000, "volume": 50, "speech_rate": 0, "pitch_rate": 0, "enable_subtitle": true } }3. RunSynthesis指令参数 类型 是否必选 说明 text String 是 需要合成的文本 { "header": { "message_id": "05450bf69c53413f8d88aed1ee60****", "task_id": "640bc797bb684bd6960185651307****", "namespace": "FlowingSpeechSynthesizer", "name": "RunSynthesis", "appkey": "17d4c634****" }, "payload": { "text": "流式输入文本" } }4. StopSynthesis指令StopSynthesis指令要求服务端停止语音合成,Payload为空。示例代码如下: { "header": { "message_id": "05450bf69c53413f8d88aed1ee60****", "task_id": "640bc797bb684bd6960185651307****", "namespace": "FlowingSpeechSynthesizer", "name": "StopSynthesis", "appkey": "17d4c634****" } }事件事件指的是服务端返回给客户端的处理进度事件,代表不同的处理阶段,客户端可获取不同处理阶段的事件实现不同的业务逻辑。以JSON格式返回,事件由Header和Payload两部分组成,其中Header部分为统一格式,不同事件的Payload部分格式可能不同。 1. SynthesisStarted事件参数 类型 说明 session_id String 客户端请求时传入session_id的话则原样返回,否则由服务端自动生成32位唯一ID。 { "header": { "message_id": "05450bf69c53413f8d88aed1ee60****", "task_id": "640bc797bb684bd6960185651307****", "namespace": "FlowingSpeechSynthesizer", "name": "SynthesisStarted", "status": 20000000, "status_message": "GATEWAY|SUCCESS|Success." }, "payload": { "session_id": "1231231dfdf****" } 2. SentenceBegin事件SentenceBegin事件表示服务端检测到了一句话的开始。 参数 类型 说明 index Integer 句子编号,从1开始递增。 { "header": { "message_id": "05450bf69c53413f8d88aed1ee60****", "task_id": "640bc797bb684bd6960185651307****", "namespace": "FlowingSpeechSynthesizer", "name": "SentenceBegin", "status": 20000000, "status_message": "GATEWAY|SUCCESS|Success." }, "payload": { "index": 1 } }3. SentenceSynthesis事件SentenceSynthesis事件表示有新的合成结果返回,包含最新的音频和时间戳,句内全量,句间增量。 参数 类型 说明 subtitles[] ArrayList 时间戳信息。 subtitles[0].text String ⽂本信息。 subtitles[0].sentence String 句子时间戳控制,True表示当前时间戳为句子。 subtitles[0].begin_index Integer 该字在整句中的开始位置,从0开始。 subtitles[0].end_index Integer 该字在整句中的结束位置,从0开始。 subtitles[0].begin_time Integer ⽂本对应TTS语⾳开始时间戳,单位ms。 subtitles[0].end_time Integer ⽂本对应TTS语⾳结束时间戳,单位ms。 subtitles[0].phoneme_list ArrayList 文本的音素时间戳信息。 subtitles[0].phoneme_list[0].index Integer 该音素的下标,从0开始。 subtitles[0].phoneme_list[0].beginTime Integer 该音素对应TTS语音开始时间戳,单位ms。 subtitles[0].phoneme_list[0].endTime Integer 该音素对应TTS语音结束时间戳,单位ms。 subtitles[0].phoneme_list[0].phoneme String 音素信息。 subtitles[0].phoneme_list[0].tone String 语气信息。 { "header": { "message_id": "05450bf69c53413f8d88aed1ee60****", "task_id": "640bc797bb684bd6960185651307****", "namespace": "FlowingSpeechSynthesizer", "name": "SentenceSynthesis", "status": 20000000, "status_message": "GATEWAY|SUCCESS|Success." }, "payload": { "subtitles": [ { "text": "", "begin_time": 0, "end_time": 0, "begin_index": 0, "end_index": 1, "sentence": true, "phoneme_list": [] }, { "text": "今", "begin_time": 0, "end_time": 175, "begin_index": 0, "end_index": 1, "sentence": false, "phoneme_list": [ { "begin_time": 0, "end_time": 120, "text": "j_c", "tone": "1" }, { "begin_time": 120, "end_time": 170, "text": "in_c", "tone": "1" } ] } ] } }4. SentenceEnd事件SentenceEnd事件表示服务端检测到了一句话的结束,返回该句的全量时间戳。 参数 类型 说明 subtitles[] ArrayList 时间戳信息。 subtitles[0].text String ⽂本信息。 subtitles[0].sentence String 句子时间戳控制,True表示当前时间戳为句子。 subtitles[0].begin_index Integer 该字在整句中的开始位置,从0开始。 subtitles[0].end_index Integer 该字在整句中的结束位置,从0开始。 subtitles[0].begin_time Integer ⽂本对应TTS语⾳开始时间戳,单位ms。 subtitles[0].end_time Integer ⽂本对应TTS语⾳结束时间戳,单位ms。 subtitles[0].phoneme_list ArrayList 文本的音素时间戳信息。 subtitles[0].phoneme_list[0].index Integer 该音素的下标,从0开始。 subtitles[0].phoneme_list[0].beginTime Integer 该音素对应TTS语音开始时间戳,单位ms。 subtitles[0].phoneme_list[0].endTime Integer 该音素对应TTS语音结束时间戳,单位ms。 subtitles[0].phoneme_list[0].phoneme String 音素信息。 subtitles[0].phoneme_list[0].tone String 语气信息。 { "header": { "message_id": "05450bf69c53413f8d88aed1ee60****", "task_id": "640bc797bb684bd6960185651307****", "namespace": "FlowingSpeechSynthesizer", "name": "SentenceEnd", "status": 20000000, "status_message": "GATEWAY|SUCCESS|Success." }, "payload": { "subtitles": [ { "text": "", "begin_time": 0, "end_time": 0, "begin_index": 0, "end_index": 1, "sentence": true, "phoneme_list": [] }, { "text": "今", "begin_time": 0, "end_time": 175, "begin_index": 0, "end_index": 1, "sentence": false, "phoneme_list": [ { "begin_time": 0, "end_time": 120, "text": "j_c", "tone": "1" }, { "begin_time": 120, "end_time": 170, "text": "in_c", "tone": "1" } ] }, { "text": "天", "begin_time": 175, "end_time": 320, "begin_index": 1, "end_index": 2, "sentence": false, "phoneme_list": [ { "begin_time": 0, "end_time": 120, "text": "t_c", "tone": "1" }, { "begin_time": 120, "end_time": 170, "text": "ian_c", "tone": "1" } ] } ] } }5. SynthesisCompleted事件SynthesisCompleted事件表示服务端已停止了语音转写。 { "header": { "message_id": "05450bf69c53413f8d88aed1ee60****", "task_id": "640bc797bb684bd6960185651307****", "namespace": "FlowingSpeechSynthesizer", "name": "SynthesisCompleted", "status": 20000000, "status_message": "GATEWAY|SUCCESS|Success." } } |
CopyRight 2018-2019 实验室设备网 版权所有 |