语音
实时语音交互,支持文本转语音、语音转文本和实时双工流式传输。
文本转语音(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.6 和 clarity: 0.7-0.9
以获得温暖、富有表现力的朗读效果。纯稳定性听起来机械化。