# Cloudflare The CloudflareVoice class in Mastra provides text-to-speech capabilities using Cloudflare Workers AI. This provider specializes in efficient, low-latency speech synthesis suitable for edge computing environments. ## Usage Example ```typescript 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); ``` ## Configuration ### Constructor Options ### speechModel?: CloudflareSpeechConfig Configuration for text-to-speech synthesis. ### speaker?: string Default voice ID for speech synthesis. ### CloudflareSpeechConfig ### name?: string Model name to use for TTS. ### apiKey?: string Cloudflare API token with Workers AI access. Falls back to CLOUDFLARE\_API\_TOKEN environment variable. ### accountId?: string Cloudflare account ID. Falls back to CLOUDFLARE\_ACCOUNT\_ID environment variable. ## Methods ### speak() Converts text to speech using Cloudflare's text-to-speech service. ### input: string | NodeJS.ReadableStream Text or text stream to convert to speech. ### options.speaker?: string Voice ID to use for speech synthesis. ### options.format?: string Output audio format. Returns: `Promise` ### getSpeakers() Returns an array of available voice options, where each node contains: ### voiceId: string Unique identifier for the voice (e.g., 'en-US-1') ### language: string Language code of the voice (e.g., 'en-US') ## Notes - API tokens can be provided via constructor options or environment variables (CLOUDFLARE\_API\_TOKEN and CLOUDFLARE\_ACCOUNT\_ID) - Cloudflare Workers AI is optimized for edge computing with low latency - This provider only supports text-to-speech (TTS) functionality, not speech-to-text (STT) - The service integrates well with other Cloudflare Workers products - For production use, ensure your Cloudflare account has the appropriate Workers AI subscription - Voice options are more limited compared to some other providers, but performance at the edge is excellent ## Related Providers If you need speech-to-text capabilities in addition to text-to-speech, consider using one of these providers: - [OpenAI](https://mastra.ai/reference/voice/openai/llms.txt) - Provides both TTS and STT - [Google](https://mastra.ai/reference/voice/google/llms.txt) - Provides both TTS and STT - [Azure](https://mastra.ai/reference/voice/azure/llms.txt) - Provides both TTS and STT