跳到主要内容

Cloudflare

Mastra 中的 CloudflareVoice 类使用 Cloudflare Workers AI 提供文本转语音能力。此 Provider 专注于高效、低延迟的语音合成,适用于边缘计算环境。

用法示例
用法示例的直接链接

import { CloudflareVoice } from '@mastra/voice-cloudflare'

// Initialize with configuration
const voice = new CloudflareVoice({
speechModel: {
name: '@cf/meta/m2m100-1.2b',
apiKey: 'your-cloudflare-api-token',
accountId: 'your-cloudflare-account-id',
},
speaker: 'en-US-1', // Default voice
})

// Convert text to speech
const audioStream = await voice.speak('Hello, how can I help you?', {
speaker: 'en-US-2', // Override default voice
})

// Get available voices
const speakers = await voice.getSpeakers()
console.log(speakers)

配置
配置的直接链接

构造函数选项
构造函数选项的直接链接

speechModel?:

CloudflareSpeechConfig
文本转语音合成配置。
CloudflareSpeechConfig

name?:

string
用于 TTS 的模型名称。

apiKey?:

string
具有 Workers AI 访问权限的 Cloudflare API token。未提供时回退到 CLOUDFLARE_API_TOKEN 环境变量。

accountId?:

string
Cloudflare 账户 ID。未提供时回退到 CLOUDFLARE_ACCOUNT_ID 环境变量。

speaker?:

string
= 'en-US-1'
用于语音合成的默认语音 ID。

方法
方法的直接链接

speak()
speak的直接链接

使用 Cloudflare 的文本转语音服务将文本转换为语音。

input:

string | NodeJS.ReadableStream
要转换为语音的文本或文本 stream。

options?:

Options
配置选项。
Options

speaker?:

string
用于语音合成的语音 ID。

format?:

string
输出音频格式。

返回:Promise<NodeJS.ReadableStream>

getSpeakers()
getspeakers的直接链接

返回可用语音选项数组,其中每个节点包含:

voiceId:

string
语音的唯一标识符(例如 'en-US-1')

language:

string
语音的语言代码(例如 'en-US')

注意事项
注意事项的直接链接

  • 可以通过构造函数选项或环境变量(CLOUDFLARE_API_TOKEN 和 CLOUDFLARE_ACCOUNT_ID)提供 API token
  • Cloudflare Workers AI 针对边缘计算进行了低延迟优化
  • 此 Provider 仅支持文本转语音(TTS)功能,不支持语音转文本(STT)
  • 该服务可与其他 Cloudflare Workers 产品良好集成
  • 在生产环境中使用时,请确保你的 Cloudflare 账户具有相应的 Workers AI 订阅
  • 与其他一些 Provider 相比,可选语音较少,但边缘端性能出色

如果除文本转语音外还需要语音转文本能力,请考虑使用以下 Provider 之一:

  • OpenAI:同时提供 TTS 和 STT
  • Google:同时提供 TTS 和 STT
  • Azure:同时提供 TTS 和 STT