Skip to main content

语音

实时语音交互,支持文本转语音、语音转文本和实时双工流式传输。

文本转语音(TTS)

将文本转换为语音音频。

const audio = await client.agents.voice.tts("agent-id", {
text: "Hello! How can I help you today?",
voiceName: "aria",
language: "en",
outputFormat: "mp3",
});
// audio.data 包含音频字节

语音转文本(STT)

将音频转录为文本。

const result = await client.agents.voice.stt("agent-id", {
audio: base64AudioData,
audioFormat: "wav",
language: "en",
});
console.log(result.text);

实时语音流式传输

实时双工语音对话。获取 token,然后打开双向流。

// 1. 获取流式 token
const token = await client.agents.voice.getToken("agent-id", {
voiceName: "aria",
userId: "user-123",
});

// 2. 连接到实时流
const stream = await client.agents.voice.stream(token);

// 发送音频块
stream.sendAudio(audioChunk);

// 或发送文本让智能体朗读
stream.sendText("Tell me about your day");

// 接收事件
for await (const event of stream) {
if (event.type === "audio") {
  playAudio(event.data);
} else if (event.type === "transcript") {
  console.log(event.text);
}
}

// 结束会话
stream.endSession();

WebSocket 传输

实时流式传输基于 WebSocket,支持实时双工音频。客户端上行发送麦克风音频块,同时下行接收合成语音和转录文本,实现自然的对话流程。

浏览语音目录

列出可用的语音。

const voices = await client.voices.list({
language: "en",
gender: "female",
});

for (const voice of voices.items) {
console.log(voice.name, voice.language, voice.gender);
}

实际应用

语音主要与伴侣和企业相关。对于任务型智能体,通常不需要—— 但如果你在构建电话/IVR 流程,企业模式同样适用。

选择与角色匹配的声音。 浏览 voices.list(), 筛选 3-5 个候选,在真实用户中 A/B 测试后再确定。 错误的声音比任何其他失误都更快破坏沉浸感。

用双工实现实时对话。 WebSocket 双工流式同时传输 STT(用户输入)和 TTS(智能体回复)——这是实时电话式体验的自然形态。 不要为伴侣使用轮询 TTS;延迟会破坏临场感。

调整韵律。 设置 stability: 0.4-0.6clarity: 0.7-0.9 以获得温暖、富有表现力的朗读效果。纯稳定性听起来机械化。

On this page