Cloudflare
MastraのCloudflareVoiceクラスは、Cloudflare Workers AIを利用したテキスト読み上げ機能を提供します。このプロバイダーは、エッジコンピューティング環境に適した効率的で低遅延な音声合成を専門としています。
使用例
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
テキスト読み上げ合成のための設定。
speaker?:
string
= 'en-US-1'
音声合成のデフォルト音声ID。
CloudflareSpeechConfig
name?:
string
= '@cf/meta/m2m100-1.2b'
TTSで使用するモデル名。
apiKey?:
string
Workers AIへのアクセス権を持つCloudflare APIトークン。CLOUDFLARE_API_TOKEN環境変数が代わりに使用される場合があります。
accountId?:
string
CloudflareアカウントID。CLOUDFLARE_ACCOUNT_ID環境変数が代わりに使用される場合があります。
メソッド
speak()
Cloudflare のテキスト読み上げサービスを使用して、テキストを音声に変換します。
input:
string | NodeJS.ReadableStream
音声に変換するテキストまたはテキストストリーム。
options.speaker?:
string
= Constructor's speaker value
音声合成に使用するボイスID。
options.format?:
string
= 'mp3'
出力音声のフォーマット。
戻り値: Promise<NodeJS.ReadableStream>
getSpeakers()
利用可能な音声オプションの配列を返します。各ノードには以下が含まれます:
voiceId:
string
音声の一意な識別子(例: 'en-US-1')
language:
string
音声の言語コード(例: 'en-US')
注意事項
- APIトークンはコンストラクタのオプションまたは環境変数(CLOUDFLARE_API_TOKEN と CLOUDFLARE_ACCOUNT_ID)で指定できます
- Cloudflare Workers AI は低遅延のエッジコンピューティング向けに最適化されています
- このプロバイダーはテキストから音声(TTS)機能のみをサポートしており、音声からテキスト(STT)には対応していません
- このサービスは他の Cloudflare Workers 製品と高い互換性があります
- 本番環境で利用する場合は、ご自身の Cloudflare アカウントに適切な Workers AI サブスクリプションがあることを確認してください
- 音声の選択肢は他の一部プロバイダーと比べて制限がありますが、エッジでのパフォーマンスは非常に優れています
関連プロバイダー
テキスト読み上げに加えて音声認識機能が必要な場合は、以下のプロバイダーの利用を検討してください。