> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ja/llms.txt # Text-to-Speech(TTS) Mastra の Text-to-Speech(TTS)は、Provider を使ってテキストから音声を合成するための統一 API を提供します。 TTS をアプリケーションに組み込むと、自然な音声対話によってユーザー体験を高め、視覚障害のあるユーザーのアクセシビリティを改善し、より魅力的なマルチモーダルインターフェースを構築できます。 TTS はあらゆる音声アプリケーションの中核となる要素です。STT(Speech-to-Text)と組み合わせることで、音声対話システムの基盤になります。新しいモデルは、リアルタイム対話に使用できる STS([Speech-to-Speech](https://mastra.zisheng.pro/ja/guides/voice/speech-to-speech))をサポートしていますが、コストは高くなります($)。 ## 設定 Mastra で TTS を使用するには、Voice Provider の初期化時に `speechModel` を指定します。これには次のようなパラメーターが含まれます。 - **`name`**: 使用する TTS モデル。 - **`apiKey`**: 認証に使用する API キー。 - **Provider 固有のオプション**: Voice Provider ごとに必要またはサポートされる追加オプション。 **`speaker`** オプションでは、音声合成に使用する Voice を選択できます。各 Provider は、**Voice の多様性**、**品質**、**Voice の個性**、**多言語対応**の特性が異なる Voice オプションを提供します。 **動作**: これらのパラメーターはすべて任意です。使用する Voice Provider に応じて、Provider が用意するデフォルト設定を使用できます。 ```typescript const voice = new OpenAIVoice({ speechModel: { name: 'tts-1-hd', apiKey: process.env.OPENAI_API_KEY, }, speaker: 'alloy', }) // If using default settings the configuration can be simplified to: const voice = new OpenAIVoice() ``` ## 利用可能な Provider Mastra は、それぞれ固有の機能と Voice オプションを持つ Text-to-Speech Provider をサポートしています。アプリケーションの要件に最適な Provider を選択できます。 - [**OpenAI**](https://mastra.zisheng.pro/ja/reference/voice/openai): 自然なイントネーションと表現を備えた高品質な Voice - [**Azure**](https://mastra.zisheng.pro/ja/reference/voice/azure): 複数の Voice と言語に対応する Microsoft の音声サービス - [**ElevenLabs**](https://mastra.zisheng.pro/ja/reference/voice/elevenlabs): 感情表現と細かな制御に対応する非常にリアルな Voice - [**PlayAI**](https://mastra.zisheng.pro/ja/reference/voice/playai): さまざまなスタイルの自然な Voice に特化 - [**Google**](https://mastra.zisheng.pro/ja/reference/voice/google): 多言語に対応する Google の音声合成 - [**Cloudflare**](https://mastra.zisheng.pro/ja/reference/voice/cloudflare): 低遅延アプリケーション向けにエッジ最適化された音声合成 - [**Deepgram**](https://mastra.zisheng.pro/ja/reference/voice/deepgram): 高精度な AI 音声技術 - [**Speechify**](https://mastra.zisheng.pro/ja/reference/voice/speechify): 読みやすさとアクセシビリティに最適化された Text-to-Speech - [**Sarvam**](https://mastra.zisheng.pro/ja/reference/voice/sarvam): インド諸語とそのアクセントに特化 - [**Murf**](https://mastra.zisheng.pro/ja/reference/voice/murf): パラメーターをカスタマイズできるスタジオ品質のナレーション 各 Provider は個別のパッケージとして実装されており、必要に応じてインストールできます。 ```bash pnpm add @mastra/voice-openai@latest # Example for OpenAI ``` ## speak メソッドを使用する TTS の中心となる `speak()` メソッドは、テキストを音声に変換します。このメソッドには、speaker や Provider 固有のオプションを指定できます。使用方法を次に示します。 ```typescript import { Agent } from '@mastra/core/agent' import { OpenAIVoice } from '@mastra/voice-openai' const voice = new OpenAIVoice() const agent = new Agent({ id: 'voice-agent', name: 'Voice Agent', instructions: 'You are a voice assistant that can help users with their tasks.', model: 'openai/gpt-5.6-sol', voice, }) const { text } = await agent.generate('What color is the sky?') // Convert text to speech to an Audio Stream const readableStream = await voice.speak(text, { speaker: 'default', // Optional: specify a speaker properties: { speed: 1.0, // Optional: adjust speech speed pitch: 'default', // Optional: specify pitch if supported }, }) ``` ## 音声出力を保存する `speak()` メソッドは音声ストリームを返します。生成した音声を後で再生または処理するために保存する場合は、ストリームをファイルへパイプします。 ```typescript import { createWriteStream } from 'fs' import path from 'path' const audio = await agent.voice.speak('Hello, world!') const filePath = path.join(process.cwd(), 'agent.mp3') const writer = createWriteStream(filePath) audio.pipe(writer) await new Promise((resolve, reject) => { writer.on('finish', () => resolve()) writer.on('error', reject) }) ``` Agent で利用できる Voice Provider の概要については、[Mastra の Voice](https://mastra.zisheng.pro/ja/guides/voice/overview)を参照してください。