myvocal_v3(默认)、myvocal_v4、myvocal_v3_turbo。api-key、可用音色,以及 priority=dedicated_concurrency。建立连接 → 注册音色并发送 inputs → 接收音频 → close_context → 等待 is_final → close_socketapi-key: YOUR_API_KEY):wss://api.voicelibrary.co/enterprise/v1/text-to-dialogue/websocket/multi?model_id=myvocal_v4&priority=dedicated_concurrency&format=mp3_128{"context_id":"demo","voices":["YOUR_VOICE_ID"],"inputs":[{"text":"你好,欢迎使用语音合成。","voice_id":"YOUR_VOICE_ID","new_turn":true}]}{"context_id":"demo","close_context":true}context_id 接收 Base64 音频,等待 is_final=true。所有任务完成后发送 {"close_socket":true},等待连接正常关闭。也可用 close_socket 一次结束所有 Context。inputs,close_context 会处理剩余文本,无需提前 flush。普通 TTS 多 Context 使用不同的消息与结束流程。wss://api.voicelibrary.co/enterprise/v1/text-to-dialogue/websocket/multistringmyvocal_v3(默认)、myvocal_v4、myvocal_v3_turbodedicated_concurrency?priority=dedicated_concurrency
&model_id=myvocal_v3
&format=mp3_128
&language_code=en
×tamps=true
&text_normalization=auto
&seed=618021
&enable_logging=truestringdedicated_concurrencystringmyvocal_v3myvocal_v3、myvocal_v4、myvocal_v3_turbostringmp3_128mp3_64、mp3_96、mp3_128、mp3_192pcm_8000、pcm_16000、pcm_22050、pcm_24000、pcm_44100ulaw_8000stringzh、英语 en、粤语 yue、菲律宾语 filmyvocal_v4 与 myvocal_v3_turbo 支持相同的 94 种输出语言,包括普通话 zh、粤语 yue、英语 en、日语 ja 和韩语 ko。完整语言及代码见输出语言。booleanfalsetrue 时,在音频消息中返回字符时间信息stringonauto、on、offauto:由系统判断是否规范化on:始终启用规范化off:不启用规范化integer1 至 4294967295booleantruefalse 时,本次请求使用不保留历史的处理方式,相关历史功能不可用。context_id 的第一条消息,注册音色和可选设置。inputs。context_id 的音频分片。flush 立即处理当前缓冲文本。close_context 结束单个 context。close_socket 结束全部 context 和整个连接。1000。context_id 的第一条消息必须包含 voices:{
"context_id": "scene-001",
"voices": [
"YOUR_VOICE_ID_A",
"YOUR_VOICE_ID_B"
],
"voice_settings": {
"stability": 0.5
},
"inputs": [
{
"text": "Hello, how may I help you today?",
"voice_id": "YOUR_VOICE_ID_A",
"new_turn": true
}
]
}stringclose_socket 的消息外,每条消息都必须 带 context_id。string[]inputs[].voice_id 必须是这里已经注册的音色。objectstability;不要照搬 HTTP 的 similarity_boost、style 或 speed。number0 至 1inputs:{
"context_id": "scene-001",
"inputs": [
{
"text": "Sure, I can check that for you.",
"voice_id": "YOUR_VOICE_ID_A"
}
]
}object[]stringstringvoices 中注册booleanfalsetrue 时结束当前语气段,并开始新的说话 turnvoice_id 也会开始新的 turn。{
"context_id": "scene-001",
"flush": true
}flush 强制处理当前 context 的缓冲文本,但不会关闭 context。完成后仍可inputs。{
"context_id": "scene-001",
"keep_alive": true
}keep_alive 重置当前 context 的 20 秒空闲计时,不会生成音频。{
"context_id": "scene-001",
"close_context": true
}close_context 会自动处理剩余文本,发送该 context 的 is_final,然后close_context 前不需要额外发送 flush。{
"close_socket": true
}close_socket 会处理并关闭全部 context。每个活跃 context 完成后,服务端1000 正常关闭 WebSocket。{
"audio": "<BASE64_AUDIO>",
"context_id": "scene-001"
}audio:Base64 编码音频分片context_id:该音频所属的 contextcontext_id 内的到达顺序解码和拼接音频。{
"context_id": "scene-001",
"is_final_audio_for_turn": true
}{
"context_id": "scene-001",
"is_final": true
}timestamps=true 时,音频消息可能同时包含:{
"audio": "<BASE64_AUDIO>",
"context_id": "scene-001",
"alignment": {
"chars": ["H", "e", "l", "l", "o"],
"char_start_times_ms": [0, 80, 150, 220, 300],
"char_durations_ms": [80, 70, 70, 80, 90]
},
"normalized_alignment": {
"chars": ["H", "e", "l", "l", "o"],
"char_start_times_ms": [0, 80, 150, 220, 300],
"char_durations_ms": [80, 70, 70, 80, 90]
}
}alignment:原始文本的字符时间信息normalized_alignment:规范化文本的字符时间信息chars:字符序列char_start_times_ms:字符起始时间,单位毫秒char_durations_ms:字符持续时间,单位毫秒is_final 并关闭。voice_settings 只能在 context 第一条消息中设置。1008 关闭连接。1000。{
"code": "INVALID_PARAMETER",
"field": "voice_settings.stability",
"message": "voice_settings.stability must be between 0 and 1"
}{
"error": "INVALID_PRIORITY",
"message": "This WebSocket requires priority=dedicated_concurrency"
}INVALID_PARAMETER:参数、消息结构或字段值无效INVALID_PRIORITY:未使用 dedicated_concurrencyDEDICATED_CONCURRENCY_REQUIRED:当前账户没有可用独享并发MAX_CONTEXT_LIMIT_EXCEEDED:同一连接超过 5 个活跃 contextINSUFFICIENT_QUOTA:账户可用额度不足STREAMING_SERVICE_ERROR:语音生成服务暂时不可用field,停止向当前连接继续发送