跳至主要內容

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 權杖。若未提供,則使用 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')

注意事項
「注意事項」的直接連結

  • API 權杖可透過建構函式選項或環境變數(CLOUDFLARE_API_TOKEN 與 CLOUDFLARE_ACCOUNT_ID)提供
  • Cloudflare Workers AI 針對低延遲的邊緣運算進行最佳化
  • 此 Provider 僅支援文字轉語音(TTS)功能,不支援語音轉文字(STT)
  • 此服務能與其他 Cloudflare Workers 產品良好整合
  • 在正式環境使用時,請確認您的 Cloudflare 帳戶具備適當的 Workers AI 訂閱方案
  • 相較於其他部分 Provider,可選語音較少,但邊緣效能極佳

如果除了文字轉語音之外也需要語音轉文字功能,請考慮使用下列 Provider:

  • OpenAI:同時提供 TTS 與 STT
  • Google:同時提供 TTS 與 STT
  • Azure:同時提供 TTS 與 STT