跳至主要內容

Cloudflare

Mastra 的 CloudflareVoice class 使用 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
要轉換成語音的文字或文字串流。

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