Skip to main content
语音合成模型(TTS)将文本转换为合成语音音频,支持标准模式和实时(流式输入)合成模式。AgentScope 当前提供以下模型类:

创建模型

每个模型接收一个凭证、一个模型名,以及可选的 API 专属 Parameters 对象。下面的 tab 分别展示标准和实时两类初始化场景:
所有语音合成模型通用的构造参数: DashScopeRealtimeTTSModelDashScopeCosyVoiceTTSModel(实时模式)的额外参数:

调用模型

通过 synthesize() 方法合成语音:
返回类型取决于 stream 设置:
  • stream=False:返回单个 TTSResponse,包含完整音频。
  • stream=True:返回 AsyncGenerator[TTSResponse, None],每个 chunk 携带增量音频;最后一个 chunk 的 is_last=True
每个 TTSResponse 包含:

实时合成(流式输入)

实时模型(DashScopeRealtimeTTSModelrealtime=TrueDashScopeCosyVoiceTTSModel)支持增量推送文本,典型场景是对接大语言模型的流式输出。两者共享相同的 push() / synthesize() 接口,通过 async with 或手动调用 connect() / close() 管理生命周期:
DashScopeRealtimeTTSModel(Qwen3)以 token 级别粒度产出音频,每次 push() 通常都能返回音频数据。而 realtime=TrueDashScopeCosyVoiceTTSModel 依赖 CosyVoice 服务端自动分句后才进行合成,音频只在检测到完整句子边界后才返回,因此 push() 对不完整的句子可能返回空响应。调用 synthesize() 会强制合成所有剩余文本(包括未完成的句子)。
实时模式的生命周期方法:

与智能体集成

在智能体层,语音合成通过 TTSMiddleware 集成,它会拦截智能体的文本输出并自动合成语音:
中间件会根据模型类型自动选择最优合成策略:

TTS 模型卡片

TTSModelCard 描述语音合成模型的能力(可用音色、流式支持与参数范围),其 schema 与覆盖机制与通用的模型卡片一致。每张卡片由模型实现旁的 YAML 文件定义,下面的 tab 分别展示各模型 API 的一张卡片:
voices 列表会自动作为 voice 字段的 enum 约束注入 parameter_schema,前端据此渲染下拉选择器。 通过凭证获取语音合成模型卡片:
或直接通过模型类:

自定义模型 API

接入新的语音合成 API,需实现 TTSModelBase 子类并在凭证上注册: