Skip to content

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 文件。

配置注意事项

  1. apiKey 必须提供有效的Fish Audio API密钥才能使用此服务。

  2. referenceId 为必填项,代表发音人ID。可以从Fish Audio官方网站(https://fish.audio/zh-CN/discovery/)选择需要的声音,点击查看详情后,从浏览器地址中获取ID(一长串MD5字符串),或点击三个小点后选择"复制ID"。

  3. baseUrl 如不填写,默认使用官方服务地址"https://api.fish.audio"。如果您有私有部署的FishAudio服务,可以配置为您的服务地址。

  4. probability 控制触发语音合成的概率,取值范围0-1,默认为0.5,设置为1表示始终触发语音合成。

  5. 当文本中含有emoji、Markdown等不可读内容时:

    • 如果deleteUnreadableText设置为true,将自动移除这些内容并继续语音合成
    • 如果设置为false(默认),则会跳过语音合成,直接返回文本