> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ja/llms.txt # Azure Mastra の AzureVoice クラスは、Microsoft Azure Cognitive Services を使用した Text-to-Speech および Speech-to-Text 機能を提供します。 ## 使用例 環境変数または設定で直接指定できる Azure Speech Services の認証情報が必要です。 ```typescript import { AzureVoice } from '@mastra/voice-azure' // Initialize with configuration const voice = new AzureVoice({ speechModel: { apiKey: 'your-azure-speech-api-key', // Or use AZURE_API_KEY env var region: 'eastus', // Or use AZURE_REGION env var voiceName: 'en-US-AriaNeural', // Optional: specific voice for TTS }, listeningModel: { apiKey: 'your-azure-speech-api-key', // Or use AZURE_API_KEY env var region: 'eastus', // Or use AZURE_REGION env var language: 'en-US', // Optional: recognition language for STT }, speaker: 'en-US-JennyNeural', // Optional: default voice }) // Convert text to speech const audioStream = await voice.speak('Hello, how can I help you?', { speaker: 'en-US-GuyNeural', // Optional: override default voice }) // Convert speech to text const text = await voice.listen(audioStream) ``` ## 設定 ### コンストラクターオプション **speechModel** (`AzureSpeechConfig`): Text-to-Speech 合成の設定。 **speechModel.apiKey** (`string`): Azure Speech Services API キー(Azure OpenAI キーではありません)。未指定の場合は AZURE\_API\_KEY 環境変数を使用します。 **speechModel.region** (`string`): Azure リージョン(例:'eastus'、'westeurope')。未指定の場合は AZURE\_REGION 環境変数を使用します。 **speechModel.voiceName** (`string`): 音声合成に使用する Voice ID(例:'en-US-AriaNeural'、'en-US-JennyNeural')。speechModel だけで使用します。以下の Voice 一覧を参照してください。 **speechModel.language** (`string`): 認識する言語コード(例:'en-US'、'fr-FR')。listeningModel だけで使用します。 **listeningModel** (`AzureSpeechConfig`): Speech-to-Text 認識の設定。 **listeningModel.apiKey** (`string`): Azure Speech Services API キー(Azure OpenAI キーではありません)。未指定の場合は AZURE\_API\_KEY 環境変数を使用します。 **listeningModel.region** (`string`): Azure リージョン(例:'eastus'、'westeurope')。未指定の場合は AZURE\_REGION 環境変数を使用します。 **listeningModel.voiceName** (`string`): 音声合成に使用する Voice ID(例:'en-US-AriaNeural'、'en-US-JennyNeural')。speechModel だけで使用します。以下の Voice 一覧を参照してください。 **listeningModel.language** (`string`): 認識する言語コード(例:'en-US'、'fr-FR')。listeningModel だけで使用します。 **speaker** (`string`): 音声合成に使用するデフォルトの Voice ID。 ## メソッド ### `speak()` Azure のニューラル Text-to-Speech サービスを使用してテキストを音声に変換します。 **input** (`string | NodeJS.ReadableStream`): 音声に変換するテキストまたはテキストストリーム。 **options** (`Options`): 設定オプション。 **options.speaker** (`string`): 音声合成に使用する Voice ID(例:'en-US-JennyNeural')。デフォルトの Voice を上書きします。 戻り値:`Promise` - WAV 形式の音声ストリーム ### `listen()` Azure の Speech-to-Text サービスを使用して音声を文字起こしします。 **audioStream** (`NodeJS.ReadableStream`): 文字起こしする音声ストリーム。WAV 形式である必要があります。 戻り値:`Promise` - 音声から認識されたテキスト 言語と認識の設定は、初期化時に `listeningModel` の設定で指定します。このメソッドのオプションとしては渡しません。 ### `getSpeakers()` 使用可能な Voice オプション(200種類以上)の配列を返します。各要素には次の値が含まれます。 **voiceId** (`string`): Voice の一意な識別子(例:'en-US-JennyNeural'、'fr-FR-DeniseNeural') **language** (`string`): Voice ID から抽出された言語コード(例:'en'、'fr') **region** (`string`): Voice ID から抽出されたリージョンコード(例:'US'、'GB'、'FR') 戻り値:`Promise>` ## 重要な注意事項 ### Azure Speech Services と Azure OpenAI の違い **⚠️ 重要:** このパッケージが使用する **Azure Speech Services** は、**Azure OpenAI Services** とは異なります。 - このパッケージでは `AZURE_OPENAI_API_KEY` を使用**しないでください** - Azure Speech Services のサブスクリプションキーを使用**してください**(Azure Portal の「Speech Services」から取得します) - これらは、API キーとエンドポイントが異なる別々の Azure リソースです ### 環境変数 API キーとリージョンは、コンストラクターオプションまたは環境変数で指定できます。 - `AZURE_API_KEY` - Azure Speech Services のサブスクリプションキー - `AZURE_REGION` - Azure リージョン(例:'eastus'、'westeurope') ### Voice 機能 - Azure は50以上の言語で200種類以上のニューラル Voice を提供します - 各 Voice ID は `{language}-{region}-{name}Neural` の形式です(例:'en-US-JennyNeural') - 一部の Voice には、多言語対応または HD 品質のバリエーションがあります - 音声出力は WAV 形式です - 認識に使用する音声入力は WAV 形式である必要があります ## 使用可能な Voice Azure は、多数の言語で200種類以上のニューラル Voice を提供します。代表的な英語 Voice は次のとおりです。 - **アメリカ英語:** - `en-US-AriaNeural`(女性、デフォルト) - `en-US-JennyNeural`(女性) - `en-US-GuyNeural`(男性) - `en-US-DavisNeural`(男性) - `en-US-AvaNeural`(女性) - `en-US-AndrewNeural`(男性) - **イギリス英語:** - `en-GB-SoniaNeural`(女性) - `en-GB-RyanNeural`(男性) - `en-GB-LibbyNeural`(女性) - **オーストラリア英語:** - `en-AU-NatashaNeural`(女性) - `en-AU-WilliamNeural`(男性) 200種類以上の Voice の完全な一覧を取得するには、次のコードを使用します。 ```typescript const voices = await voice.getSpeakers() console.log(voices) // Array of { voiceId, language, region } ``` 詳細については、[Azure Neural TTS のドキュメント](https://learn.microsoft.com/en-us/azure/cognitive-services/speech-service/language-support?tabs=tts)を参照してください。