项 | 内容 |
|---|---|
| 函数签名 | generateSpeech(options: TTSRequestOptions): Promise<DoGenerateSpeechOutput> |
| 返回类型 | Promise<DoGenerateSpeechOutput> |
| 调用方式 | 通过 this.createModel("<tts-model>") 获取模型实例后调用 |
| 适用场景 | 短文本语音合成、一次性播报 |
字段 | 类型 | 描述 | 是否必传 |
|---|---|---|---|
text | string | 待合成文本 | 是 |
voice | string | 音色 ID(需与模型版本匹配) | 是 |
format | "mp3" | "wav" | "pcm" | "opus" | 输出音频格式(默认 mp3 ) | 否 |
sampleRate | 8000 | 16000 | 22050 | 24000 | 44100 | 48000 | 采样率 | 否 |
volume | number | 音量(0~100,默认 50) | 否 |
rate | number | 语速(0.5~2.0,默认 1.0) | 否 |
pitch | number | 音调(0.5~2.0,默认 1.0) | 否 |
instruction | string | 风格/情感指令(仅 v3-plus / v3.5-plus) | 否 |
languageHints | string[] | 语言提示 | 否 |
版本差异:
instruction、opus仅在支持对应能力的模型版本生效(见各模型能力文档)。
字段 | 类型 | 描述 |
|---|---|---|
audio | Buffer | 完整音频数据 |
usage.characters | number | 字符计数 |
const ttsModel = this.createModel("cosyvoice-v3-flash");
const result = await ttsModel.generateSpeech({
text: "你好,欢迎使用语音服务。",
voice: "longanyang",
format: "mp3",
});
this.sseSender.send({
data: {
choices: [{
message: {
role: "assistant",
type: "audio",
content: `data:audio/mp3;base64,${result.audio.toString("base64")}`,
},
finish_reason: "stop",
}],
},
});