本文档抓取自官方文档中心(2026-10-10 快照),具体功能以实际产品为准。
文字转语音节点实现文档
概述
为视频工作流实现了全新的文字转语音节点,支持音色克隆和情感控制。
实现的功能
输入参数
- 生成文本(必填):要转换为语音的文本内容,支持放大编辑按钮(
\u2922)在模态框中编辑长文本 - 参考音色音频(可选):用于声音克隆的参考音频文件,支持在线预览和清除
- 情感控制方式:
- 与参考音频相同(默认)
- 使用情感参考音频
- 情感参考音频(可选):当选择"使用情感参考音频"时可用,支持在线预览和清除
- 情感权重(可选):范围0-1.6,步进0.1,默认1.0,调整情感强度
输出
- 生成的音频文件,可在线播放和下载
技术实现
文件修改清单
/web/video_workflow.html
- 在添加菜单中新增"文字转语音"菜单项
- 引入新的JavaScript文件
text_to_speech_node.js
/web/js/text_to_speech_node.js(新建)
- 使用
createNodeBase基类工厂创建节点 - 实现
createTextToSpeechNode()函数:创建文字转语音节点 - 实现
createTextToSpeechNodeWithData()函数:从保存的数据恢复节点(使用createNodeWithDataFactory) - 实现音频上传、生成、轮询状态、下载等完整功能
- 已注册到节点注册表(
registerNodeType('text_to_speech', ...))
/web/js/events.js
- 添加菜单项点击事件处理器
/web/js/workflow.js
- 在
restoreNode()函数中添加对text_to_speech节点类型的支持
API接口
节点使用以下API接口(与 @/web/index.html 的AI音频生成功能相同):
- 生成接口:
POST /api/audio-generate
- 参数:
text: 生成文本user_id: 用户IDemo_control_method: 情感控制方式(0或1)ref_audio: 参考音频文件(可选)emo_ref_audio: 情感参考音频文件(可选)emo_weight: 情感权重(可选,0-1.6)auth_token: 认证令牌- 状态查询接口:
GET /api/audio-status/{audio_id}
- 返回音频生成状态和结果
节点特性
- 音频上传:支持上传参考音频和情感参考音频,选择文件后自动显示播放器预览,支持清除
- 实时状态:生成过程中显示实时状态,使用通用的
pollTaskStatus函数轮询任务状态 - 结果预览:生成成功后可直接在节点内播放音频
- 数据持久化:节点数据可随工作流保存和加载,恢复时自动还原文本、情感设置和生成结果
- 输出端口:节点包含输出端口,可连接到其他节点(预留扩展)
- 国际化 (i18n):所有用户界面文本均支持国际化,通过
window.t()函数翻译 - 节点注册:使用
createNodeBase基类工厂创建,已注册到节点注册表,支持工作流保存/加载/撤销
使用流程
- 在工作流画布中点击"+"按钮
- 选择"添加节点" → "文字转语音"
- 输入要转换的文本(可点击放大编辑按钮
\u2922在模态框中编辑长文本) - (可选)上传参考音色音频,支持在线预览
- (可选)选择情感控制方式并上传情感参考音频
- 点击"生成语音"按钮
- 等待生成完成,可在节点内播放或下载音频
注意事项
- 需要用户登录后才能使用语音生成功能
- 音频文件在生成时直接作为 FormData 发送,无需预先上传
- 生成过程使用通用的
pollTaskStatus函数轮询,支持成功、失败、超时三种回调 - 支持工作流的保存、加载和撤销功能
- 恢复工作流时,如果之前生成成功,会自动显示状态和音频播放器