GET
/v1/health返回本地页面服务状态和当前 TTS capability base URL。
Voice Assistant Teaching TTS
面向接入方的站内参考页,覆盖认证、快速开始、接口说明、错误响应与 OpenAPI 规范入口。
Voice Assistant 现在提供教学 persona、prompt 编排和前端体验;浏览器通过同源 /api/tts/jobs 创建正式 TTS job。
python -m voice_assistant serve --host "127.0.0.1" --port 8000POST /api/tts/jobs 并轮询 GET /api/tts/jobs/{id}。audioUrl。curl -X POST "http://127.0.0.1:8000/api/tts/jobs" \
-H "Content-Type: application/json" \
-d '{
"text": "Please read this clearly.",
"voice": "Dean",
"stylePrompt": "Clear, focused, teacher-like reading voice...",
"formattedText": "Please read this clearly.",
"audioFormat": "wav",
"metadata": {
"source": "voice-assistant",
"personaId": "persona_dictation_coach",
"speed": "standard",
"toneMode": "coach"
}
}'
/v1/health返回本地页面服务状态和当前 TTS capability base URL。
/v1/personas返回当前可用 persona、语速选项和语气选项。该接口用于前端 bootstrap 和调试,不负责合成。
/v1/tts/normalize将教学输入编排为 TTS consumer 可用的 normalized payload。
text: 待合成文本,1-5000 字符personaId: persona 标识speed: gentle / standard / brighttoneMode: companion / coach / encourage / livelyaudioFormat: wav / mp3{
"text": "学习不能只停留在记住知识。",
"voice": "冰糖",
"stylePrompt": "角色:你是“陈老师”...",
"formattedText": "学习不能只停留在记住知识。",
"audioFormat": "wav",
"metadata": {
"source": "voice-assistant",
"personaId": "persona_morning_recital",
"speed": "standard",
"toneMode": "coach",
"paceProfile": "medium"
}
}const job = await fetch("/api/tts/jobs", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(normalizedPayload)
}).then((response) => response.json());
const detail = await fetch(`/api/tts/jobs/${job.id}`).then((response) => response.json());
if (detail.status === "success") {
audio.src = detail.audioUrl;
}