FishAudio语音合成
FishAudio语音合成技能可以将机器人的文本回复转换为语音,通过调用FishAudio的API服务实现。
特点
- 支持自定义发音人ID,可以从FishAudio官方声音库中选择各种声音
- 可配置触发语音合成的概率
- 支持自动移除不可阅读内容(如emoji和Markdown标记)
- 支持自定义API服务地址,可以使用官方或私有部署的服务
- 最大支持10240个token的文本转换为语音
代码配置
使用FishAudio语音合成技能需要在代码中进行如下配置:
typescript
const agent = new PPAgent({
// ...
skills: [
{
name: "fish-audio-tts-skill",
options: {
instanceName: "fish-audio-tts", // 实例名称,需保证唯一
apiKey: "your-fish-audio-api-key", // Fish Audio API密钥,必填
referenceId: "voice-reference-id", // 发音人ID,必填
baseUrl: "https://api.fish.audio", // API服务地址,选填,默认为官方地址
probability: 1, // 触发语音的概率,选填,默认为0.5
deleteUnreadableText: false // 是否自动移除不可阅读内容,选填,默认为false
}
}
],
// source和bot等配置省略...
});
服务器运行请参考 install_code.md 文件。
配置注意事项
apiKey 必须提供有效的Fish Audio API密钥才能使用此服务。
referenceId 为必填项,代表发音人ID。可以从Fish Audio官方网站(https://fish.audio/zh-CN/discovery/)选择需要的声音,点击查看详情后,从浏览器地址中获取ID(一长串MD5字符串),或点击三个小点后选择"复制ID"。
baseUrl 如不填写,默认使用官方服务地址"https://api.fish.audio"。如果您有私有部署的FishAudio服务,可以配置为您的服务地址。
probability 控制触发语音合成的概率,取值范围0-1,默认为0.5,设置为1表示始终触发语音合成。
当文本中含有emoji、Markdown等不可读内容时:
- 如果
deleteUnreadableText
设置为true
,将自动移除这些内容并继续语音合成 - 如果设置为
false
(默认),则会跳过语音合成,直接返回文本
- 如果