メインコンテンツへ移動

Azure

Mastra の AzureVoice クラスは、Microsoft Azure Cognitive Services を使用した Text-to-Speech および Speech-to-Text 機能を提供します。

使用例
使用例への直接リンク

環境変数または設定で直接指定できる Azure Speech Services の認証情報が必要です。

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 合成の設定。
AzureSpeechConfig

apiKey?:

string
Azure Speech Services API キー(Azure OpenAI キーではありません)。未指定の場合は AZURE_API_KEY 環境変数を使用します。

region?:

string
Azure リージョン(例:'eastus'、'westeurope')。未指定の場合は AZURE_REGION 環境変数を使用します。

voiceName?:

string
音声合成に使用する Voice ID(例:'en-US-AriaNeural'、'en-US-JennyNeural')。speechModel だけで使用します。以下の Voice 一覧を参照してください。

language?:

string
認識する言語コード(例:'en-US'、'fr-FR')。listeningModel だけで使用します。

listeningModel?:

AzureSpeechConfig
Speech-to-Text 認識の設定。
AzureSpeechConfig

apiKey?:

string
Azure Speech Services API キー(Azure OpenAI キーではありません)。未指定の場合は AZURE_API_KEY 環境変数を使用します。

region?:

string
Azure リージョン(例:'eastus'、'westeurope')。未指定の場合は AZURE_REGION 環境変数を使用します。

voiceName?:

string
音声合成に使用する Voice ID(例:'en-US-AriaNeural'、'en-US-JennyNeural')。speechModel だけで使用します。以下の Voice 一覧を参照してください。

language?:

string
認識する言語コード(例:'en-US'、'fr-FR')。listeningModel だけで使用します。

speaker?:

string
音声合成に使用するデフォルトの Voice ID。

メソッド
メソッドへの直接リンク

speak()
speakへの直接リンク

Azure のニューラル Text-to-Speech サービスを使用してテキストを音声に変換します。

input:

string | NodeJS.ReadableStream
音声に変換するテキストまたはテキストストリーム。

options?:

Options
設定オプション。
Options

speaker?:

string
音声合成に使用する Voice ID(例:'en-US-JennyNeural')。デフォルトの Voice を上書きします。

戻り値:Promise<NodeJS.ReadableStream> - WAV 形式の音声ストリーム

listen()
listenへの直接リンク

Azure の Speech-to-Text サービスを使用して音声を文字起こしします。

audioStream:

NodeJS.ReadableStream
文字起こしする音声ストリーム。WAV 形式である必要があります。

戻り値:Promise<string> - 音声から認識されたテキスト

言語と認識の設定は、初期化時に listeningModel の設定で指定します。このメソッドのオプションとしては渡しません。

getSpeakers()
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<Array<{ voiceId: string; language: string; region: string; }>>

重要な注意事項
重要な注意事項への直接リンク

Azure Speech Services と Azure OpenAI の違い
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 機能
Voice 機能への直接リンク

  • Azure は50以上の言語で200種類以上のニューラル Voice を提供します
  • 各 Voice ID は {language}-{region}-{name}Neural の形式です(例:'en-US-JennyNeural')
  • 一部の Voice には、多言語対応または HD 品質のバリエーションがあります
  • 音声出力は WAV 形式です
  • 認識に使用する音声入力は WAV 形式である必要があります

使用可能な Voice
使用可能な 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 の完全な一覧を取得するには、次のコードを使用します。

const voices = await voice.getSpeakers()
console.log(voices) // Array of { voiceId, language, region }

詳細については、Azure Neural TTS のドキュメントを参照してください。